Send the next enemy wave when the field is nearly clear, not on a clock
Waves on a fixed timer pile up when the player is slow and leave dead time when the player is fast. This entry spawns the next wave on how much danger is left, with a shortest and a longest wait, and fills each wave up to a budget of enemy costs.
Why this works
What matters to the player is how much trouble is on the field, not how many seconds have passed. Releasing the next wave when the danger has dropped follows the player's pace, and a fixed upper wait stops anyone from hiding forever.
When not to use it
Skip it when pressure on a clock is the point, such as a survival game where the night ends at dawn, or a rhythm-based wave order. Then let waves arrive on a timer, and let unfinished fights pile up as the challenge.
In the full entry
- What to build, step by step
- Starting values and the reason for each
- 3 common mistakes and the fix
- A diagram of every state
- 32 lines of example code with 5 checks that pass
- How your AI shows you that it works
Say this to your AI
Use the Spielerando entry "Send the next enemy wave when the field is nearly clear, not on a clock" (read_entry wave-spawn-by-danger-budget) in my game. Build it step by step, and show me how you checked that it works.Or skip this and connect the MCP: your AI then finds all of this by itself.Connect the MCP