SENIOR GAMEPLAY PROGRAMMER

A gameplay programmer who is passionate about creating engaging and memorable player experiences. With experience on a range of projects for different platforms, including console launch titles, I'm eager to bring my passion and expertise to a team where I can continue to learn, grow, and make a meaningful impact in the games industry.

College Football 25
C++FrostbiteXboxPS5

College Football 25

Made significant contributions to the development of the main gamemode the 2025 best selling title powered by the Frostbite Engine. I was responsible for writing, documenting, and maintaining C++ gameplay code.

Type: ProfessionalYear: 2022-2023
Madden 23
C++FrostbiteXboxPS5

Madden 23

Changes to the franchise front-end framework. Responsible for writing technical feature briefs and then implementing the feature - ensuring all code quality and integration checks are completed to a high standard.

Type: ProfessionalYear: 2022-2023
Angel Wings
C++Custom EnginePC

Angel Wings

Worked with a small team to create a visual novel experience. I covered most technical roles including graphical and gameplay programming as well as CI workflows.

Type: PersonalYear: 2021
Non-linear Raytracing
C++OpenGLPC

Non-linear Raytracing

Created a non-linear raytracing engine that runs in realtime for my university Masters thesis. Using real-world mathematical formulas, I was able to simulate the gravitational lensing effects that occur around black holes.

Type: PersonalYear: 2019
Nimbostratus
C#UnityPC

Nimbostratus

This game was created for ludum dare - a 48 hour game jam in which all code and assets were created in 1 weekend.

Type: PersonalYear: 2019
Operator
C#UnityPC

Operator

Operator was a game created for Global Game Jam 2018. I worked alone and produced the assets and code for the game. You play as a rover situated on Mars, struggling to find power as the sun sets. Reach the waypoints to collect solar energy before the signal to control is lost.

Type: PersonalYear: 2018
WebGL Asteroid Field
JSThreeJSPC

WebGL Asteroid Field

As part of an Advanced Graphics module, I was tasked to create a ThreeJS project demonstrating my knowledge of WebGL and shaders. I created a short demo featuring a gas giant planet with shaders to rotate the surface and shadows.

Type: PersonalYear: 2018
PCG Futuristic City
C#UnityPC

PCG Futuristic City

This was a city created for a Procedural Content Generation module at university. Various algorithms and procedural techniques were used to generate an entire city scape from scratch. The buildings, signs, colour scheme and more are created at run-time and look different each time the program is started.

Type: PersonalYear: 2018
Ouroburrows
C#UnityPC

Ouroburrows

Ouroburrows was a game created during Ludum Dare 38 with a team composed of myself as the only programmer, as well as an artist and a musician. The game features a circular world, which plays similarly to the popular game "Snake", with the twist of being in 3D.

Type: PersonalYear: 2018
Samsara
C#MonogamePC

Samsara

In Samsara you are a crystal shaping monk tasked with defending your Home from the Elder Engine. Shape your defense crystal to deflect the Engine's attacks until the Final Battle is over.

Type: PersonalYear: 2018
Bounce The Bacon
C#UnityPC

Bounce The Bacon

Bounce The Bacon was created as part of a prototyping and evaluation module, where I was tasked to create a game in only a few weeks, and evaluate it with user feedback. The aim of the game is to aim the pig catapults and bounce the pigs around the level to collect all of the turnips.

Type: PersonalYear: 2018
PhysX Mini Golf
C++OpenGLPC

PhysX Mini Golf

A short demo game demonstrating my knowledge of PhysX using an OpenGL GLUT renderer. This game uses advanced PhysX features such as rigidbodies, connected bodies, joints, triggers, collision filters, cloth physics, fluid dynamics and more.

Type: PersonalYear: 2018
Softbody Simulation
C#MonogamePC

Softbody Simulation

An attempt at dynamically creating softbody physics objects from scratch, with various modes such as self-repel, non-repelling and equilibrium states between each node.

Type: PersonalYear: 2018
← Back

Sea of Thieves

Professional · 2023- · C++ · Unreal Engine · Website

Sea of Thieves offers the essential pirate experience, from sailing and fighting to exploring and looting – everything you need to live the pirate life and become a legend in your own right. With no set roles, you have complete freedom to approach the world, and other players, however you choose.

← Back

College Football 25

Professional · 2022-2023 · C++ · Frostbite

Made significant contributions to the development of the main gamemode the 2025 best selling title powered by the Frostbite Engine. I was responsible for writing, documenting, and maintaining C++ gameplay code.

← Back

Madden 23

Personal · 2022 · C++ · Frostbite

Changes to the franchise front-end framework. Responsible for writing technical feature briefs and then implementing the feature - ensuring all code quality and integration checks are completed to a high standard.

← Back

Destruction Allstars

Professional · 2025 · C++ · Unreal

Destruction All Stars is an action-packed sports event that pits drivers against one another in an intense competition. The goal? Wreck as many cars as possible! I took technical ownership over several major gameplay features in this PS5 console release title. Using C++ and Unreal Engine, I worked with multiple departments through production all the way to release on this vehicular combat game.

← Back

Angel Wings

Professional · 2021 · C++ · Custom Engine

Worked with a small team to create a visual novel experience. I covered most technical roles including graphical and gameplay programming as well as CI workflows. The game released in 2019 and has recieved widely positive reception - with over 100,000 user installs to date.

← Back

Non-linear Raytracing

Personal · 2019 · C++ · OpenGL · View Paper

Created a non-linear raytracing engine that runs in realtime for my university Masters thesis. Using real-world mathematical formulas, I was able to simulate the gravitational lensing effects that occur around black holes.

The code was written entirely in C++ with heavy consideration placed on performance and optimisations.

← Back

Nimbostratus

Personal · 2019 · C# · Unity · Ludum Dare

Shoot endless waves of enemies and collect crystals in this movement based first person shooter. You’re equipped with a magic tome capable of rapid firing spells and summoning explosive magic missiles. Equipped with a dash you navigate an ever-changing heavenly arena that only keeps it’s shape for 10 seconds. Collect as many crystals as possible without getting killed.

This game was created for ludum dare - a 48 hour game jam in which all code and assets were created in 1 weekend.

← Back

Nimbostratus

Personal · 2018 · C# · Unity

Operator was a game created for Global Game Jam 2018. I worked alone and produced the assets and code for the game. You play as a rover situated on Mars, struggling to find power as the sun sets. Reach the waypoints to collect solar energy before the signal to control is lost.

In order to fit the theme of "transmission", a delay is applied to each command that is sent to the rover, forcing the player to plan out their actions in advance.

← Back

WebGL Asteroid Field

Personal · 2018 · C# · Unity

As part of an Advanced Graphics module, I was tasked to create a ThreeJS project demonstrating my knowledge of WebGL and shaders. I created a short demo featuring a gas giant planet with shaders to rotate the surface and shadows.

The demo also features 500+ unique individual asteroids with scale, rotation and position that react to the user's mouse position.

← Back

WebGL Asteroid Field

Personal · 2018 · C# · Unity

This was a city created for a Procedural Content Generation module at university. Various algorithms and procedural techniques were used to generate an entire city scape from scratch. The buildings, signs, colour scheme and more are created at run-time and look different each time the program is started.

Perlin Noise was used alongside grid circularisation to achieve realistic building placement locations, as well as raytracing to ensure they were placed level with the terrain. As well as the city buildings, a galaxy simulation was created using Ringermacher and Mead's spiral galaxy structure equations.

← Back

Day Out At The Zoo

Personal · 2018 · C# · Unity

Day At The Zoo was a game created for Global Game Jam 2020, with the theme "Repair". You play as a school teacher on a trip out to the zoo, and are tasked with grouping the students together into a buddy system before they wander into the animals.

Each student may have a preference for the other student that they wish to be paired with, and will only be happy when matched with them.

← Back

Ouroburrows

Personal · 2018 · C# · Unity

Ouroburrows was a game created during Ludum Dare 38 with a team composed of myself as the only programmer, as well as an artist and a musician. The game features a circular world, which plays similarly to the popular game "Snake", with the twist of being in 3D.

To progress further into the game and elongate the snake, you must search for footprints that protrude down from the surface, then attack them. Do this before you starve, and avoid running into your own body.

← Back

Samsara

Personal · 2018 · C# · Monogame

In Samsara you are a crystal shaping monk tasked with defending your Home from the Elder Engine. Shape your defense crystal to deflect the Engine's attacks until the Final Battle is over.

This game was developed as part of Ludum Dare, in C# Monogame.

← Back

Bounce The Bacon

Personal · 2018 · C# · Unity

Bounce The Bacon was created as part of a prototyping and evaluation module, where I was tasked to create a game in only a few weeks, and evaluate it with user feedback. The aim of the game is to aim the pig catapults and bounce the pigs around the level to collect all of the turnips.

The main aim of the game is to collect the purple turnips, with an additional golden turnip challenge for the advanced players.

← Back

PhysX Mini Golf

Personal · 2018 · C++ · OpenGL

A short demo game demonstrating my knowledge of PhysX using an OpenGL GLUT renderer. This game uses advanced PhysX features such as rigidbodies, connected bodies, joints, triggers, collision filters, cloth physics, fluid dynamics and more.

Each aspect of the simulation was modeled on realistic physical values such as mass and density, while taking performance impacts into consideration.

← Back

Softbody Simulation

Personal · 2019 · C# · Unity

An attempt at dynamically creating softbody physics objects from scratch, with various modes such as self-repel, non-repelling and equilibrium states between each node.

The nodes should ideally keep their distances between each other to create the illusion of a deformable body which gravity and other forces may act upon to influence it.