Game development / Phaser 3 / Gamedev.js Jam 2026
Spare Knight
A tactical roguelike where attacks never miss and the tension lives in your timing. My passion project, now being rebuilt for a desktop release.
My contributionDirection, programming, and the painted characters, event illustrations, and interface art; a collaborator handled sound, voice, and co-wrote the lore.
Built withgame-dev / phaser / javascript / roguelike / tactical / isometric / ui-systems / hand-painted / jam

About the project
An outdated knight protects the last human he has in a world where the machines have decided organic life is inefficient. Combat runs on a 6x6 isometric grid with speed setting the turn order. Attacks never miss and never roll damage; what you commit is what happens. The tension moved into timing instead: reaction wheels ask you to hear a chime and choose when to strike or brace.
I directed the game, wrote the code in Phaser, and painted Cog, Wren, the machines, the event illustrations, and the interface in Krita. Nicholas Drabb handled sound, voice, and co-wrote the lore. It shipped in 13 days for Gamedev.js Jam 2026 and is open source.
Players told me the original interface was hard to read, so the July update rebuilt it the way I would build a web app: named type roles, panel tokens, and one shared tooltip component that every scene uses. That build is the one live on itch.io today. The postmortem covers the combat design and the UI devlog covers the rebuild.
This is the game I keep coming back to. It is being rebuilt as a desktop release in Electron, aimed at Steam: resumable runs, a black-and-paper interface with near-black silhouettes and bone paper controls, joined terrain, illustrated scene transitions, and a larger cast of stranger machines. The beta exists locally and ships when it survives a clean-machine install. Choosing the engine you can ship explains why the Phaser codebase is the one going forward.





