godot-game-loop-waves

Installation
SKILL.md

Architectural Thinking: The "Wave-State" Pattern

A Master implementation treats waves as Data-Driven Transitions. Instead of hardcoding spawn counts, use a WaveResource to define "Encounters" that the WaveManager processes sequentially.

Core Responsibilities

  • Manager: Orchestrates the timeline. Handles delays between waves and tracks "Victory" conditions (all enemies dead).
  • Spawner: Decoupled nodes that provide spatial context for where enemies appear (wave_spawner.gd / wave_weighted_spawner.gd).
  • Resource: Immutable data containers that allow designers to rebalance the game without touching code.

Density Decision Tree (pick scale before coding)

Live density Approach MANDATORY loads
Under ~80 SceneTree enemies Node manager + Marker spawners wave_manager.gd, wave_spawner.gd, wave_resource.gd
Swarm visuals / hundreds MultiMesh + weighted composition wave_loop_patterns.gd (MultiMesh / async path), wave_weighted_spawner.gd
~10k bodies PhysicsServer / NavigationServer RIDs (no per-mob Node) wave_loop_patterns.gd server-RID patterns; do not scale wave_manager node spawns

wave_manager.gd is the SceneTree golden path (deferred add_child, group/signal clear counts, optional pool). Treat it as prototype→mid-scale — for RID swarms, follow wave_loop_patterns.gd instead of instantiating thousands of nodes.

Installs
166
GitHub Stars
586
First Seen
Mar 7, 2026
godot-game-loop-waves — thedivergentai/gd-agentic-skills