I have designed and implemented several of my own video games in C++, Java and Python.
Pong Stadium
The game is a 3D update of the classic game re-imagining of the classic game Pong, but rather than just add 3D graphics, I decided to make things more interesting; vary the shape of the paddles and arena, add power-ups and allow the players to shoot the ball (and each other) with rockets!

Pong Stadium
Starforce
Starforce is a 3D space-combat game based around a space combat flight school, where players must battle other fighters and complete various tasks. The action is centred around a Space Station and a number of larger capital ships.

Starforce
The Stickman Project
The Stickman project is an experiment I was working on to produce simple, 2D animated characters and a side-scrolling platform game. Originally the animations were going to be simple stick men, but I quickly realised that the visuals could be improved. The game consists of a series of short levels which the player must navigate a series of platforms, lifts and hazards to reach the goal.

Stickman
Roadworks
Not strictly a game, but definitely game-adjacent; RoadWorks was designed to help create and manage large, complex road networks in large gaming environments. It allows for roads to be created and edited easily and includes procedural generation of textures, geometry and AI pathing data. The tool was produced as part of the Games MSc in association with staff from Midway Studio Newcastle, who wanted an improved version of the system that they used to produce Open-World games such as Wheelman, which they had just published at the time.

The following video shows some of the key features of the application.
My Game Engine
I have produced a Game Engine, which I have used to create most of my games. It was developed to simplify the process of producing new games and includes shared features, debugging tools, common interfaces, utilities and methods.
The Engine framework is built on SDL, using a number of libraries including OpenGL, PhysX and FMOD. It has a number of useful features that make the process of creating a game easier, including:
- File Loading & Management, Utility classes for working with Strings, generating Random Numbers and writing to text files etc.
- Customisable Press Start screen and animated Loading Screen. Common Pause menu, Options, exit button, etc.
- 2D and 3D rendering components, including Cameras and Particle effects (including explosions, with smoke, fireballs, sparks and debris)