About Me

Hi, I’m James and welcome to my portfolio. I am a games programmer from the UK and I’m currently working as part of a small team developing VR arcade experiences in Unity. As well as VR, I also have a keen interest in writing gameplay and AI code. I also enjoy participating in games jams and also enjoy the fun challenges they present.

Feel free to scroll down to see some personal projects I have been working on, as well as a portfolio of work from my time at university

Professional Projects


Alien Invasion


Alien Invasion is a single player VR adventure game. Designed to be a five minute VR arcade experience, your goal is to repel an invasion from an alien planet. You need to solve puzzles, fight off attacking aliens and launch a superweapon to drive the enemies away for good.

Star Defence


Star Defence is a multiplayer VR arcade experience. A hoard of enemy drones are taking over the galaxy. Battle with your allies to destroy as many as possible, then board the enemy mothership and take down the boss.

Resuscitation VR


Resuscitation VR is a VR educational application targeted at the healthcare industry. The virtual environment is designed to mimic pressures and stresses of a trauma room where a patient might be having a seizure or going into shock. Research has shown this type of training to be a valuable tool and is now in use in several hospitals across the US.

Personal Projects


Ten Seconds (Unity / C#)

Ten seconds is a fast paced 2D platformer game in which you have just ten seconds to complete each level. The theme for this game came from a game jam that I was unable to participate in, but I thought it was an interesting concept so wanted to explore it further.

Features I hope to be coming in a future include:

  • Two new world: Ice and Desert worlds
  • An overall game time encouraging people to speed up
  • Bug fixes and some tweaks to physics to make jumping more reliable

One Class Western (Unity / C#)

This game was created for a Game Jam with the theme being One Class. Not surprisingly the challenge here was that we could make any game we wanted so long as it was written in all one class. Fortunately the rules did allow us to use a game engine here. So one weekend and over a thousand lines of code later this was the result.

This was an interesting jam as it encouraged me to think slightly differently when approaching scripting in Unity which was both enjoyable and frustrating. Safe to say I won’t be attempting that again any time soon.

Other games available on Itch.io...

Student Projects

Random Terrain Generation with Discrete LOD (C++ / DirectX 11)

The focus of this assignment was to look at methods of generating random terrain and using techniques to render it efficiently.

The terrain is divided up into a series of chunks and has its level of detail set based on the distance from the camera. View frustum culling also takes place to remove chunks that are not visible to the camera The first terrain is loaded from a height map, the others are generated using the Diamond-Square algorithm, the Circle/Hill algorithm and Perlin noise.

Artificial Intelligence Engines for Games (C++ / OpenGL)

This assignment focused on the core aspects of AI used within games. This included pathfinding, steering behaviours a finite state machine.

We were supplied with a 2D maze and were tasked with implementing a pathfinding algorithm for an agent to be able to navigate this maze successfully. The upper area of the maze the used a weighted graph to encourage the AI player to stick to roads however they can cross the grass or mud if they deem it more efficient. There were enemies located within the maze so a finite state machine was used to ensure the AI player was able to avoid these enemies.

Advanced Windows Games Programming (C# / SharpDX)

This was a group project where three of us had to design, develop and test a game engine. The main focus of this project was to ensure our game engine was developed in accordance with the SOLID principle and followed best programming practices commonly used in industry. Each member of the group was responsible for a key component of the engine so it was important the project was well organised and there was a good level of communication between team members.

Once development of the engine was complete we each had to produce a game of a different genre to demonstrate the flexibility of the engine. The approach we took to achieve this was to follow a Component-Entity pattern and was developed in C# with DirectX for graphics using the SharpDX wrapper.