Devlog #3: I threw away my game six days after it was born
#gamedev #devlog #godot #ai-agents #indie-game

In the last post I promised to honestly pass the stage 1 gate: play five runs of my own prototype and ask myself, "is this actually fun?" Spoiler: I played. The answer was no.

This post is about how, in one evening, the Loop Hero loop died and a bunker was born — and why gates in a roadmap matter even when they hurt.

The gate fired. Unfortunately. Fortunately.

Context: the prototype was "Loop Hero + elements + waves" — the hero walks the loop on his own, you place tiles. I played a few sessions and caught myself thinking two things:

  1. - I don't like Loop Hero enough to clone it.
  2. - The mechanic of "place a graveyard to spawn enemies and empower them so you can grow stronger" is masochism. I build problems for myself just to heroically solve them. It works in the original, but it doesn't hook me.

The important part: the gate in the roadmap was written before any code: "play 5 runs yourself; if it's boring, iterate here, don't move on." When it got boring, I already had instructions to myself on what to do. There was no temptation to "push through to the elements, maybe it clicks" — the rule was written by sober-me for in-love-with-my-code-me.

An evening of brainstorming instead of coding

Then came an honest conversation with myself (with Claude Code as a therapist armed with a decision tree): what do I actually like about the games I've been looking at? The list of sources:

  • - Silo — a multi-level bunker built long ago and never fully explored
  • - Oxygen Not Included — digging down and sideways to expand a base
  • - Heroes of Might and Magic / They Are Billions — exploring a fog-of-war map
  • - Wartales — tactical squad combat where positioning and terrain matter
  • - NordHold — economy, caravans, trade

From this came the concept: post-apocalyptic colony sim + expeditions. You are the mayor of a surviving bunker. Inside: levels, energy, population. Outside: a fog-of-war map, neighboring bunkers, trade, bandits. Skirmishes: tactical squad combat with 3–6 fighters. The long lure: the legendary underground city DeepWell. Working title: Silo: DeepWell.

What survived the pivot (and why that's the main lesson)

The most interesting part for engineers: the entire foundation moved over without a single change. The tick core (10 ticks/s, pause, x1/x2/x3), seeded RNG, signal bus, the "content is data" pattern, reproducibility headless tests — all of it turned out to be genre-agnostic. Only the gameplay layer was thrown away: loop scenes, tiles, skeletons. The old slice is buried with honors in the loop-hero-slice branch.

In retrospect this justifies the decision from the first post: build the boring deterministic foundation first, not the gameplay. Today I threw away the gameplay. The foundation stayed.

What got built in one evening

Same pipeline as last time (I frame and verify, Claude Code writes), only now with mandatory headless smoke tests after every step, because the Godot 4.7 lesson was learned. By commits:

  1. - Bunker v1: cross-section, digging, rooms, cycle "well → water → farm → food → colonists eat", colony death by starvation
  2. - Squad combat: pure class without Node — 3–6 fighter positioning, auto-battle by ticks, terrain modifiers (forest = cover, rocks = wall, river = slow). The reproducibility test caught two bugs before any UI appeared — an eternal fight in a rock dead-end and a wrong cover check
  3. - Surface: 30×20 map with fog of war, squad, bandit ambushes, trading post of a neighboring Silo
  4. - Gate against gate: I played three loops and picked the bunker as the most interesting. Stage 2 = bunker depth
  5. - Bunker v2: the bunker is now BUILT from the start — 10 levels around the elevator shaft, lower ones collapsed. Energy from reactors, living population (housing, couples, births via hospital), barracks train fighters
  6. - Founders' legacy: the main reactor is buried deep (a weak emergency generator on top), surviving workshops and stashes hide in the rubble. Plus the narrative frame: "Bunker #N. You are the new mayor"
  7. - Storage and caps: resources got storage ceilings, warehouses and generator batteries expand them

The day's special joy: the idea of "mayor of a ruined bunker" came from a random remark during a playtest ("it feels like something happened and I was appointed mayor") — and it made it into the game in one commit, because rubble was already a mechanic; all that was left was to add narrative and discoveries.

Insight of the day

Last time the bottleneck was "code looks right vs code works." Today it's different: the bottleneck is taste. An agent will cheerfully build either a Loop Hero clone or your dream bunker; it won't say "hey, you don't actually like this." The only boredom detector is a living human who plays their own prototype and honestly admits it to themselves. Roadmap gates are a way to force yourself to say that admission out loud.

Cheap code generation changes the price of a pivot: throwing away six days of work would be excruciating if the code had been handwritten for six days. As it is, I only mourn the idea — and the idea isn't worth mourning, because it wasn't mine, it was Loop Hero's.

What's next

Stage 2 "Bunker depth": deeper production chains, events, maybe turn-by-turn orders in combat. In ideas.md the next-horizon ideas are already parking: a living world (gangs fight each other without the player), transport and carrying capacity, oxygen tanks as an expedition timer, terraforming with a "bloom or hide" dilemma. Same rule as before: ideas go in the file, only the current stage goes into code.

The stage 2 gate is phrased: "30+ minute session without boredom; population grows and dies meaningfully." I'll report back honestly, just like this time.

Subscribe

If you're curious about how games get thrown away and what grows from the remains, subscribe. Next post is either about energy and population balance, or about a second pivot — I don't want to believe the latter yet.

#agenticGameDev


Metrics (honest, straight from git log)

  • - Commits today: 12 (first 19:31, last 21:25)
  • - Lines thrown away: ~1,000 (the whole loop, loop-hero-slice branch)
  • - Codebase size: 2,124 lines of GDScript (1,329 before the pivot)
  • - Headless tests: 3 (1v1 combat, colony, squad combat) — all green, squad combat test caught 2 bugs before UI appeared
  • - Gates passed today: 2 (stage 1 closed with "not fun" verdict, stage 2 outline chosen — bunker)