I am a senior programmer in the game development industry who has shipped several award-winning titles across a broad range of platforms. I'm currently working at Magic Leap, helping define mixed reality gaming.
I enjoy writing clean pragmatic code. When code needs to be optimised, I have a professional level knowledge of C# and C++, which allows me to refactor for speed and performance. I have developed games using several engines, with a special focus on Unity.
I have a very optimistic and passionate approach to my work which positively affects those around me. I love programming and am constantly developing myself both professionally and personally.
ProjectsI lead this project from game jam to completion. The goal of the project was to create a fun toy that demonstrated the strengths of the Magic Leap One. The project was completed in six weeks.
I was responsible for designing the game architecture and managing the other programmers on the team. I used Box2D to create a framerate independent deterministic physics simulation. I wrote an in-game level editor to allow the designers to rapidly create/iterate on levels.
I was the Lead Programmer for the first half of this title before leaving PikPok. I was responsible for designing the game architecture and managing the other programmers on the team. I wrote tools for the procedural level generation.
This is my current project, and it's very exciting :)
This one should be launching soon.
Launch title for Magic Leap's Mixed Reality device. It was a collaboration between Magic Leap and Weta Workshop. I was responsible for designing the missions architecture. The design went through several iterations, but my design was flexible enough to allow us to iterate quickly
It was a Collectible Card Game based on Lionhead's Fable franchise, but Lionhead closed down before completion of the project. I worked on card abilities and champion abilities. The project was eventually launched on Steam.
The publisher, Scopely, approached MediaTonic about taking their current version of Breaking Bad: Empire Business and improving its performance. When we got it, the existing code base was a mess. I was responsible for moving assets into Unity Asset Bundles and dynamically loading/unloading only what was needed.
I worked on gameplay, AI, UI, and leaderboards. I implemented a snail AI competitor very late in development as requested by DreamWorks, which included: personalities, steering behaviours, and collision physics. The game featured many different race modes, and I wrote a generic XML system for creating and extending race event types.
I worked on gameplay, UI, achievements, and the store. I implemented gameplay props which the user could interact with, and worked with physics to make all the elements work together. I worked on UI to incorporate 2D screen elements interacting with 3D world elements for issuing move requests to the dragon, along with game feel for panning and zooming.
I joined the project late in development. The Lead Programmer took a few weeks off so I was brought in to replace him while he was away. I worked on porting the game to Android, implementing leaderboards, and managing the other programmers.
I was brought onto the project for the 1.3 update to support them in localisation. Our engine at the time used sprite sheets to render text but had to integrate TTF support to allow for localisation into Chinese, Korean, Japanese, and Russian. I worked on integrating this new tech into our UI tool.
I worked on gameplay, effects, and UI. I scripted unlockable powers and an efficient infinitely tileable level. I worked closely with the artists to implement feedback effects. The UI went through many iterations before the end of the project, and I am really proud of how the carousel on the level select turned out.
I was on the UI team, but towards the end of the project I was working very closely with the network programmer to stable connections for all the target platforms. The UI was a huge part of the game, I worked on the player editor, team editor, competition editor, tutorials, team management and many more. A lot of time was dedicated to platform requirements, which also meant lots of platform specific learning.
I joined the project towards the end of development as an Additional Programmer to help them get through their backlog of tasks. I worked on the UI and leaderboards. The UI features unlockable cookies with pictures that were dynamically generated to prevent hundreds of unique textures.
I joined the project towards the end of development as an Additional Programmer. I worked on the UI, New User Flow, and gameplay support. The UI featured many complex animations at a time when our UI animation tools were very fresh. The New User Flow required UI masking to be added, and the UI input to ignore masked elements.