Outside of direct credits on titles, I have also supplied technical assistance and helped integrate nDreams Analytics into titles published through nDreams, which include Perfect, Bloody Zombies, and Shooty Fruity.

Phantom: Covert Ops

nDreams - 2020

Principal (Lead) Programmer on Phantom: Covert Ops for Oculus Quest and Oculus Rift built in Unreal Engine 4.21.

This title is published by Oculus Studios and was announced early in the Oculus Quest launch window to high-praise from the press, including "VR/AR Game of the Year 2019" at E3 from the official judges panel.

Defunctland VR

Defunctland VR Team - 2018 onwards

Main programmer on fan project to recreate various "defunct" theme park attractions in Unreal Engine 4.

The team built of passionate artists with little game development experience, so part of my role is to try and help educate other members in how to build game-ready assets, requiring me to learn more about the Art pipeline than I am usually exposed to professionally.

Built various systems and features:

  • Networking-capable player movement in VR and 2D
  • Networking-capable spline-based ride vehicle with synchronized audio track
  • Performance reviews of Art assets, trying to identify how to improve rendering time
  • 360 Panoramic Capture tool modifications to export ride as a YouTube video

Defunctland VR is planned to be released late 2019 featuring the 20,000 Leagues Under The Sea ride, with other rides to follow mid-2020.

Various VR Titles (on-hold / private / cancelled)


Various titles at nDreams that have been work-for-hire (private), on-hold, or cancelled. These were all built in Unreal Engine 4 often including multiplayer support.

Danger Goat

nDreams - November 2016 (Google Daydream)

Danger Goat is a launch title for Google’s Daydream VR headset built in Unity 5.

My contributions:

  • Early game prototyping, building 3D grid path-finding and initial character movement

  • Bug fixing when team was short on staff

  • Integrated the in-house nDreams Analytics service into the project

  • Build machine setup and maintenance


VR Game Port (cancelled)


Worked with proprietry game engine from another development studio to port existing very successful AAA game to VR. Integrated support for the Vive VR headset and motion controlllers.

Built working technical demo, but ultimately project wasn't continued due to external client factors.

The Assembly

nDreams - July 2016 (Steam and Oculus) | October 2016 (PlayStation 4) | December 2016 (Motion Controller Update)

The Assembly is an adventure game set in an morally ambiguous scientific organization.

This game was created in Unreal Engine 4.5, upgraded through each release during development to 4.13. Game initially released in Unreal Engine 4.11, then updated to 4.13 through patches to add motion controller support for all platforms.

My contributions:

  • Early game prototyping in Unity and Unreal Engine 4

  • Key Game Mechanics and Framework

    • Base player setup

    • Interactive objects

      • Core framework for objects to receive interaction from players, optionally overridden per-object or per-instance in Unreal

      • Openable objects - doors, drawers, fridges etc.

      • Outline effect material for highlighted objects

    • Save game system - reflects against Design-chosen propeties to save and restore

    • Dialogue system

      • Multiple channels of dialogue, allowing overlapping background speech to drop in volume when characters are speaking

      • Broadcast dialogue from multiple sources for 3D audio effects

      • Interupt actors based on priority settings

      • Integrated into localisation system to support subtitles and custom audio localisation system (audio localisation unsupported in Unreal Engine 4 at the time)

    • “The Box Puzzle”, Chapter 3 - taken from Design prototype to Code-based playable level. Dynamically creates puzzles from Unreal Engine 4 data assets

    • The game’s lift - created in pure Blueprint

    • Prototyping various forms of the microscope mechanic

    • Configuring the NPC animation layouts and navigation Blueprint libraries

    • Achievements integration

    • Credits screen

    • Custom analytics solution - created reusable Unreal plugin for our in-house nDreams Analytics service

    • Added motion controller support post-launch, requiring redevelopment of many of the core game systems

  • Build Tools

    • Over-night in-house build farm (Jenkins)

    • Daily automated performance run-throughs with custom report web interface (NodeJS) to identify areas for improvement

    • Console patch support for Unreal Engine 4

    • Automated localisation updates in Unreal Engine 4 (in-house custom integration with LocalizeDirect)

    • Configuration tools for creating multiple SKUs of the game ready for shipping (NodeJS)

  • Game and Engine optimisations

    • Studying daily performance reports to find framerate issues

    • Identifying performance issues and debugging expensive scenes in Unreal Engine 4

    • Working with Epic Games to patch Unreal Engine 4 for our use


nDreams Analytics

nDreams - March 2015

I created the nDreams Analytics service, which is used across all nDreams VR projects and third-party projects published by nDreams since 2015.

The event receiver is written in NodeJS and is scaled across our AWS infrastructure. Events are stored on AWS and served to our reporting frontend via ElasticSearch.

The service holds tens of millions of events, allowing immediate access to how users are playing nDreams games.

I built plugins for both Unreal Engine and Unity to allow any of our projects to easily integrate our Analytics Service. I also work with third-party projects published by nDreams to integrate our analytics service into their project if they require it.


2008 - 2015

Very popular fansite for PlayStation Home, attracting largest user base of PlayStation Home sites.

Developed a large suite of tools in both PHP and NodeJS to manage database consisting of every item and location in PlayStation Home, consisting of over 68,000 entries.

Reverse engineered application to gather data sets to update website in an automated fashion. Parsed unreliable inputs, sanitised, and fed into database.

Held regularly live events within PlayStation Home with giveaways and competitions. Managed team of 3-7 people on site to keep content up-to-date.

Maintained good relationship with PlayStation Home content developers, maintaining NDAs, assisting with developer marketing and promotions.

Featured on the PlayStation Blog.

Built in PHP, HTML, JavaScript, NodeJS.


Blood Minerals

nDreams (Android and iOS - never released)

Blood Minerals is an Android and iOS mobile adventure game to spread awareness of issues in the Democratic Republic of Congo (DRC).

nDreams took over the project internally after external development halted. We worked to optimise all the game assets and rewrote large portions of the game code to allow the game to run on mobile devices.

This was eventually released as a collection of audio books, and the interactive game abandoned.



nDreams - August 2013 (PC Oculus Rift DK1)

SkyDIEving is nDreams’ first VR tech demo. It was released for free in August 2013, shortly after the Oculus Rift DK1 kits were available.

An artist at nDreams put together the initial artwork, and I was then responsible for implementing the game itself. During development, I also added multiplayer support so people could skydive together.

Later on when the Oculus Rift DK2 was released, I updated the codebase to work with the newer headset and re-released the tech demo.


Gossip Column

nDreams - November 2013 (Android)

This was part of nDreams’ second wave of mobile games, that sadly never got released outside of a few select trial countries.

This game was made in Unity 4, and was a word scrabble-style game where you must make words from the random assortment of letters given to you.

Gossip Column featured significant Facebook integration, allowing highscore tables and jaunts against friends.

My Contributions:

  • Primary coder on Gossip Column

  • Advanced use of Unity UI plugin NGUI

  • Facebook social integration and IAPs

  • Dynamic main menu that pulled content from nDreams.com to promote IAP sales or other nDreams titles



nDreams - August 2013 (iOS)

Developed various mini-game with staff at nDreams.

My Contributions:

  • Developed Smashed! - Balance bottles on a tray using the phone’s gyroscope

  • Setup user interface using NGUI

  • Created front-end menu interface

  • Integrated In-App Purchases (IAP) into Unity for iOS

    • Wrote IAP verification server scripts to validate purchases
  • Setup Facebook integration



MED Theatre - Summer 2010

“[…] sweet adventure with a distinctive art style and an intriguing, very personal storyline with three very different possible conclusions.” - adventuregamers.com

Loricum is a point-and-click style adventure game based on a play called “Loricum”. I lead mentoring on this project, teaching programming skills to the young people involved, and assisting with game design.

Loricum is written in Adventure Game Studio (AGS), and was written over the summer holidays of 2010 with local young people aged 13-18.

The game is available free on the MED Theatre website, and also as a hard-copy at MED Theatre.

My Contributions:

  • Lead consultant and mentor to youth theatre group in Game Design and Computer programming

  • Created initial game template and assisted resolving bugs, but ensured the young people wrote the vast majority themselves

  • Created installer software for CD-ROM distribution

  • Consulted with art and audio direction from early development through to importing into game engine


Facebook Chess

May 2007

Built the first Chess application on Facebook, one of the first 100 apps to ever exist on Facebook.com.

Grew to support hundreds of thousands of active monthly players. Sold to Chess.com.

Built in PHP.

Lost Roots

MED Theatre - 2007

Lost Roots is a short drama/educational film discussing the issue of “alien” beech trees on Dartmoor.

Lost Roots won an award at the MotionPlymouth Film Festival.

My Contributions:

  • Director and Editor

  • Video Colourist and Audio Tidy-Up/Cleaning

  • Planned daily filming schedules (mainly studying weather maps to predict the constant Devon rain)

  • Contributed to project from initial conception through to final production

  • Accepted award at MotionPlymouth Film Festival