Games

Redline Racer (PC Version)

Redline Racer (PC Version)

  • Criterion Software
  • Released
  • 1998

I was one of 4 engineers on the team; I wrote the motobike engine audio code and tooling, AI balancing code, and some of the visual effects. I also assisted with portions of the menu and networking code, special bike unlocking, as well as setting up the installer.

PC

Racing

C

Redline Racer (Dreamcast Version)

Redline Racer (Dreamcast Version)

  • Criterion Software
  • Released
  • 1999

The game was only released in Japan. I wrote the VMU code, and worked on localization, fitting the game on to the GD-ROM, and general bugfixing and optimization.

Dreamcast

Racing

C

Suzuki Alstare Extreme Racing

Suzuki Alstare Extreme Racing

  • Released
  • 1999

I mainly worked on menu system updates before moving to another project.

Dreamcast

Racing

C

Trickstyle

Trickstyle

  • Released
  • 1999

Came in near the end of the project to help out with fixing bugs before release

Dreamcast

PC

Racing

C

Hunt for the Red Baron / Master of the Skies - The Red Ace

Hunt for the Red Baron / Master of the Skies - The Red Ace

  • Criterion Studios / Fiendish Games
  • Released
  • 2000

I was the sole programmer on this project, along with an artist and a game designer. The game was designed to be purchased and downloaded over the internet over a 56kbs modem, so the entire download size was limited to 15MB. The game used Renderware and an internal engine developed at Criterion. The game was a 3D WWI flight combat game, and I wrote all the code for the game, including the vehicle dynamics, audio, VFX, menu system, AI, and game progression. The project was completed in around six months, and was the best-selling game from Fiendish Games at the time.

PC

Flight Combat

C / COM

Red Ace Squadron

Red Ace Squadron

  • Released
  • 2001

Red Ace Squadron was the sequel to Hunt for the Red Baron, and added more realistic environments and multiplayer. I improved the vehicle dynamics considerably, and added multiplayer support. However, I left the company before the project was completed.

PC

Flight Combat

Multiplayer

C / COM

World Tour Soccer 2

World Tour Soccer 2

  • Sony Computer Entertainment Europe
  • Released
  • 2006

Integrated Lua as a scripting engine, and led the Game Modes team of three engineers, as well as authoring some of the game modes myself.

PSP

Sports

C++

Lua

Internal Sony Prototypes

Internal Sony Prototypes

  • Sony Computer Entertainment Europe
  • Prototypes
  • 2008

Developed several internal small game prototypes for the PS3, PS2, and for testing a motion controller prototype. Also created a cut-down SVG renderer for using in Playstation Home on the PS3

PS3

PS2

Prototypes

C++

EyePet

EyePet

  • Sony Computer Entertainment Europe
  • Released
  • 2009

Wrote the menu system for the game using the Scaleform Flash engine, and its hooks in to the base C++ engine. Wrote a singing minigame whereby the player could sing to their pet and teach it to sing songs. The system used a fast fourier transform combined with autocorrelation and a hidden Markov model to track pitch and timing. I also write the menu hologram VFX.

PS3

Pet Simulation

Buzz! The Ultimate Music Quiz

Buzz! The Ultimate Music Quiz

  • Relentless Software
  • Released
  • 2010

I was the lead programmer on this project, joining the team halfway through development. I was responsible for planning and aligning on the deliverable milestones with our publisher, as well as managing the coding team of 3-4 engineers. On the coding side I worked on Spotify integration (sadly dropped due to licenising issues), game mode coding, and tooling to control the automated lipscyncing from the recorded voice acting.

PS3

Quiz

Blue Toad Murder Files (PC version)

Blue Toad Murder Files (PC version)

  • Relentless Software
  • Released
  • 2010

I came in nearing the end of the project, largely to get it to launch and help fix the remaining bugs.

PC

Puzzle

Kinect Fun Labs - Air Band

Kinect Fun Labs - Air Band

  • Relentless Software / Microsoft
  • Released
  • 2011

I was lead programmer on this project, with 1-2 other programmers, a game designer, audio designer, artist, and a producer. The game was made in Unity, and the team finished it and Mutation Station in six months. Air Band was the first released Xbox 360 title to be built in Unity. Among other things, I wrote the pose detection, video compression, Kinect/Microsoft login and authorization flow, and menuing system.

Xbox 360

Kinect

Kinect Fun Labs - Mutation Station

Kinect Fun Labs - Mutation Station

  • Relentless Software / Microsoft
  • Released
  • 2011

The was the second Kinect Fun Labs title that I was lead programmer on, made concurrently with Air Band. It used many of the systems I wrote for Air Band.

Xbox 360

Kinect

Kinect Nat Geo

Kinect Nat Geo

  • Relentless Software / Microsoft
  • Released
  • 2012

I started off on this title helping out writing game modes and writing a system for the Kinect to detect voting gestures by groups of up to six people - normally the Kinect could only detect the gestures of two people (US patent 20140357369A1). Later the lead programmer left the company and I took over as lead for the rest of the project.

Xbox 360

Kinect

Educational

Kaijudo

Kaijudo

  • Relentless Software / Hasbro
  • Unreleased
  • 2013

I was lead programmer on a small team including 3 other programmers. The game was a mobile game designed to be released with a physical set of toys. We finished the Alpha build ahead of time, and the only remaining work was to add more levels and other content, but sadly the toy line was cancelled, and along with it the game. I worked on monster AI and level tooling, as well as the menuing system, and the system for reading QR codes to unlock monsters in the game.

Unreleased

Card Game

Furby Boom! companion app

Furby Boom! companion app

  • Relentless Software / Hasbro
  • Released
  • 2013

I was lead programmer with 4 other programmers reporting to me for this companion app for the infamous Furby toy. I worked on the menu system, infrasound Furby communication, and the in-game item unlock system, as well as managing the programming team.

iOS

Android

Companion App

MMX Racing

MMX Racing

  • Hutch Games
  • Released
  • 2014

I was one of three senior programmers writing this mobile racing game. I integrated Scaleform in to the game to use for the in-game UI and menus, and wrote much of the menuing system. I also wrote all the audio code for the game, and the game progression and unlock systems. I also wrote some maching learning scripts using R to test the performance of the vehicle upgrades so that we could accurately predict the difficulty of any race against the player’s current vehicle setup. I also set up the company continuous integration server to make builds and run automated tests using Jenkins.

iOS

Android

Racing

Race Kings

Race Kings

  • Hutch Games
  • Released
  • 2015

I worked on the menu systems and the player pairing and tournament systems, which used the ‘GameSparks’ backend-as-a-service platform. I also worked on profiling and optimizing the android version of the game.

iOS

Android

Racing

The Crypt

The Crypt

  • Aidley Digital Worlds
  • Experiment
  • 2015

A personal project in which I created a full 6dof VR system using a Oculus Rift DK1 headset along with a Kinect and a Sony Move controller. This was before the release of the HTC Vive and Oculus DK2. By making my own 30ft ‘umbilical’ set of cables I was able to make a full room-scale experience in which the user had to retrieve a treasure from a crypt. The crypt features stone statues inspired by the ‘Weeping Angels’ Doctor Who antagonists, which could only move when the user wasn’t looking at them. I showed it at several VR events in the Brighton area.

VR

Oculus Rift

Kinect

C#

Unity

Other Software

Tilt Brush by Google

Tilt Brush by Google

  • Google
  • Released
  • 2016

Before joining Google, I had reverse engineered the Tilt Brush file format and written several tools for working with Tilt Brush files, including a web-based viewer, a converter to import Tilt Brush files in to the Unity engine, and a tool to allow the user to change the scale of Tilt Brush sketches before the feature had been added to the application. After joining Google, I worked on several features for Tilt Brush, including autosaving, offline video rendering, Google Drive integration, porting it to the Windows Mixed Reality platform, designing hand-based gesture controls, sketch simplification for large sketches or low-end hardware, and porting it from PC to the Magic Leap and Oculus Quest. I was able to get Tilt Brush to run almost the entire PC feature set on the Quest, and it was an Oculus Quest launch title.

VR

Google

Creative Tools

Unity

C#

Mobile

Streaming AR for Google ARCore

Streaming AR for Google ARCore

  • Google
  • Released
  • 2020

I worked on a team that was using Unreal Engine to stream high-fidelity AR content to mobile devices. It was released by Google and for a time if you searched for certain cars on an Android handset, you could view a very high-quality rendering of a car you might want to purchase in your own driveway using ARCore. I worked on the user interface systems and application flow.

AR

Google

Mobile

Built-in Terrain authoring and Rendering for Unity

Built-in Terrain authoring and Rendering for Unity

  • Unity Technologies
  • Released
  • 2021

I was Engineering Manager for the team responsible for the Terrain system in the Unity game engine. The team was responsible for authoring tools, runtime rendering, and performance optimization of terrains in Unity. My duties included personnel management, mentoring, leading planning and agile development, collaborating with other departments, ensuring high code quality, collaborating with the engineers on technical designs, and doing code reviews. I also made sure that I also regularly fixed bugs in the code in order to stay familiar with the codebase, reduce the bugfix load on my team, and to ensure that my coding skills stayed sharp.

Unity

Terrain

C#

C++

World - next-generation terrain authoring and rendering for Unity

World - next-generation terrain authoring and rendering for Unity

  • Released
  • 2022

I was one of several Engineering Managers on the team producing the ‘World’ next-generation terrain system for Unity. Initiailly I was only resposible for the runtime rendering portion of the system, but as time progressed I my responsibilities expanded to include the whole thing. During this time the team was also responsible for maintenance on the old terrain system, so I tried to spread the bugfixing pain across the whole team as best I could, while still continuing to fix bugs on it myself. As with my work on the terrain team, I collaborated with the engineers on the technical designs.

Unity

Terrain

Game Engine

C#

Film & Television

Dinotopia TV series tools

Dinotopia TV series tools

  • Framestore
  • Released
  • 2002

I wrote a variety of internal tools to assist the technical directors with various scene-related operations, such as code to turn lights on and off for the city scenes depending on the time of day.

Framestore

TV Series

VFX

Softimage

C

Framestore image-based lighting tool

Framestore image-based lighting tool

  • Internal Tool
  • 2002

I had to update a tool that a previous employee had written to generate HDR images for image-based lighting and apply them in Softimage. Unfortunately the previous author had not saved the version of the source code that they had used to create the version of the tool all the tech directors were using, so I had to try and reverse engineer what they had done. I was able to get a version that very closely matched the original tool. Also, after that I set up a CVS server for the R&D department to use so that we wouldn’t find ourselved in that situation again

Framestore

Lighting

Internal

Xbox ‘Mosquito’ TV ad

Xbox ‘Mosquito’ TV ad

  • Framestore
  • Released
  • 2002

I wrote a tool that would take the 3d models of the mosquito and generate a series of voxel representations of it at different levels of detail. These voxel models were then rendered in Mental Ray to create the distinctive blocky look of the mosquito in the ad.

Framestore

TV Ad

VFX

Mental Ray

C++

You Can’t Change Me - Roger Sanchez music video

You Can’t Change Me - Roger Sanchez music video

  • Released
  • 2003

The music video featured people being transformed in to cubic ‘voxel’ versions of themselves. I wrote the tool that would take the recorded video along with the rotoscoped 3d models of the actors, and create a scene file full of voxels that was then passed to Mental Ray for rendering.

Framestore

Music Video

VFX

Mental Ray

C++

Harry Potter and the Prisoner of Azkaban

Harry Potter and the Prisoner of Azkaban

  • Framestore
  • Released
  • 2004

I wrote the system that translated the animation of the Hippogriff in Harry Potter to a large motion base with the model Hippogriff mounted on to it, along with the actualtors for the wing stubs and neck. The actors would then ride the motion controlled Hippogriff, ensuring their motions looked natural once the model Hippogriff was replaced by the CG one. The tool was written in MEL in Maya.

Framestore

Feature Film

VFX

MEL

Maya

Framestore Rosetta - file format conversion tools

Framestore Rosetta - file format conversion tools

  • Internal Tool
  • 2003

I wrote a system for converting between various 3d modeling packages and renderers. The intention was that we would support Maya, XSI, and Houdini, and be able to transfer data between them and renderers like Renderman and Mental Ray. At the time I left we had export from Maya and partial export from XSI and Houdini, and import in to Renderman and Mental Ray.

Framestore

Pipeline Tools

Internal