My Job at Criterion Games

A short reel showing some of the projects I worked on at Criterion.

I loved my 4 years here. There was a huge amount of freedom to develop the tools and workflows that interested me. I got to constantly work with amazing artists, brilliant engineers, and smart TAs. It really deserved the best place to work award it received – zero crunch, many hackathons/ game jams, and an atmosphere prioritising fun and innovation.

The Frostbite engine was a bit of a roller coaster ride, and the editor was terrible and brilliant in its own ways. I loved the power it gave me to reshape how people worked within a couple of minutes of having the idea. It was a dream when we got to work with other engines though!

Star Wars was a huge passion for me as a kid – I spent my school summers rotoscoping lightsabers and reading fan-film forums. To get to work on some of the games was so exciting, in particular the PlayStation VR X-Wing experience – I watched gamers moved and exhilarated beyond words by the experience we had crafted in a few months.


I felt like my powers in Houdini leveled up many times, from making simple models to approximate shadows, to creating entire new pipelines for real-time VFX, and distant mesh generation for Battlefield 5’s Battle Royale mode. I got to mess with evolutionary algorithms, shader code generation and real-time inter-software painting tech. Still, not a patch on the DICE guys’ robust building destruction work!

Here is a longer video showing some of the weird tools I made during my time there. Feel free to skip around as it’s a bit boring!

I hope to come back to Criterion at some point!


Vampire in the Village (Ludum Dare 33)

Wow, it’s been over a year since I posted anything. I can’t believe I haven’t done a game jam outside EA for that long!

Here’s my entry for the current LD 48 hour competition, the theme being “You are the monster”. No sleep lost which is always nice!

Ludum Dare link

WebĀ build

All other platforms and source code


Vampire in the Village – as a stranger to the community, you must avoid causing suspicion while maintaining your health with a drop or two of blood. Gossip is your enemy, but a tactical bite can shut up the worst blabbermouth.

Controls are:
– Right-click to move and turn
– Left-click to pan camera
– Q to Bite a victim
– W to Charm the nearby villagers
– E to Glide faster than usual
– Space to re-centre camera

Townspeople have health and suspicion, which contributes to the collective town’s suspicion level. Reach the limit and the game will end. Charm can be used to remove some suspicion. When you get too hungry, your health will drop and you may die. Bite people to remain alive and satiate the hunger. Don’t move while biting or you won’t get the benefits! Biting causes quite a commotion, and should not be attempted in a crowd!

I’d love to know how you find the game, and how long you could last! Maybe someone will even kill the whole village! Comments welcome šŸ™‚





Impermanence Major Project Breakdown


I finished my Final Major Project yesterday, after a few months of hard work! It’s a first-person puzzle platformer game called Impermanence, where you lead a character through a purgatory world full of souls. You have lights you can shine on normally invisible objects to make them solid. We intended to create complex story arcs for the game, depending on who you were leading and if it was past or future.Screen2


I worked with a great team of three artists from the Bournemouth Computer Animation course (Zack Goodrich, Jamie Bell, Kodie Williams), and a fantastic sound designer/ composer Billy Ross. Thalia was voiced by Kristyn Mass. I implemented their work and didĀ all the programming in Unity, made FX, prop assets, lit the level, helped design the game, helped write dialogue and made some sound effects.

Currently I’d like to fix lots ofĀ things and add a trailer, but you can see my contribution breakdown for the game as it was handed in:

Continue reading

Group Programming Project – Fire/ Crowd Sim

One of our projects in 3rd year is a C++ group programming project. This forces us to get better at working together with Agile software development methods and merging code using source control.

Our groupĀ chose to do a crowd simulation running out of a burning building. You create the building at the start, add walls, doors, agents, an exit and place for the fire to start burning, then the simulation starts. The fire spreads and gets higher, producing smoke, and agents run from it towards the exit. They die if they get too hot. Fire can be put out using the fire engine’s hose, controlled by clicking and holding where you want to aim, but it moves very slowly, providing some challenge to put out the fire where it is most needed. Points are scored for agents that successfully get out.
Continue reading

Realtime Procedural Soundscape – Innovations Project

This project allowed me to research how to go about programming audio and DSP techniques, a field that I have not really looked into before but is so complicated I don’t think I’ll revisit it lightly!

Here’s the final video making of and software artifact:

I used OnAudioFilterRead, a Unity function that allows access to the audio buffer, to generate procedural audio. I explored three primary methods of synthesis: additive, subtractive and granular, although I feel I haven’t scratched the surface of any of them! The hardest thing was organising all the numbers that affect a complex sound; I can see why visual languages such as Pd are useful.

Here’s a detailed report on the process if you’re interested, including some of the code I wrote: