PhyreEngine Work

During my third year of university I used PhyreEngine as part of a group project. PhyreEngine is a free high performance engine provided by Sony Interactive Entertainment which allows projects to be built on multiple platforms, most interestingly; PlayStation 4 development kits.

Royal Rumble

During my third year of University, as part of a group project; I used PhyreEngine to develop a game using a PlayStation 4 development kit. The main concept of the game was a top down pirate PvP game where players would collect power-ups and fight it out to see who would rise victorious.

I was in charge of the pirate ship mechanics, such as movement, cannons firing and the cannonballs movement. I was also in charge of the water shader, island collisions and PlayStation 4 controller support.

DirectX Work

As part of my second year of studying I used DirectX 9 to create two games. DirectX itself is a fairly complicated 3D graphics API which handles the rendering of 2D and 3D assets, key input, mouse input and joystick input. Although DirectX handles the rendering, the API still needs to be setup. There are no magical shortcuts to handle collisions, sprites or simply getting DirectX to work.

All my DirectX games come with the necessary DLL files included alongside the executables.


Tiltageddon is a marble rolling game with a twist, the aim of the game is to reach the end of the level with only the light of your ball and your mini-map to guide the way. The holes placed across the map must be avoided with care as they may be your peril. There are also power-ups placed within the game; the light power-up increases your light so you can see more of the surrounding maze while the indestructible power-up (yes, you guessed it) allows you to roll over holes for ten seconds.

The game features a menu screen which is traversed using the mouse, the game itself is controlled via the mouse movement which tilts the maze accordingly, you can zoom in and out with the scroll wheel on the mouse.

Behind the scenes the game utilises the Singleton design pattern, using which I created a "SpriteManager", "MeshManager", "GUIManager", etc. etc. which dynamically load and unload assets as required. I created my own button class to handle the mouse input on the GUI menu in a much easier fashion.


Cosmos is a futuristic space simulation in which the player must destroy surrounding asteroids for score. The game itself is just a prototype and has no real objectives other then destroying asteroids and avoiding the sun (and it's gravitational pull).

To control the ships orientation, the mouse handles the pitch and yaw. The 'q' and 'e' keys rotate the ship left and right respectively. To increase the ships velocity use the 'w' key while to decrease the ships velocity hold the 's' key. The 'p' key pauses and resumes the game while the "Esc" key quits the game. Pressing the left mouse button fires your ships laser which destroys the surrounding asteroids.

The GUI's located in the top left display your ships current shield energy, hull integrity and the ships current energy (which is used to fire the laser and accelerate/decelerate). Also located in the top left is your current score (how many asteroids you have destroyed).

Chalk arrow to contact information