Undead Signal
An anti-poker zombie roguelike shipped in Unity. The horde deals poker hands at you; every verb you have takes their hand apart. Balanced with an automated bot lab, live on Wavedash with achievements and leaderboards.
I came to games from production software, and it shows in how I build them. The rules get written before the code. Combat math is deterministic so it can be tested. Tuning lives in data, so a designer can change a number without touching a system. When feel is not enough I build a bot and measure: Undead Signal’s balance came out of a headless lab playing 300 seeded runs per change, and the first report said the front door was the deadliest room in the game.
Four shipped games so far. Undead Signal (Unity, live on Wavedash with achievements, leaderboards, and cloud saves) is an anti-poker roguelike where the horde builds the hand and you take it apart. ThunderBashers (Unity) is a 2.5D arena brawler with one verb and bots driven by personality profiles. Spare Knight (Phaser 3) is a tactical roguelike with speed-based initiative and no attack RNG, in a world I painted in Krita. I Won’t Be Abducted (Godot) is a tabletop-defense game with a twist in its last beat. I draw most of the art myself.
I’m looking for a gameplay or tools engineering seat where the systems are the job, on a team that ships. Where games and applied AI overlap is where I want to spend the next few years.
An anti-poker zombie roguelike shipped in Unity. The horde deals poker hands at you; every verb you have takes their hand apart. Balanced with an automated bot lab, live on Wavedash with achievements and leaderboards.
Next one
▸ In progresssaas · ai · agentic-ai
league-of-legends · full-stack · vue
saas · ai · mcp
5 min read
Designing an anti-poker roguelike by inverting Balatro, killing three drafts to find it, and balancing the result with a bot that played 300 runs per tweak.
3 min read
A post-jam overhaul driven by one comment thread: new typography, a token system inside Phaser, tooltips that read the mechanics, and two soft-lock bugs run to ground.
5 min read
An engine pivot with the clock running, a core mechanic that fought back, and the lesson that readability is a mechanic.
3 min read
Three token layers, eleven motion presets, two identities from one codebase, and a two-agent Claude workflow that keeps design authority and implementation honest.
3 min read
How I Won't Be Abducted ramps difficulty with zero new mechanics: every knob lives in a Godot resource, and the player's kit never changes.
4 min read
Shipping a tabletop-defense game solo in one weekend: scope guardrails, a mid-jam economy cut, and hiding the real game underneath the game.
3 min read
Designing a tactical roguelike where every attack lands: initiative from speed, commitment instead of RNG, and a hand-painted world made in Krita.