About me

I’m an experienced games developer with over a decade’s worth of professional work in large budget AAA console games, bespoke mobile, VR and AR marketing applications, gambling slot machines and live mobile and Facebook games with millions of daily users.

I love to create, improve, and tweak experiences for users and keen on roles where the creative direction is shared and owned by the team.

During the day to day, you can find me refining gameplay controls and smoothing out animations to improve player experience, looking for feedback on prototypes or investigating and refining tool workflow by removing as much friction as possible for the content creators.

Sounds like someone you want on your team? Drop me an email, I would love to hear from you!

Past Work

Click on the covers below to find out more!

Harry Potter and the Order of the Phoenix (2006-2007)

Harry Potter: Order of the Phoenix was my first job in the industry as a one of the Level Integrator leaning towards the technical side more than design.

My main role was to implement a lot of the meta-game features and design that encouraged the player to explore the world of Hogwarts in exchange for rewards such as video interviews with the cast and the concept images.

All the logic for the game object unique interactions and reactions were controlled through C++ ‘scripts’ which sounds unusual and had it’s fair share of pros and cons during development.

This project is where probably learned the most about programming in a large scale project as I was pretty lucky being in a team of veterans game developers where they encouraged us to ask questions and willing to answer in detail.

They taught me about the advantages of using component based architecture, importance of CI, multi-platform development and the importance on good tools and workflows. With me just coming out of University, this was a fantastic opportunity to learn as much as I could from everyone and their experiences.

During the latter half of the project, I started to be given more programmer orientated tasks as my lead knew that was the direction I wanted to be heading towards. I worked on extending the scripting logic API and providing programmer support for the rest of Integration team as the majority were from a design background which reduced the burden and disruptions on the main game development team.

Harry Potter and the Half Blood Prince (2007-2008)

Harry Potter: Half Blood Prince was my second title and was the start of my career as a gameplay programmer as was given the task of prototyping and implementing the Potions mini game. This was a huge responsibility as it was one of the three core game mechanics in Half Blood Prince that would be used repeatedly throughout the game.

This is where I really learned the importance fast prototyping and how it was more important to prove something worked then it was to do it ‘right’. For every new idea that came up for potions, I quickly cobbled a working version under guidance from my lead to see how well it worked.

Everything from the core mechanic, layout and camera angle were reworked multiple times, the Wii controls alone had 7 or 8 different versions before it went through focus testing with our target audience to see which worked best and more importantly why. The mini game incrementally improved throughout development through ‘baby steps’ and become one of the most polished features in the game.

From the GamesRader Wii Review: "Let's start with potions, as it's the Big New Thing in Half-Blood Prince. It's brilliant. ... Not having ever made a potion we can't judge how accurate it all is, but the gestures are spot-on and fun to perform - it's a truly great mini game."

One of the larger unexpected problems that cropped up late in development was running out memory for assets due to the sheer number of unique ingredients and recipes needed for potions and had to come up with a solution without any major system rewrite.

Seeing that the head and body memory slots were not used during potions, I organised the data each set of ingredients for a recipe to occupy one or two of these slots since only one recipe would only be loaded at any one time. This meant that only a small change to the initialisation stage of potions was needed to cater for the load.

Need for Speed: Shift PSP (2008)

Need for Speed: Shift was a bit of a departure from my previous gameplay orientated roles as I was asked to be a frontend programmer using a Flash based library on an existing engine.

As it was an old codebase and toolset, there were not many developers at the company that knew exactly how the pipeline worked to export the game data into the game beyond the fact that there were a bunch of batch files that ran the command line tools.

Through some trial and error and the use of tools like Process Explorer and WinMerge, we managed to work out which batch files to use for different sets of data and also added some extra error reporting in the scripts.

As the frontend still had all the graphics from an old game, I stripped all the screens down to their barebones ready for the artist to add new graphics and animations at a later stage.

The livery select and editing screens were my main contributions to the game dealing with logic, presentation, saving and loading to memory card and UMD, including dealing with the TRCs associated with files on external media.

Unannounced (2009)

My main role on this project was working on prototyping a two player version of an existing mini game on the Wii and changing the controls so it can be played with just the Wiimote as the game was focused on co-operative play. This didn’t take too long to get to a solid workable version and move onto tool support for the integrators and art outsourcers.

As the outsourcers were external, we had to be careful on what data they had access to reduce the risk of a game leak but still be able to test their work in-game. An external Perforce server was created for them to use that was a mirror of ours without any of the level data except for a blue room sandbox that I created.

Within this sandbox was the same lighting and effects setup as the rest of the levels and also access to a set of debugging tools that I implemented that allowed the user to play any animation on a selected model and also scrub through the frames to look possible possible problems with the exported data.

Other side work also included adding some features into the existing development tools with requests from the development team such as being able to build the game data and launch the game in one click and managing to speeding up Wii image build times after talking with a few other developers.

There were some rumours that it didn’t take as long on Windows 7 an given it was something that was easy to try, I ran some benchmarks with our existing setup on Windows XP against Windows 7. There was a 30%-50% reduction (!) simply from an OS change and after some research, this was due to the improved file caching in Windows 7.

Unfortunately, this project was cancelled during production and the team moved onto Create.

Create (2009-2010)

EA Create was my last game at EA and during that time, I was a support engineer for the team taking on tasks that were outstanding but didn't fit in any of the other developers specialised areas and focused my attention to keeping the team moving forward.

My main task was on monitoring and maintaining the daily code and data builds, dealing with any build issues that occur which were usually memory related. This meant that I was also maintaining investigating our memory usage in game which became more important as we moved from a level based streaming system to a dynamic loading on-demand per object system which I assisted another developer in integrating into the game.

I partnered with IT to have PCs ready for newcomers from the moment they arrive via creating a base image for the PCs which had the majority of tools installed. Once I was given the new PC, I would update the tools via our in-house auto-installer that I maintained and built the latest version of the game on all platforms.

A new starter could now start working on the game within 30 mins compared a day that it used to take waiting for everything to install and download.

Battleships (2010-2011)

WMS Gaming was my first job outside of the game industry and since worked on two video slot machine themes, Commanding Officer and Periscope Pays which was based on the Battleships IP from Hasbro. Initially, there were meant to be two programmers on the project (one per theme) but as another project was overrunning, I ended up being the main programmer on both themes and developing in parallel. Thankfully, both shared a common base code which helped reduce the workload.

Each theme had their own unique set of bonus features that are available to the player to trigger. As there isn't much depth to the games compared to console games, there is a heavy focus on the player experience such as how everything is presented and fed back to the player. As the Producer and Designer were at the head office in Chicago, we were constantly sending builds up for review and getting feedback during the early stages to ensure that we had the experience and game flow correct early on.

A lot of focus and testing is placed on the strict technical requirements that states and countries have for these games which centre around accuracy, reliability and accountability. Common test cases being able to return to the same state if the machine is power cycled and being able to look at the games history if a dispute is raised from the player.

During this time, I also developed two small tools to help with my largest time sink during bug fixing which was anything to do translated assets.

It was incredibly difficult to compare translated assets with each other and whether they were missing or not so Locale Detective was born. The tool allowed me to quickly scan and search assets in the data folder and see at a glance if a translated asset was missing or named incorrectly which saved me hours during the late phases of both games. The full readme can be found here.

My second tool, GobbledyGook used Google Translate to loosely translate English text into the languages WMS supported so that artists can have a rough sense on how much room was needed for text on UI components in an effort to reduce the number of bugs due to text not fitting. The full readme can be found here.

Another point of frustration was the amount of manual work needed by the developer to send a build to the head office for review which required a clean code base on the developers machine, testing locally in the studio on device and then sending the build to the remote servers. This whole process could easily take up half a day, especially if the request for build came in the middle of task as it took some time to clean up the code to get into a playable state.

A couple of spare PCs and some lunchtimes later, I installed and maintained the first company's continuous integration server using Jenkins which performed static code analysis, build and deployed nightly builds of all active projects to the test devices in the studio. I also added a job that allowed anyone to send or retrieve a build from and to any office build server.

The Sims Social (2011-2013)

The Sims Social is my first experience in Facebook games and in continuous content release which came with fresh challenges especially with the large team size. This included working to much tighter and smaller release cycles that I am used to with console games.

The majority of the work was made of small features or fixes that fit well in a development cycle and are usually community requested such as themes, player engagement or annoyances in the UI.

One of the larger features I have implemented was the overhaul of the UI flow for skill based items to make it a predominate feature in the game and incentivise players to invest time and energy in skilling up their Sim via these items. I worked closely with the UI Artist, Product Manager, Designer and QA to work towards a prototype, first releasable and create a testing plan keeping everyone informed on progress and issues.

It was well received by players as the UI made it a lot easier as it provided a central interface to see what items were not yet fully mastered and to find more items to level up a particular skill both in their inventory and the store.

Playfish was also the first studio where SCRUM was implemented by the book across all teams and I learned a lot seeing it in action on a live project across a large studio made up of several teams. I still refer to the experiences today when working with SCRUM teams.

During the last few months as the teams were being reshuffled due, I stepped up into the role gaps for team lead and Scrum Master for a cross discipline team which was almost purely managerial. At first I struggled as I still tried to keep up my tasks as well as manage the team so I reduced my workload to a few tasks and fixes to focus more on supporting the team and dealing with studio wide issues or tasks.

Happy Finish (2013)

I joined Happy Finish to further widen my experience and knowledge in related interactive media industries. It was a much more client facing role than expected with frequent meetings (in person and over phone) providing progress updates and clarifying briefs/requests to further understand what their vision of the product.

The department's main aim was to create unique experiences using hardware like the Oculus Rift, Leap Motion and Kinect, pairing it with the CG work that is created in-house to create highly polished applications.

This included the Bazooka Budz Augmented Reality mobile app which I took ownership mid project and carried it through to release on both the Apple and Google Play Stores. Another was Happy Interactions which I oversaw as technical lead evaluating and experimenting with various hardware looking at what could be used pending the environment of the application.

We also experimented with ideas on what could be possible and creating proof of concept prototypes including a virtual showroom that the user could walk around using the Oculus Rift and the Kinect.

The interactive department was still relatively new and I was able to bring my industry experience to the team, mentoring the junior programmers, providing further feedback for usability within the apps, driving development processes and adapting them for a production driven company.

This was a challenge as the workflows that were in place and the managers were used to a linear schedule of production rather than a typical software iterative development cycle which made quotes difficult to calculate up front. Over time, I learned more about the process of the how the sales teams pitched ideas to prospective clients which helped frame my estimations in the correct context and highlight potential issues and/or provide further creative input to the pitches.

King (2014-2016)

I returned to my roots at King, focusing on my previous experience as a Gameplay Programmer, augmenting it with King’s vast knowledge of making hundreds of casual games and learning more about their creative processes.

All the projects I have worked on were developed with small team, usually a programmer, artist and a designer. The focus was on high iteration of ideas and feedback to fine-tune game mechanics, so I would seek ways to reduce any bottlenecks when it came to making changes.

A major part of this was to focus on tools to change content early during the development phrase, so that the team could quickly iterate over ideas rather than manually manipulating data files.

I try to understand what the pipeline is like for others to use, listening to feedback and observing their usage to look for ways to make it easier and simpler to create or iterate over content. Some of the best tool features have allowed us to edit levels mid-game, undo previous moves and playback the game in slow motion, which have made features much easier to demo and debug without developer involvement.

With design, I always approach the implementation of the mechanics from the player’s view, identifying potential issues and improvements that are not always apparent during conception. This is fed back to the designer, usually before the implementation is finished and tweaked as necessary.

The focus on tools, along with the shorter feedback loop, has increased the speed of implementation of new features in our prototypes. The builds are sent to the management team for feedback and review; they have recognised our team’s turnover time as the fastest in the company.

I am also currently broadening and updating my skills with courses supplied by King. These include credited Agile courses and Scott Meyer’s Modern C++ training course, which has been useful in understanding the nuances in C++11.

Chat Wars - Twitch Plays (2016)

Between May and July 2016, I was live streaming games development on Twitch to see if it was possible to generate enough revenue to sustain continuous game development.

I wanted to break out of the hit driven loop of games development and reduce the financial risk which traditionally comes with it.

Games development is ultimately a debt first process. They take time and/or money to create, and until they reach a playable, presentable state, crowd funding, early access and publishers are not an option.

It’s not even guaranteed that the game will earn back the cost of development. In a lot of ways, it’s a gamble and there are only so many bets that can be made before running out of time and money.

While I was brainstorming what I could do to minimise or mitigate the risk, Twitch.tv has started to focus on live streaming non-games such as cooking, art, music and more relevantly, games development and programming.

I knew that games streamers have become very popular with a quite a few making significant money much in the same way YouTubers have. However, at the time, I couldn’t imagine watching people developing games live has the same appeal.

Yet it looked like it could be an interesting way to solve the debt first issue mentioned above. What if the development process could be used to provide entertainment value and viewers could donate and/or subscribe to the channel?

Below are the links to a series of articles about my stream setup (both hardware and software) as well as my thinkings, research and the outcome of this experiment.

PlayCanvas (2016-2017)

Although the company's core business was their WebGL engine and cloud based editor, they would also take on client work to help publicly showcase the engine's capabilities. I joined PlayCanvas primarily as a content creator to manage this work and allow the core technology engineers to focus on improving the engine and tools.

My first project was for Miniclip to create a promotional title (Virtual Voodoo) for Halloween within 5.5 weeks, where I was the project lead and developer with a dedicated 3D artist.

Due to the short deadline, the focus was on creating a shippable MVP and then build layers of functionality to guarantee a release. Builds were sent to Miniclip early and frequently to ensure that they were happy with the game's direction and to identify any issues as early as possible. Reception to the game was positive with an average rating of 4/5 on Miniclip.

In-between client work, I expanded the tutorials section with over 30 project samples to help build a knowledge base for users. As a team, we identified common functionality that users would want to implement and frequently asked questions to build a priority list of samples to create.

My final project was to create an experience that showcased the potential of VR through the browser using WebVR. The primary goal was to create a 'responsive' VR experience that had the same functionality no matter the platform.

The user could be on a Google Cardboard, a Google Daydream or even using full room scale VR setups; all the functionality of the experience is accessible. I had to cater for the lower end without sacrificing the fidelity and experience of controls like the Oculus Touch.

Google showcased the project on their blog for their Chrome 56 release announcing native support for WebVR quoting:

"WebVR allows developers to build an experience that scales across all VR platforms from Google Cardboard and Daydream to desktop VR headsets, while also supporting 2D displays. Different platforms have different capabilities and the PlayCanvas WebVR Lab project gives developers an example of how to manage that diversity." Megan Lindsay, Google Product Manager for WebVR

Conspexit Games Studio (2017-2018)

Conspexit Games Studio provided a rare opportunity to work on something that is more than just games and inspire players to participate in social change.

Hidden - Beast Hunter is an AR, location based mobile title where users are encouraged to take photos of everyday objects that beasts are interested in. These photos are used to create a dataset for Conspexit (the parent company) to help the visually impaired.

I worked directly with the lead designer and creative director to give a technical point of view on the gameplay mechanics to estimate feasibility and suggest design changes based on the available technology.

From these discussions, I can look at how to answer any design questions or ideas with quick, high iteration prototypes. These have included map navigation in AR, different ways to represent player gadgets that would work well in an AR scenario and creating a 'seamless' plane detection sequence.

The seamless plane detection was an interesting problem to design and prototype around given how new the technology is. Most ARKit/ARCore games tend to instruct the player to look around an like a table or the floor which felt like a chore and interruption to the player.

I set out to look at ways we could make the plane detection seamless to the player and in keeping with existing game mechanics. This took longer than I initially had hope but kept pushing this as high priority as it would become a unique feature in what would become a crowded space.

A number of different approaches, iterations, feedback and brainstorms later, we ended with something that was unique to our game and added to the experience and narrative of being in the Hidden world.

Back to top