Prague Core·Untitled Tower Defense· Phase 0 — Direction Gate·4 Sep 2026
A beautiful ten-minute roguelite tower defense with a new puzzle every day that everybody solves at the same time. Nothing here is built yet — this gate exists so the look is decided before a single screen is coded.
“A tabletop wargame carved from basalt and brass, lit by one warm lamp on a dark table.”
“A living reef defending itself, drawn in a biologist’s field notebook — organic growth risographed onto gridded paper.”
Both panels above are running the same simulation — the same fixed 60 Hz timestep, the same seeded random number generator, the same seed, the same enemy order, the same timing. The only variable between them is the theme object.
That means you are comparing art direction and nothing else. It is also the first proof of the architecture the whole project rests on: a run is a seed plus a log of inputs, which is what makes replays, verifiable daily leaderboards, anti-cheat and ten-thousand-run balance simulation possible later from one code path.
Blending the two is not an option on the table. A thesis is what makes a frame recognisable; averaging two of them produces neither, and that average is exactly what generic looks like.
A run is ten minutes and ends with a decision you can name.
Violated by any wave the player waits through · any run over 15 minutes · any loss whose cause the end screen cannot state in one sentence.
Builds come from combinations, not from stats.
Violated by any upgrade that is a flat percentage with no interaction · any tower that does not change how another tower is used · any run where the draft picks itself.
Every frame is postable.
Violated by any screen that fails the anti-slop rubric · any placeholder art in a build · any moment worth clipping that the camera is pointed away from.
| Loop | Length | Payoff | Fails when |
|---|---|---|---|
| Wave | 20–40 s | Tension → decision → resolution → a visible reward | The player waits. A wave with no decision is dead air. |
| Run | 8–15 min | A build that either held or broke, and a nameable reason | The player cannot say what killed them. |
| Meta | days | The next run’s decision space is different | The unlock is a stat, so the next run is the same run. |
“One more run” is a cost problem, not a desire problem. Players almost always want another; what stops them is the price of starting one. So the run is short, restart is one keypress from the end screen, and no loading screen sits between the decision and the first enemy.
No gameplay code, no meta progression, no second map, no balance work. Phase 0 decides direction and nothing else.
Phase 1 is the vertical slice — one map, four towers, five enemy types, twelve waves, final-quality art in the chosen direction, a full juice pass and real audio. Its gate is one question: does a first-time player want to play again? If the answer is no, the slice gets fixed. Content is never added to a slice that isn’t fun.