We built a game
No lesson this time. Four of us built a game, and I am still pleased about it.
It is called OUTBREAK. A containment failure has turned the building into floors of elementally mutated zombies, and you fight your way down through them in a terminal, one typed command at a time. The building is our own: Hanna Neumann at the ANU, complete with a lecture theatre and a staff room microwave you should not open.
Watch it being played
This is a real run, recorded from the finished game: 54 commands from the front door to the way out. Step through it, or press play.
Every screen here is the game's own output. The comments underneath are mine.
How it plays
- Three weapons, three kinds of zombie. Water beats fire, fire beats ice, ice beats water. The right weapon does double damage, and matching the zombie's own element does half.
- Two floors and eleven rooms. Keycards, locked doors, potions, and an upgrade point for every kill.
- Save and resume. Leave mid-run and pick it up later.
The part I built
My part was the engine, and the thing I like most about it is that the whole game is data. Rooms, doors, zombies, items and rules live in plain files, and the engine builds the game from whatever it is given. The same build runs a second, completely different campaign, the Quarantine Ward, with its own rooms and its own rules. Change a file and you get a different game, with no programmer involved.
And when someone gets a file wrong, the game says exactly what and where, where it could have just crashed:

It plays itself
The run in the player above was not typed by a person. The game comes with an automatic tester that replays whole games from a script and checks how they end, and that winning route is one of its scripts. Every time the tests run, the game proves it can still be won.
By the numbers
- 93 Java files and 160 tests
- 112 commits in 16 days
- 2 campaigns from one build
- 1 command to run it anywhere, in Docker
Who built what
A team of four, for Software Engineering at the ANU. I built the engine, the campaign loading, the progression between floors, and save and resume. My teammates built the map, movement and drawing; the zombies, combat and the element system; and the inventory, weapons, automatic tester and build pipeline.
It is a text game about zombies in a computer science building. I love it.