A professional software developer with over thirty years of commercial experience within the games industry, and in using game engines for non-gaming applications.
I have a diverse range of experience in game development covering not just gameplay, but also the low-level technology behind the games, and the tools to support them.
I have a particular interest in UI / UX and the architecture of games and game engines.
January 2021 - Present
Lead Programmer | Reigns | Card Shark | The Crush House
During my five and a half years at Nerial, I’ve been involved in several projects:
I was originally hired to help with Card Shark. It already contained much of the core gameplay but needed fleshing out into a fully polished game. Besides finishing the gameplay, this involved developing save / load, localisation, audio, UI, and other systems from scratch.
Developed Scaffold, a framework of reusable code for prototyping and new projects. It started with the systems I developed for Card Shark and evolved during later projects as new features and systems were required.
Created a dedicated build server with a custom application for configuring and performing builds, both daily and on demand. The builds are shared via Google Drive, and links are broadcast to the team via a Slack channel. If a build fails, the error messages are collated and sent to Slack for the team to quickly diagnose and fix.
Lead programmer on The Crush House. I developed most of the technical systems for this game, including a sophisticated audio occlusion system that allows you to hear the character dialogue through doorways and around corners. I also developed a highly modular first-person character controller that allowed easy additions of new movement types such as climbing ladders, swimming, mantling, etc.
When the original lead programmer of Reigns: The Witcher departed the project, I stepped in to replace them. I worked with the designers and the remaining programmer to implement a large change to the gameplay and deliver a finished product. With no dedicated UI team member on the project, I also worked closely with our 2D artist on the game’s UI / UX.
Overhauled five back-catalogue Reigns games, from the last ten years. Some titles required porting to new platforms due to their original Netflix / Apple Arcade releases. All titles required updating to Unity 6.0 and needed extensive reworking to use modern iOS and Google Play SDKs for achievements and cloud saves. The original Reigns game was expanded to include new content for the 10th anniversary re-release.
Mentored junior programmers and other team members.
July 2018 - January 2021
Principal Developer | Project Mobius | Edify
Project Mobius was an Innovate UK funded partnership with the University of Glasgow to create a suite of ten VR apps to be used in the classroom. My main responsibility was to design and build the Mobius Platform, a common codebase that all the applications are built on.
I developed three of the apps:
Printing Press where you operate a 15th century Gutenberg Press
Disease Diagnostics Lab where you perform a Zika virus diagnosis in a molecular biology lab.
Battling Infection where you help a person's immune system defend against salmonella from inside the body.
Reacting to the Covid-19 pandemic, the project was re-engineered into a remote teaching tool to allow lessons to be taught from a VR environment over Zoom or Teams. I led development on various technical aspects such as adding multiplayer, while mentoring the junior members of the team which was growing fast.
May 2017 - April 2018
Senior Software Engineer | KB13
A free-to-play, third person deathmatch game for iOS and Android. Besides being involved in the gameplay coding, my responsibilities included the UI, character and weapon customisation, the technical side of the art pipeline, and mentoring junior developers.
May 2002 - April 2007
Lead Software Engineer | Voxelise
A 3D voxel editor that was designed to be easy to use yet powerful, featuring frame-based animation, layers and a VR viewing mode. I acted as the product designer and lead developer.
Lead Software Engineer | Minimaker
A desktop app for creating and posing characters for 3D printers. It allowed customisation of a high-quality animated 3D character, fine manipulation of the limbs, and interactive painting before exporting as a 3D printable file.
Senior Software Engineer | Muvizu
An animation suite using a modified Unreal 3 game engine to allow inexperienced and hobbyist animators to easily make short 3D animated videos using supplied characters and props.
Responsible for the initial architecture, integration with the Unreal 3 Engine, several iterations of the user interface (WinForms and WPF), and a cross-language API (UnrealScript, C++ and C#) to control and monitor Muvizu externally.
August 2001 - May 2002
Lead Programmer | Pilot Advance
A 2D physics-based action game in the style of Thrust and Oids.
April 2000 - August 2001
Programmer | Soldier of Fortune
Converted the Quake II engine and the game to the Dreamcast console, including porting it from C++ to C. Responsible for the scripting system, inventory and weapons, and a new front-end menu.
October 1998 - April 2000
Programmer | Take The Bullet
Take The Bullet (a.k.a. Project TTB) was supposed to be a launch title for the Sega Dreamcast that was unfortunately never released. It was a third-person game with car driving sections where you played a bodyguard protecting a client.
I designed and developed a bytecode-interpreted scripting language for controlling cut-scenes and interactive game entities. It was reused in several released titles including the PC game of the sci-fi TV series, Farscape.
Programmer | Braveheart
Braveheart started as a regular real-time strategy game under the name Tartan Army, in reference to Scottish football supporters. As the game expanded with a clan management system, a tie-in with the Braveheart movie was arranged and the game was renamed.
On Braveheart, I assisted the development of AI for driven and walking ground units. I also took over development of the rendering system, completing the Glide (3Dfx) renderer and implementing the OpenGL and Direct3D renderers from scratch. The unreliable state of OpenGL drivers on Windows at that time meant we regrettably had to pull that particular renderer before release, but the Direct3D and Glide renderers performed extremely well.
June 1997 - October 1998
Lead Programmer | Modular Game Engine | Æther | TMmy
Designed and built a modular game engine for prototypes of two entirely different games. This was a major challenge and involved developing physics, collision detection / handling, scripting, and rendering modules.
August 1995 - June 1997
Lead PC Programmer | Reloaded
Lead developer on the PC version of Reloaded. First experience of managing junior programmers.
Programmer | Actua Soccer: OEM Edition
Created OEM versions of Actua Soccer to showcase the 3Dfx, PowerVR, ATI, and S3 hardware-accelerated graphics cards that were about to be released to the public.
September 1991 - June 1995
BSc (Hons) Software Engineering
The third year of my degree was spent working at AT&T in Malmesbury, Wiltshire. I was responsible for writing tools that analysed the log output of digital telephone exchanges. It was this experience that taught me that my passion in software development was for games and similar technologies.
My final year dissertation was to develop a game engine in the style of iD Software’s Wolfenstein 3D for the Linux operating system, and a low-level VGA driver to support it.
I'm a keen gamer, with a particular interest in quirky 2D or retro-inspired games.
My husband and I have a shared interest in Lego, which has been steadily filing our house for many years.
I play the guitar and previously managed a successful guitar teaching business in my spare time.
Lego