A lightweight strategy survival game: pick a disaster, then make it through as many days as you can, ideally until rescue, on nothing but judgement and whatever is in your pack.
The idea came from a podcast episode — the hosts running an extreme-survival TRPG session, arguing through trade-offs with no clean answer. It was gripping enough that I wanted to build a version of it: a strategy survival game where the goal is simple — stay alive as long as possible, ideally until rescue.
The harder design problem sat underneath it. A fully AI-driven narrative forgets things, breaks its own rules, and spoils its own tension. A fully scripted one can't branch. I needed something in between: an AI that could generate endless scenarios, constrained enough never to lose track of what actually happened.
The game spans a growing set of extreme survival scenarios — heatwave, extreme cold, viral outbreak, the aftermath of war. Each runs the same core loop: an event happens, the game lays out the facts, and the player chooses how to respond. One rule holds throughout — no option comes with a hint about which is "better". The information is sensory and situational, never a pros-and-cons list.
One example, from the heatwave scenario. On day 3 an elderly neighbour knocks, asking for water and ice, with the player's own supply already critically low; sharing costs two litres immediately. On day 7, when the player's generator fails at the peak of the heat, the neighbour's son — an electrician — arrives and fixes it for free, having heard what the player did for his mother. The cost and the payoff land four days apart, and there is no way to know on day 3 what day 7 will bring.
The core insight: don't try to make the AI smarter — give it guardrails. The fix was splitting the system into two layers that never touch. A ledger layer — plain JavaScript, no AI — holds the real game state: water, health, morale, inventory, day count, and a pool of "seeds" for effects that need to trigger later. The AI layer only writes: it generates the scenario and three options as structured data, and never does arithmetic, never decides whether the player dies. The frontend owns every number and every life-or-death check. Early on, letting the model do that maths directly meant it was wrong often enough that players stopped trusting the game the moment it miscounted.
The same seed system handles delayed consequences. When the AI writes an outcome it is required to plant a seed in the ledger, which is fed back into the prompt every turn until it is used — so an item picked up on day 3 resurfaces correctly on day 7, without relying on the model to remember it unprompted. That guardrail also cut the spoiler rate — the AI accidentally hinting at future consequences — from 62% to 4%.
Voice narration from the AI dungeon master, and more disaster scenarios beyond the current set.
![[BMW image]](assets/work/bmw-hero.webp)
![[Breakthrough Agenda image]](assets/work/breakthrough-hero.webp)
![[Green Legacy image]](assets/work/green-legacy-hero.webp)
![[Clipper image]](assets/work/clipper-hero.webp)