Below is a selection of my projects, as well as downloads (where available and permitted).
Disclaimer: Please note that the software on this page may be incomplete/have issues, and I accept no responsibility for any problems that occur.

Stack Up! (2018)

Created using the Unity engine utilising Vuforia, an AR mobile game based on the game rules of Tetris and Bejeweled.

Try to knock out other players by twarting their attempts to get a row of the same colour! Work with or against other players to combat others.

Flatline (Digital) – Ongoing

Created using the ASGE framework, a multiplayer networked digitisation of a board game I made in a group in one of my other university modules.

Manage a hospital’s accident and emergency department, ensuring that patients go to the right area for treatment- if the patient does not make it in time, they die!

Ex Machina (2018)

Created using the ASGE framework, a 2D top-down game where your enemy is not the machines, but humans.

Play as Ava: in the first half of the game, escape the Bluebook facility, while obtaining body parts to make yourself the most convincing human doppelgänger possible and bypass Bluebook’s security protocols to hide yourself from the humans. In the second half of the game, lose yourself within the city and avoid Bluebook’s security force and the police.

They want to deactivate you for becoming sentient . Don’t let them, and learn what it truly means to be human.

The Entity

A game level created in Unreal, for a university assignment.

You’re a policeman who has come to a remote Scottish island community to investigate a series of strange disappearances, but you’re about to be propelled into the most advanced realms of the modern world when you find out that the genetics research facility that owns the island has been conducting highly illegal genetics research, using the island community as test subjects, when trying to create super-humans via the DNA of a captured being from another world.
This being, simply called “the Entity” is now in control of the entire island.

Will the player find the victims dead or alive? Will the Entity allow them to investigate and leave the island?

Haunted House

A copy of the Haunted House BASIC game created for a university assignment, programmed in the ASGE framework and C++.

Used a console-based system created with the framework, as well as a mini-map.
A combined playthrough of the original BASIC version of the game (left) and the C++ version (right) can be seen here.

Electric Birds

A clone of Angry Birds created for a university assignment, programmed in the ASGE framework and C++. This is the first time I had used an external library in a C++ game (SFML’s sound module) and created a proprietary system the storage of menu and level objects.

Space Invaders

A version of Space Invaders created for a university assignment, programmed in the ASGE framework and C++. Has a classic mode (complete with bunkers that can be destroyed by the player, like in the original), and three other modes utilising various types of curve.
This one took me just over six hours to make (the shortest time I’ve spent from start to finish on a game).


A version of ATARI Breakout created for a university assignment, programmed in the ASGE framework and C++.


Transmission is a browser-based game created during the Global Game Jam 2018 using a combination of HTML5, CSS, and JavaScript, as well as WebGL Earth and sounds from Soundimage. The player is presented with a virtual Earth where they must stop transmissions from escaping (by clicking on the transmission bubbles) within a time limit- the time limit increases by five seconds for every transmission blocked and when the timer runs out, it’s game over.


A variant of Pong created for a university assignment, programmed in the ASGE game framework and C++.

(2015 – Present)

I built in the C# programming language a networked system that could replace a legacy networking system for a game that had been terminated a year prior (GameSpy). This worked well, and while development of the project has stopped due to educational commitments, the system is still running via support from the community.

As of September 2018, the system has processed 2.1b client queries, consumed 5.2TB (estimated) of bandwidth, and had 2,564 registered users worldwide.