Reviving Zombies with AI
5 minute read.
This blog post is going to take you longer to read than this project took me to build, but that’s ok.
The hard part was recovering the old code that I had written for maybe my first game project, together with Falk Ridder, who created the (nice reworked) art for the project and David Brook, who did the sound design and music.
We were all kids in school and the project is far from representative each person’s skill today, but I wanted to preserve the ancient artefact in a way that I could easily show it to people, capturing the exact look and feel of the game.
Losing Zombiehunt
The last time I made a change to Zombiehunt was in 2012. It was written in C++ with Allegro, a game dev toolkit for C++, with a neat little windows installer, but always missing some DLL at startup.
I lost access to the source code for quite a while, as my external drive got corrupted, and I had to recover the files on it using some disk recovery software. Ever since I had it back, I wanted to port it to WebAssembly, but lacked the time to do so.
This all changed with agentic coding: the port was just a prompt or two away! It might have taken four in the end, but it was pretty much a one-shot.
Rising Zombiehunt
Some basic principles on C++/WebAssembly and WebGL were enough to port this rather trivial game. The agent decided all on its own that it would use HTML/CSS for the menus, which is advantageous for the initial load time and time to first paint.
I actively avoided porting Allegro to WASM, it is built on principles for old school native development and would have discarded some of the web’s advantages by design.
Play it
While I port my other legacy games, go play it here!