design for real people

Webgames & Toys

I've Got Tech

OST Jam #1, Jan 2021

A simple infinite runner with pixel art, lasers, and robots. Made for the inaugural OST Jam, using music from the Two Hour Album Challenge. Get as far as you can, shoot and juggle enemies for points, and get a high score!

Dungeon Delver

0h Game Jam 2020

This game started development at 1.00am and finished at 1.01am as British Summer Time ended. Dungeon Delver is a simple room-based dungeon delving game where you have to collect the key to unlock the way forward and slay monsters that become more numerous as you descend further.

Chrono Drift

Ludum Dare 47

My first Ludum Dare compo entry, Chrono Drift was made in about 36 hours. Play an astronaut attempting to assemble her broken flux capacitor by picking up all the broken pieces in zero gravity before the timer runs out and she is reset. View the Chrono Drift compo page to see its rating and comments from other developers.

INDEV: Heaven Ascent

js13k 2020

Heaven Ascent is an roguelite action platformer where you navigate through the heavens, fighting demons and collecting stars, before facing down an array of angelic bosses who seek to stop your ascension.

The game has undergone a little post-competition development and I plan to improve it further, so if you want to see the original jam version you can view its entry page here, and view the Heaven Ascent Trello board here for a glimpse into what might come next.


2k+ Jam 2020

A game made in under 2 kilobytes, Colourshift is a colour-arranging puzzle game where you have to sort the coloured tiles by hue and brightness, strongly inspired by the classic I Love Hue. Mobile friendly!

Ice Slide

2k+ Jam 2020

My second entry to the 2k+ Jam 2020, Ice Slide is a puzzle game where you must guide your character to the finish line while avoiding various pitfalls on the way. Strongly inspired by JRPG slide puzzles. Mobile friendly!

INDEV: Wizardlike

A roguelike with an elemental magic system, where spells are cast by drawing glyphs. Delve deep into the dungeons to retrieve the crown, fight an array of monsters, and collect potions, magic items, and new spells to help you on your journey.

This is an ongoing project that I return to periodically; view the Trello board to see new features are coming down the pipeline.


DO NOT PLAY THIS GAME without reading this article about it first. I'm serious.

A game about the intentionality of game mechanics and their place in design, where you control a rover trying to repair a Mars base after a sandstorm.

Back 2 Back

js13k 2019

Back 2 Back is a co-op arcade style shoot-em-up that pits you and a friend against incoming hordes of alien ships, asteroids, and deadly alien bosses with a host of pickups and weapons. Alternatively, if you're brave and skilled enough, play controlling both ships! An entry to the js13k (view its entry page).

The Walk

The Walk is a very personal game about my struggles with depression and PTSD, that I wrote at an extremely low point in my life. There is not a lot of gameplay here; it takes the form of a conversation held while walking through rainy city streets.

Systems Offline

js13k 2018

Systems Offline is a puzzle game entry for the js13k (view its entry page), and came second overall! You awake to find yourself on an abandoned, broken space station. Can you fix the systems quickly enough to survive and escape?

INDEV: Dragon


A more substantive foray into procedural generation, you play a Dragon! Explore a procedurally generated world, hunt and eat a variety of creatures, assemble a treasure hoard that would make Croesus weep, grow to become a great and mighty wyrm, acquire minions, and cast world-altering magic. Not quite completed, but very playable.


js13k 2017

Adrift is a game about the loneliness of being lost at sea. You have to struggle against the elements and even against your own boat to get it to go the way you want to go. There's little to find out on the ocean - other than somewhere out there, the key to returning home.


A clone of Terry Cavanagh's Super Hexagon (a fantastic mobile game that you should definitely play if you haven't already). Could probably use some more polish but I think it gets the general feel across.


Not strictly finished, but playable. Labyrinth combines two experiments - noise-based procedural generation for creating maps, and sprites drawn on Canvas. I had plans to continue developing this, adding more complexity and procedurally-generated content, but I've since worked on other much more complex roguelikes.


Pilot a lunar lander across a procedurally-generated landscape. Try to get as far as possible without running out of fuel or crashing. Uses canvas and a pared down noise generation algorithm.

Gravity Golf

js13k 2015

Initially a prototype for learning vectors, I happened to code this within the timeframe of the 2015 js13k and it was well inside the size limit. Though I wasn't happy with it as a game (and tbh there's a lot to be desired), I entered it anyway after encouragement from Andrzej (and didn't place last!).


Implementation of Conway's Game of Life with configurable rules. Find out more about cellular automata rulesets.

Check out the Incremental Game version for a brief dalliance with turning it into a game.

Guinea Bits

Quick and dirty, made for some guinea pig lovers. See how far you can get before your guinea pig stops to eat. Pushing the practical limits of CSS with this one so it's somewhat janky when running.


Buttons! was an experimental incremental game, coded while taking a break from CivClicker. Very simple and plays quite well on mobile.


FAQ - Update Log - Postmortem

First released September 2013, CivClicker was my first real foray into JavaScript. Loosely inspired by Orteil's Cookie Clicker and the Civilization series, it began as a couple of buttons and grew from there.

After gaining a surprising amount of popularity and becoming one of the seminal games of the "Incremental Games" genre, I eventually drew a line under the project and published a v1.0 release under the GPL in February 2014.

Prototypes / Experiments

Heavy Arms

A prototype mech simulation game, designed to test a pseudo-3D voxel-style graphics technique.

Ex Machina

An adventure game prototype designed to test both a sprite construction method and a basic dialogue system.

Be The Best

An experimental incremental game about capturing and battling monsters (largely unfinished).


An experimental non-interactive game about gladiators battling lions. I actually don't remember making this!


An experimental incremental game that allows you to time travel! You can actively transition between and manipulate various different timelines during play.


CII was the thoroughly-indev prototype version of CivClicker II, a sequel to the original game. This time it involves a procedurally-generated world map, canvas graphics, and the ability to move units around and interact with the game world.


Not much to do, but intended to be peaceful, calming, and nonviolent. A this point Cloud is mostly a testbed for using HTML5 audio (in this case, music) in games. More experimenting with noise algorithms too.

Space Trader
The rudiments of a space trucking sim, mostly an opportunity to play with Bootstrap.

Very basic Asteroids clone written to test out p5.js (a canvas media library).


Playing around with rot.js (a roguelike library) to create a simple maze game.


A simple clone of Orteil's very cool procedural generation engine Nested, this was mostly thrown together to play around with object generation and as a testbed for future projects.