Core Loop
The loop
- Fight a wave — enemies spawn in escalating numbers and strength.
- Collect Zingthons — currency drops from kills; a magnet radius pulls pickups.
- Card phase — between waves, each player picks from 3 suggested cards (perks, weapons, upgrades). See Perks & the Card Phase.
- Repeat with a harder wave. Clear all waves to finish the planet, vote on what’s next, and carry your build forward.
Death sends the run to Purgatory — the end-of-run results flow handled by the Reaper.
Game states
The session state machine (server-authoritative, synced to all clients):
| State | Meaning |
|---|---|
SetUp | Loading/preparing the wave |
Wave | Active combat |
ClearUp | Wave over — sweep remaining pickups, reconcile Zingthon counts |
Break | Between waves — card phase runs here |
PlanetCleared | All waves done; permanent difficulty +1 |
Voting | Players vote on the next step |
Finish / GameOver | Run conclusion paths |
Scene flow
MainMenu (shop, character select) → Lobby (Steam matchmaking) → Gameplay ⇄
CardSystem (between waves) → Purgatory (death / results). A PersistentManagers
scene stays loaded throughout and hosts the singleton managers.
Pacing
🚧 TBD — target wave duration, break duration, waves per planet, intended run length. (These live in the timer config; document the tuned values once locked.)