
Hey I'm Tom! I am a Game Programmer & Developer, below you can see a collection of the projects I have worked on.

Hey I'm Tom! I am a Game Programmer & Developer, below you can see a collection of the projects I have worked on.

Midnight Gambit is a Stealth-Action Roguelite about a vampire in a casino. The game initially started as my final year project of my MFA in Game Design & Development. During this, I decided to take the game further and put the game on Steam, creating modular content to easily expand the game.
Role: Gameplay/Backend Programmer, Director, Designer
Team Size: 18
Time Frame: Started January 2025 (Ongoing)
Engine: Unity
When I began working on Midnight Gambit, my intentions were to strengthen my overall gameplay programming skills. It is good to note I am the sole programmer of this game, despite the use of some packages that I integrated into my workflow. Because the initial idea revolved around gameplay I had not created before, I decided to breakdown the core systems into chunks that I aimed to complete in 10 months; at the end of these 10 months I would showcase the game at EGX Comic-Con London 2025.
I broke the game down into 3 larger areas: AI, Player Controller & Abilities, Economies & Gambling. This allowed me to scope the project and create the Game Design Document early. This was beneficial in the academic environment, as bringing collaborators on-board early with a clear design and timeline was fundamental to create a project of this scope. To aid with this, I also created a 1 week prototype to showcase these areas.

Midnight Gambit Prototype
Early on I experimented with several behaviour frameworks before settling. Early iterations used CrashKonijn's GOAP, allowing guests agents to self-asses needs like thirst, bladder and entertainment and set goals such as order drinks or use the restroom. This initially was great as it brought a lot of life to the casino. As the game shifted from pure stealth to stealth-action, I found that the guard agents required faster, more reactive logic. I decided to transition them to a custom State Machine architecture, which proved faster and more responsive in playtests. Eventually, all NPCs adopted this system, with states replicating the ones I created using GOAP, having a CheckNeedsState instead.
As I continued to focus on optimizing NPC interactions with the world and player, I wanted all NPCs to be easily accessible. So I created an Agent base class, which manages movement, vision and alertness. This architecture keeps behaviour modular, scalable, and efficient across all NPC types. It was at this point I also added Aron Granberg's A* Pathfinding Project for navigation, ensuring agents has better local-avoidance.
I then created the players movement system, and from the get-go I knew I wanted controller support. This lead me to use Unity's Input System Package, allowing me to design locomotion with keyboard & controller easily. Some of practical skills I picked up were creating variable speeds based on the joystick, as well as sprinting behaviours.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.