
- Platforms:
- PC, PS4, Xbox One, Switch
- Engine:
- Unity
- Language:
- C#
- Roles:
- Porting, Optimisations, Tools
I was brought in to help the Fallen Tree Games team with their ambitions open world title American Fugitive. When I arrived on the project there had not been much work done to get this game working on consoles, and the console version suffered from a lot of performance and memory issues. I was responsible for all the usual porting stuff, platform integration, user handling, controllers etc. But also lead the work investigating and coming up with optimisations for memory and framerate. This included the creation of a build pipeline that could process prefabs to help reduce their memory cost, improving the existing tools that were being used to make the levels, and helping to overhaul several systems to fit the constraints of the consoles (particularly the Switch).

- Platforms:
- PC, PS4, Xbox One, iOS, Android
- Engine:
- Unity
- Language:
- C#
- Roles:
- Gameplay, Porting, Bugs
I was hired through an agency to help the team at Snap Finger Click complete their exciting quiz game, It’s Quiz Time. During this contract I was mainly working on gameplay features, implementing the popular streaming mode where a human host replaces the vurtual one, and plays live on stream (through Twitch, YouTube, or Mixer) against a their viewers. I was also involved with implementing and improving some of the rounds. I helped out on the complex commentary system which allows the host to chime in with witty and relevant comments throughout the game, and I worked a bit on the mobile companion app, improving the initial player flow and the flow for late joiners, as well as helping out with general bugfixes.

- Platforms:
- PC, PS4, Xbox One
- Engine:
- Unity
- Language:
- C#
- Roles:
- Porting, Networking, UI
The Playniac team hired me to replace a programmer who was leaving and also to help port their game to both Xbox One and PS4. The game, Insane Robots, is a local and online turn-based multiplayer game, with a single-player campaign. It is made in Unity with a 3rd party networking solution. My role was to finish off the porting work, ensuring correct handling of saving, users, etc, as well as a relatively complex online setup using external matchmaking. Along with this, I was also involved with helping to fix some bugs in the game, most notably several related to the networking implementation, and helping the developers of the 3rd party networking solution to prove out their Xbox One implementation. I was also involved in an overhaul of the UI in the game, to make it more gamepad friendly.

- Platforms:
- PC, PS4
- Engine:
- Unity
- Language:
- C#
- Roles:
- Gameplay, AI, Tools, UI, Integrations
After Ironcast wrapped up, I was invited to join Dreadbit and Polygonhearts for their next project, Seraph. Seraph is a fast-paced, acrobatic shooting game where the aiming is automatic. As one of the two programmers, I was responsible for a large amount of game, including: The automatic aiming system, procedural level assembly, creating a designer friendly level editor, all the AI, a large amount of the UI, scoreboards, twitch integration, the audio integration, challenge modes, save/load system, and an assortment of gameplay features.

- Platforms:
- PC, PS4, Xbox One
- Engine:
- Unity
- Language:
- C#
- Roles:
- AI, Tools
The Ironcast team hired me for a short time to help them with their steam-punk, match-3, mech combat game. I created a save/serialisation system that could be dropped in to the existing project, and spent some time improving the AI (based on player feedback). Most of my time was spent designing and implementing a localisation system that could be used without having to manually fix up the large amount of existing English text.

- Platforms:
- PC, Xbox One
- Engine:
- UE4, Unity, In-house
- Languages:
- C#, C++, Javascript
- Roles:
- Tools, Build Pipeline, Testing, Consulting, Education
For nearly 3 years I worked with Microsoft and Rare, helping them to create tools to improve automated testing, maintaining and improving their build pipeline, investigating and teaching low-defect development practices (TDD, Unit Testing, Refactoring, etc.), and generally helping the team reach their quality goals. This was incredibly rewarding work that involved many challenges, both technical and social. During this time, the team I worked on had a lasting impact on many aspects of how the studio works, resulting in less bugs, better creativity, and hopefully, less late nights.