Traveller is a first-person narrative-based adventure game, built in a custom-made game engine.

Traveller is a first-person narrative-based adventure game. You awake to find yourself alone in an deserted space ship, and your only company is the ship’s A.I. Find out what happened as you fix up the ship in an attempt to make it back home.

This is a third-year, 32 week-long project as part of my course of study at DigiPen Singapore. It was created by a multi-disciplinary team of ten (7 programmers and 3 game designers) in our custom-made 3D game engine.

The central area, showing a futuristic, industrial-looking area with a large machine with 3 big levers and a battery cube sitting next to a receptacle to the side.

More about the game

The key mechanics of the game, apart from the narrative/story, is managing time and resources. You have a limited amount of resources (in the form of ResCubes) which can be moved around, converted from one form to another using machines, with the final product being a Fuel Cell cube which is used to fuel your spaceship to speed out of danger.

The game starts with a relatively guided experience as the AI guides you along and fills you in on what’s happening, and culminates with an event where players would need to race against the ship’s deteriorating health by using the mechanics demonstrated earlier to survive and to make it out of the asteroid field before the ship disintegrates.

The game was built within our custom game engine, which was written in C++ and utilised modern C++20 features and templates. It targets Windows 10 and uses OpenGL, and follows the Entity Component System pattern.

My role

I am a programmer on the team, focusing on gameplay and systems implementation, with further contributions to writing and audio. I implemented several engine, editor, and gameplay systems such as the scene manager, the ResCubes, machines, and the interactions between those, the narration system, and the logic for most of the game state from the initial guided experience to the final event.

I was also originally the technical lead of the project team, but as the project progressed, each member’s roles became more fluid as we took on other tasks, and by the end of the project, those responsibilities were essentially shared between a few members.

I also contributed to some of the writing as the game evolved throughout development, in order to help tie the game together into a coherent and cohesive story even as gameplay mechanics and goals changed.

I also set up and managed the team’s source control, automated builds, and cloud resources. This includes our Git repository and automated builds on GitHub, as well as text-to-speech resources using Microsoft Azure Cognitive Services, which was used to generate the base audio for our AI’s dialogue lines.


A partially lit corridor with doors branching off to the sides.

A farm, bathed in purple light, with shelves of plants growing and tables with water spraying from pipes above.

The player is holding a hammer, fixing a broken pipe, while the ship is covered in red light due to low health."

A fuel cell cube being inserted into an engine. A progress bar at the top shows the ship at 62% progress.

A completely dark cockpit with only the screens and a floating circular avatar lit, and captions reading "Did the lights go out?"


Overview of the editor

Close-up of a gameplay component, showing a ResCubeMachine, with options for input cubes, output cubes and machine run time.