Basic use of an array to store the seven glyphs and a single for loop that creates the keys’ rectangles at runtime for collision checking with the mouse cursor. The keys were created with the same loop and the colour chosen based on the outcome of a nested ternary operator.


The glyphs are scaled down from 16 x 16 pixels to 9 x 9 pixels to fit on the edge of the ring. They’re placed at a rate of $\frac{a'}{\left(39/2\right)}\pi$, where $a’$ is the adjusted angle with the rotational offset having been added on. This creates the rotation of the glyphs and the original angle is used to rotate the glyph around their origin to add to the effect. When the target glyph has been reached, a timer counts down from two seconds before switching direction and repeating the process. The formulas are as follows:

Stargate Test

$$a=0\le a\le38 \\ ringRot=-38\le ringRot\le38 \\ a'=a+ringRot \\ offsetRad=\frac{a'}{\left(39/2\right)}\pi \\ glyphRot=-a$$


This was originally intended to be a shader but I had trouble passing noise values so it’s just a procedural texture. The values are generated by my C# port of Kurt Spencer’s OpenSimplexNoise algorithm, then parsed through a switch statement to give it one of four blue colours. The animation is created by travelling positively through the Z dimension based on the total game time in seconds. Since the texture is a rectangle, only pixels in a given radius are given values, the formulas for this are as follows:

$$r=\sqrt{\left\lvert\left(x-\left(3.5\times16\right)\right)^2+\left(y-\left(3.5\times16\right)\right)^2\right\rvert} \\ rMax=\sqrt{\left(1.75\times16\right)^2+\left(1.75\times16\right)^2} \\ r\le rMax$$



You've learned that His Lordship's strongest supporter is Lady Tudor. However, three women in the Tudor Family are referred to as Lady Tudor: The wife of the late Lord Tudor and her sisters. You're being sent to the posh Tudor Estate on the night of a costume party in order to determine which Lady Tudor you must eliminate.


Last Party is a demake of Arkane Studio's Dishonored, more specifically the mission Lady Boyle's Last Party. The game has been made with the Game Boy Advance in mind, with its 240 x 160 resolution and four button input (A, B, L and R). The graphics can be switched out and the map is fully editable for custom levels but the targets and their hints have been hard-coded.


One atom versus another, push each other into the atomic waves to gain electrons. Who will win?!


Molecumulate was created for Aardvark Swift's Grads in Games competition, known as Search For A Star 2017/18. Given a base template of two capsules on a platform, we were told to adjust the existing code to make a complete game.

I took this idea and made a point-collecting game where players must knock each other off the platform into the "water" below. The players are atomic nucleai and the points represent electrons which increase the radius of the player's collision sphere every eight points.

RocketLeague 2015-09-11 19-01-08-350.png

RocketLeague 2015-09-11 19-01-08-350.png


In a cave in the deepest part of Canaan lie abominations of the Sons of God and the Daughters of Man. Who shall dare try to rid the land of their kind?


Nephilim is a text adventure game created as part of a university assignment. It is a simple Console window which makes use of rudimentary class inheritance. Never the less, it was one of the few examples of a complete game on my portfolio at the time.


KAGE was conceived out of a practical test for a potential placement year. The shadow enemy was based on my finding that in Unreal Engine 4 you can render a shadow but not the mesh, thus giving us the name for the game as well; kage (kah-geh).

In Japanese, the word kage means:

  • shadow; silhouette; figure; shape

  • light (stars, moon)

  • trace; shadow (of one's former self)

With this in mind, a second enemy was created made entirely of burning light to contrast the shadow enemy wandering the level.

RocketLeague 2015-09-11 19-01-08-350.png

Kage (かげ)