Overview

For my Games Programming dissertation at the University of East London, I made a strategy game demo that features an advanced enemy AI. The goal of this project was to make multiple AI opponents in a tactics strategy game with imperfect information (fog-of-war prevents players from seeing their opponents actions). I then be conducted a playtest against human players to test the skill level of the AI opponents. This will determine which AI’s strategy is the most effective, and how effective it is.

Deathbeds Prototype

- 2 mins read

Overview

Deathbeds is an isometric wave survival game made in Unreal Engine 5 that I am working on as a freelance programmer. This prototype was made in 1 week to demonstrate the basic idea for the game.

As the sole programmer on the project I am responsible for all technical systems design and implementation. This includes an inventory/upgrades system, tank character controllers, enemy AI and pathfinding, wave spawning, and more. While this version is a simple prototype, there are more features planned for the finished game that I will continue developing.

Planet Amvlys

- 3 mins read

Overview

Planet Amvlys was created as part of my Games Programming course at the University of East London. I was the lead programmer in an interdisciplinary team of students who produced this game in Unreal Engine 5 from September 2025 - May 2026.

My work was focused on gameplay systems programming, while also covering UI and audio programming. I created all menus, player abilities, progression systems, puzzle elements, the cutscene system, the save/load system and more. Overall, I learned a lot about team management, and full-scale UE5 development on this project.

Mirari

- 1 min read

Overview

Mirari was made for the Ukie Student Game Jam 2026 in 32 hours.

Based on the theme Symmetry we made a Sokoban-style puzzle game where you play as a mirror where instead of pushing boxes, you can reflect them to the other side of yourself. This leads to unique puzzle designs where positioning and distances are very important. There are also some additional mechanics you will discover as you play.

Teaching a Godot Seminar

- 1 min read

The Class

This week I taught a Godot Seminar to my classmates at Uni!

We have the Ukie Game Jam coming up, and I noticed a lot of people we interested in learning Godot to prepare, so I volunteered to teach a class. The goal was to get everyone familiar with basic Godot concepts, like the scene tree, GDScript, and the physics system.

The Game

For this seminar, I prepared a very simple platformer game and had students follow along as I recreated it. The game featured player movement, a level made with a tilemap, hazards, player respawning, and a goal. We also added a title screen and animation. These elements were selected to give a good understanding of a wide array of Godot features, as well as showing best practices for using many systems. image

Overview

This project is a demo of an inventory system implemented in UE5 using C++. It features item stacking, storing items in chests, and saving. It utilizes a data table for the item information, and utilizes automated testing to verify the inventory system is working as intended.

image

Code

The inventory is implemented an actor component containing a map from int (index within the inventory) to an item struct. When adding an item to an inventory it’s placed at the first empty index, or stacked with any matching item within the inventory.

Unreal Engine Skill Tree

- 2 mins read

I’ve added a skill tree to my Unreal Engine project where the player can unlock various upgrades. Each item features its own tree with unique options to allow for unique player expression.

Overview

Clicking on an item in the inventory screen opens its skill tree. From here the player can select upgrades and unlock them for a specific cost. There is support for upgrades that are only available after purchasing the ones before them, as well as upgrades that are incompatible with each other, where only one of them can be purchased.

Advent of Code 2025

- 2 mins read

I participated in Advent of Code this year! I used C++ for my solutions as I am most familiar with it. I solved 19/24 of the puzzles in the end.

My Favorite Puzzle

I thought day seven was a lot of fun. In the puzzle, a laser is being split as it travels along a bunch of different points, and you have to count how many times it gets split. The trick is that after solving part one, it is changed so that you have to count the number of possible paths the laser can take. Originally I tried to just reuse my part one solution, keeping a list of each point the laser could be at but allowing duplicates this time to account for multiple paths. This proved to be dramatically too slow. Instead I had to pivot to counting the number of ways the laser could have reached that position and storing that value along with the position to avoid having to process it multiple times.

Planet Amvlys Playtest

- 2 mins read

This week we held a playtest for our Game Studio 3 project! We had twelve players try a demo of our game and answer a feedback survey. The goal of this is to inform our further development based on player feedback and identify issues to resolve.

The Demo

Our demo features one completed level, four main items to collect, and a boss fight. The main point of this level is to test the gameplay, and its design will be completely reworked for the final game.

Recently I’ve started working on my Game Studio 3 project for my university course. I’m working with an amazing group and very excited to be coming together to make a game.

Concept

The concept we settled on is a First-Person Metroidvania inspired by Metroid Prime, but taking notes from more modern shooters like Ultrakill, and Metroidvanias like Hollow Knight. Currently, we’re still deep in the ideas stage, coming up with enemy concepts, areas to explore, and upgrades, as well as writing the story.