genre

Use when

Designing a survive-the-timer game where the skill is positioning and build-drafting against an escalating horde.

Twin-stick Horde Survival (Vampire Survivors-like)

What it is. You move; you don’t aim. Weapons fire automatically. The screen fills with enemies at a rising rate, and every few seconds you pick one upgrade from a draft. The run is a race between the swarm’s growth and your build’s growth — survive the timer, or drown.

Player fantasy / why it’s fun. “My build came online.” The turn from scraping by to mowing hundreds — the multiplicative moment when three upgrades click and the horde that was killing you becomes XP confetti. Minimal input, maximal escalation.

Pillars

  1. Positioning is the only input. No aiming, no reloading — the skill is orbiting the horde so your auto-attacks sweep them, herding density into your fire. (Kiting bots corner themselves; the skill is the orbit — FUN.md §6.)
  2. Build growth is multiplicative. Upgrades compound — +area × +count × +damage — so the power fantasy accelerates. This is why the tide must be superlinear to keep pace (system-build-diversity).
  3. The tide always rises. Spawn pressure climbs relentlessly (quadratic ramp) so the run is always tightening; the peak-alive count is a designed target, not an accident.

The loop stack

ScaleThe loop
MomentOrbit; sweep a cluster; scoop the XP gems it drops.
EncounterA wave / minute band: survive its density, then the level-up draft that answers it.
SessionOne ~10–20 min run: draft a build, out-scale the tide, reach the timer or die.
MetaBetween-run persistent unlocks (new characters, weapons, permanent perks) that change what you can draft.

Essential systems

SystemWhy it’s needed
system-build-diversityThe draft is the game; many upgrades × real synergies make each run a different build story. Pillar 2.
system-meta-progressionPersistent between-run unlocks that add options (not just power) — the reason to run again. Pillar of retention.
system-reward-schedulesXP gems, chests, level-up timing — the drip that paces the power fantasy; keep it ethical (no dark patterns).
system-difficulty-and-ddaThe tide curve; the quadratic spawn ramp is the difficulty. Assist = slower ramp or a revive.
system-procgen-designEnemy composition and pickup placement varied per run within provable pressure bounds.
system-session-structureA run is a fixed-length timer; define the band structure (minute → boss-minute → finale).

Content & difficulty model

Reference wiring: examples/emberwake — the horde sim in world.state with a pooled-sprite view (the cosmetic-view rule under load); the orbit-bot survival proof and peak alive assertion pattern. Grep docs/API.md for the pooling and particle primitives.

Signature-mechanic seeds

“X but Y” (process-the-twist) — bend the input, the tide, or the draft.

Common pitfalls

Anchors

Verify

Prove it with FUN.md §6 · Horde survival — orbit-bot survives with an hp floor; peak alive ≥ N asserted so the horde can’t regress; the superlinear spawn ramp checked against build DPS; sim ms/step budget under load. Design the tide-vs-build here; prove the race there.

Composes with

See also

This module rendersthe repo's markdowndirectly — edit it there, it changes here.