All work

Playable Games

Project P3

A strategy game built on a seeded, fully testable simulation.

Project P3 mid-game: a dark world map with infection spreading from China along air and sea routes, a country panel for Venezuela and a world news feed.

The problem

Strategy games live or die on balance. P3 has dozens of interacting systems: transmission across air, sea and land routes, climate, government concern, research and countermeasures. A simulation that complex is impossible to balance by feel alone.

I wanted a game that was fun to play and could also be measured.

The solution

Players choose one of four pathogen classes and three difficulties, then grow through multi-rank evolution trees while a procedural news feed narrates the world's response. Every campaign can be won two ways: societal collapse or long-term endemic persistence.

Underneath is a deterministic simulation engine with no knowledge of the interface, which makes the whole game testable without a browser.

Key decisions

  • Engine separate from UI The simulation has no DOM or React dependency. It runs headlessly in tests, balance scripts and batch experiments, and the interface never reimplements game logic.
  • Seeded determinism Every random draw comes from a seeded generator, so the same seed replays exactly the same game, news included. Subsystems use separate streams, so adding a headline can't shift the epidemiology.
  • Balance as a test Scripted strategies play across every class and difficulty in CI. A balance change that breaks a strategy fails the build like any other regression.
  • A laboratory for experiments A local-only Developer Laboratory runs batches of headless games in Web Workers to compare strategies under identical conditions. It is internal tooling and is never shipped in the production build.
  • Rules that stay fair A small dependency-free Node server publishes gameplay rules. Each campaign keeps a copy of the rules it started with, so tuning never changes a game in progress.

Outcome

Version 0.4 is public and playable at p3.uhren.dev on desktop and phones, with an interactive tutorial. Current work focuses on real-player playtesting, class balance and endgame pacing.