Portfolio

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.


Wildscribe (2021, ongoing)

For my dissertation project, I aimed to answer the question of whether it’s possible to transcribe the speech of others in a VoIP channel (e.g. a Discord voice channel) and pipe it within a game window without any significant latency or UX issues.

At this stage (the end of March 2021), the answer is “probably yes?”- at the moment I am still unsure as to what the answer is (due to changing core elements of the project due to research determining these core elements would not work as-is) however my hypothesis is that it will turn out to be “no, but could work with cooperation from certain service providers.

This will be updated with a link to its own dedicated page, and may be open-sourced depending on the state of the project’s code (please bear in mind that this is a research project, a working system at the end is not guaranteed).


Raygine (2021, ongoing)

Created using C++, a multithreaded CPU-based ray-tracer that creates a scene of the Earth, Sun, and Moon, as well as dynamic stars as a background. Uses a BVH (Bounding Volume Hierarchy) as well as antialiasing, lighting, shadows, materials, and texturing.
Performance is reasonable, taking around 200-300ms on a 4th-generation mobile Intel i7.

Will be open-sourced upon completion of my degree.


COVID Protect! & CharonEngine (2020, ongoing)

Created using a bespoke DirectX game engine (CharonEngine) for a university assignment, protect the University from COVID by destroying it in its path before it reaches the university!
A tower defence game programmed in C++ utilising CharonEngine, an ongoing assignment.

Will be open-sourced upon completion of my degree.


Stack Up! (2019)

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, 2019)

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!


The Entity
(2018)

A game level created in Unreal, for a university assignment. I am considering moulding the level into a standalone game.

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
(2018)

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
(2018)

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.


Transmission
(2018)

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.


Wildfire (Jan 2015 – Feb 2021)

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, with a peak of 2,100 concurrent users online, 2,700 user profiles (N.B. multiple profiles could be linked to a single email address, so this is not a measure of unique users), and 15 different community gameservers utilising the system.

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

Due to a decline in users the system was shut down in February of 2021.