08
Two things to keep alive

Horde Control

A top-down pixel-art survival roguelite. Defend yourself and a Tower from goblin waves, level up mid-fight, and spend each run’s Cores on a permanent skill tree.

GDScript godotroguelitepixel-artgame-design
click to turn
A wave

Three intents: ▲ Tower Seeker, ◆ Player Hunter, ■ Opportunist. The bow aims itself; you only move. Simulated here, not recorded.

The Tower, a crystal drop, goblins closing from the east
running The Tower, a crystal drop, goblins closing from the east
One ordered tick
SimClockone clock PauseAuthoritydraft · menu · deathfreezes the tick SimLoopone ordered ticksteering + separationinside the loopno NavigationAgent Wave DirectorPressure Metricsampled every 0.5 s goblinsthree intentsattack slots on a ring player + Towerauto-aimed bowtwo health bars run ends MetaProgressCoresskill treeachievements saveprofile LEASH RULE 20 s without a hit → a Player Hunter converts, permanently, to a Tower Seeker the safe corner is designed out WRITTEN DOWN FIRST 30 design docs · a values register ~750 headless test cases

Every system steps inside SimLoop on one clock, so a pause or a level-up draft freezes the world in exactly one place.

The director reads pressure, not timers

The Wave Director escalates on a Pressure Metric: threat divided by capacity times twenty seconds. 1.0 means the field would take about twenty seconds to clear at your current output. It is sampled every half second, only while a combat wave is open and outside the grace period after a draft.

Attack slots ring each target — twenty-seven round the Tower for Seekers, seven round the player for Hunters. An enemy with no free slot waits outside the ring instead of piling in.

Level-Up Draft — the world pauses, one of three
running Level-Up Draft — the world pauses, one of three

Every number is written down

Thirty design documents came before the code. Every gameplay value lives in a Provisional Values Register, and every design change has a row in a Review Decision Log.

About 750 gdUnit4 cases run headless. One of them fails on purpose, to prove the runner reports failures.

Shipped
8waves a run
18upgrade cards
20skill nodes
~750test cases

A Windows exe and an Android APK, both built and signed by GitHub Actions. No permissions, never online.

Status, honestly

A playable prototype: the full run loop and meta progression on one island with three enemy types. Elites, a boss and a second biome are next. Most first runs end before wave eight.

Outcome

Horde-Control

Chapter 09
CanVas

Realtime rooms pairing a live document with a live drawing canvas. No accounts, no passwords.

continue
08 — Horde Control
scroll · drag · ← →