My Game Design Journey
Each project is hyperlinked to its dedicated page and available for download. Feel free to explore them if you're interested!
Each project is hyperlinked to its dedicated page and available for download. Feel free to explore them if you're interested!
I participated in a high-energy physical Game Jam hosted by Garena, which was a fantastic opportunity to meet and collaborate with other passionate game makers. Our team created Hero Landing, a fast-paced action game based on the “Superhero” theme, where players control five over-the-top rangers who divebomb into enemy territory with explosive, comedic results. I contributed to core gameplay design, character abilities, and tone, while the in-person format made collaboration and creative exchange especially engaging and fun.
For my final game project at DigiPen, I worked with a team of 3 designers and 10 technical programmers to create a fast-paced arena shooter built around snooker-inspired physics. We began by developing a prototype, which we then integrated into a fully custom-built game engine. This project significantly expanded my technical expertise and deepened my understanding of backend systems within custom game engine development. We had full control over the engine architecture, allowing us to integrate features such as Mono C# scripting, Coroutines and Tweening, Jolt Physics, FMOD for audio, and Steamworks API for online leaderboards. Building our game from the ground up also meant we could tailor engine systems to our needs, including a time-slowdown mechanic that dynamically affected both physics and game logic, as well as custom event handlers that linked engine components to scripting logic.
I worked with a team of 8 designers on a 4 to 8 player elimination-style survival horror game where players control mischievous cats trying to escape the shadowy clutches of Death in a dark Victorian house. Built in Unity with Mirror Networking and Steamworks integration, the game blends tension, sabotage, and humor. I contributed to both design and implementation, helping shape mechanics like noise-based distractions, physics-driven object interactions, and the Reaper’s escalating threat. We emphasized visual storytelling through a 2.5D style, dynamic UI, and a dramatic shift in tone during the game’s twist ending, revealing that Death was simply an elderly owner trying to give the cats a bath. This project deepened my understanding of multiplayer systems, gameplay balancing, and how tone can be used to enhance player experience.
I worked in a team of 6 designers to develop a comedic animation created in Unity that combines 2D art with a 3D environment. My role focused on camera systems design, where I explored Unity’s new Cinemachine 3 tools to create expressive and dynamic shots. This project strengthened my understanding of timeline integration, spline-based camera movement, and layered noise systems, which allowed me to build smooth, in-game cutscenes with greater control and flexibility. I also gained valuable experience in using framing techniques such as shot size, camera angles, and perspective to enhance comedic timing and support narrative clarity. Working within a 2.5D space required careful attention to transitions and spatial composition, helping our team achieve a strong sense of depth and tone through deliberate camera work.
I took a deep dive into netcode development using Mirror Networking and Steamworks, building an online multiplayer game that supports up to eight players. The result was Huddle Raft, a cooperative, endless-runner-style sailing game where 2–8 players work together to navigate a small, circular raft through dangerous waters. Each player can only paddle in the direction they're facing, requiring constant coordination to avoid obstacles. Through this project, I gained hands-on experience with network synchronization, client-host architecture, and Steam lobby integration, all while learning how to design gameplay that naturally encourages communication and collaboration.
I made a platformer set in a low-gravity environment with gravity-flipping platforms. Created during a Kinesthetic Flow project, this game highlights how dynamic visual, audio, and haptic feedback can pull players deep into the experience. I also experimented with Unity's shader graphs to create striking visual effects. Gravity flipping and camera rotations were mechanics I had long wanted to explore, and I'm thrilled to have finally brought them to life in this project.
I made a medieval fantasy action simulator with satisfying, physics-based combat in a sandbox environment. Developed for a Combat Feel & HUD project, it showcases how adding "juice" can elevate the gaming experience. Subtle HUD elements and feedback provide players with essential information, seamlessly blending into the gameplay without becoming intrusive or distracting. This approach fosters an immersive and responsive experience that players will thoroughly enjoy. Ragdolls are also really fun to play with.
This two-part project focused first on developing a game prototype, followed by integrating that prototype into a custom-built game engine. I collaborated with another designer on the gameplay and user experience, while also leading a team of 6 technical programmers in building the engine from scratch. Drawing inspiration from Unity, we recreated key systems within an ECS (Entity Component System) architecture. Our engine supported C# scripting via marshaling, effectively implementing a custom version of Unity’s MonoBehaviour and the core functionality our game required. Through this process, I quickly got up to speed with C++ and significantly deepened my understanding of game engine architecture and backend systems.
I worked in a team of 4 designers to create a survival horror game, with a focus on enemy AI and visual feedback. I built a behavior tree system on top of a state machine to create enemies that could react intelligently and adapt to the player’s actions. This helped me deepen my understanding of scalable AI and real-time decision-making. On the visual side, I designed a color-coded feedback system: reds signal danger, blue highlights doors, and green marks collectibles. These specific colours were chosen to ensure clarity even when affected by chromatic aberration. This project helped me grow as a systems designer and improve my ability to communicate gameplay through visuals.
Taking a breather from school projects, I participated in another game jam with my classmates over the holidays. We created a simple puzzle platformer game that ended up with mind-boggling puzzles that got many players stumped. Each of us had our own goals coming into the project, mine was to familiarize myself with audio middleware software and I managed to implement our game audio through both WWISE and FMOD. We also managed to surprisingly win second place in the game jam, earning ourselves some goodies and prizes.
I worked with another designer for this project and we dove deep into systems design. We were tasked to design a game with systems, features, and mechanics that supported each other well through data. Our game was architectured around spreadsheets, allowing us to tweak and balance parts of the game by changing data values. Adding more content to the game was as simple as adding new rows to the spreadsheet. Our game even supported data collection for analytics and an in-game bestiary for players to view the information and personal stats of each item and enemy in the game!
I took a revisit at implementing behavior trees for AI, integrating them into gameplay rather than simply making a simulation. "The enemies felt like real players" felt like the biggest compliment ever. This game jam also required participants to implement a high score system, and I managed to implement an online leaderboard for this small arcade-shooter game, making a simple game much more replayable as players compete for the best scores.
My first game project since joining DigiPen was an incredibly fun experience the whole way through, working together in a group of 5 with different artists and designers. The project spanned multiple milestones with catered playtesting sessions, and we even got featured on the DigiPen game gallery! Good communication and a clear direction greatly contributed to our success, allowing the team to stick to our vision of the game throughout the entire development process.
Up till now, I haven't exactly been working in a group setting for my games, so what better way to change that than participating in another game jam as a team of 4? By working with other members of different skill sets, I got better at project management and delegation of tasks. I also took a dive at some system designs, creating a branching upgrade system and enemy wave spawning.
In my first group assignment, we were tasked to look into a common problem faced by young Singaporean adults and apply design thinking to solve it. We decided to tackle the issue of encouraging the development of healthy stress management habits in order to better cope with stress. We created a Tamagotchi Pomodoro app that gamified work sessions with a virtual pet companion, Pomo! In this project, we went through the iterative process of UX/UI design and user flow so that users could navigate through the app seamlessly. I also explored implementing shaders with color theory for user-adjusted color themes.
Dissatisfied with the original game concept, I revisited The Purgatorial and reworked its gameplay loop into a roguelike action game. Now being fully proficient in working with state machines, I wanted to see what I could do with a boss fight. I ended up creating an epic multi-phased boss fight that definitely served as a satisfying finale to the game.
The next Brackeys game jam is here, so it's time to put my skills to the test. I took a shot at the horror game genre to create a LiDAR (light detection and ranging) game where players start out in a pitch-black world and shoot infrared beams to reveal more about their surroundings. This created a unique visual effect and a trippy experience where players had to navigate around what they scanned. The project ended up as one of my most successful games, placing 4th overall out of 1065 entries in the game jam, with various streamers and content creators playing the game, attracting new players seeking a quick thrill.
This was one of those "throwaway projects" that didn't turn out to be a full game. I was learning how to implement behavior trees in order to create smarter AI that could act based on context. I also experimented with procedural generation, creating randomly generated terrain using Perlin noise. The goal was to create a balanced ecosystem of fully autonomous creatures, but that turned out to be an impossible task and a balancing nightmare to complete within 48 hours of the game jam. Luckily, the beauty of game jams is that there's no real consequence for failure, and failure often provides an invaluable learning experience.
This project served as an experimental playground for me to gain proficiency in working with state machines. I took inspiration from Bloodborne's trick weapons and created a wave survival game with fully customizable characters. State machines allowed me to implement much more complex logic and gameplay mechanics that felt good in action games. By adding hit stun and splitting up a regular attack into three different states of windup, active, and recovery, I could work with attack frame data and provide a distinction between light and heavy attacks, with heavy attacks having a higher risk-reward factor of needing a longer windup but having more "punch" to it.
At this time, I was working on multiple projects at a time. Most of them never saw the light of day, but I couldn't pass up the opportunity to participate in the next Brackey's game jam. I decided to create a 3D game, providing me with a whole new dimension of freedom in expressing my creativity. I was also struggling to figure out how to scope up my games, so I took examples of code architecture from the source code of Risk of Rain 2. I experimented with implementing their state machine, allowing me to implement more complex mechanics by segmenting logic into different states. Oh, and I also took an interest in shaders which allowed me to create unique visuals. Might have been a little too overambitious with this one.
The festive season calls for another game jam, this time in a shorter period of 3 days and the theme of "I Am Everywhere". I created a simple Frogger-like game that could be played by 1 or 2 players locally. They could play co-op against a team of AI enemies, or play against each other. At this point, I was pretty confident in my abilities. As I had a shorter timeframe to get the game done, I worked in a smaller scope and put more time into polishing up a simple game loop. A general rule of thumb that I followed was to go for what I thought I could do within the given timeframe, and cut that in half. The results showed, and I managed to place 4th overall out of 79 submissions in the game jam!
My first game jam experience! I challenged myself to create a game in a week, given the theme of "Let There Be Chaos". I created an RTS survival game where players would manage an army of creatures to hunt for food during the day, fend off enemies at night, and cuddle up in the nest to make love and multiply. In order to win, players had to survive for seven days with increasing difficulty of enemies and chaos. Of course, I put in a few minibosses along the way and ended the week with a final boss to demolish the players at the end. How fitting for a project with only a week to complete an entire game.
Hungry for more, I began another project where I took inspiration from my favorite games from the Dark Souls series. I felt lost and overwhelmed without having a tutorial to follow, but eventually got the hang of the process of self-research and implementation. I ended up creating a top-down melee combat RPG where I dumped in all kinds of mechanics I could think of. Players could use multiple weapons with special abilities, enemies had their own set of abilities and attacks, and there were even minibosses and a final boss! Looking back, I'm still baffled at how much I was able to implement with no prior experience. The spaghetti code was god-awful but we don't need to talk about that.
Everyone starts somewhere. My game design journey started from humble beginnings, following a game development tutorial series from Brackeys. I went through the full process of creating a game in Unity, creating a simple game that I could publish all while learning the basics of coding. 10/10, would recommend.