Wave budget in games: how enemy waves are built and capped

A wave budget is a limit on how much danger one wave of enemies may hold. Instead of listing every enemy by hand, the designer sets a few numbers and lets the game fill each wave from them. This guide explains what a wave budget in games is made of, how to grow one without breaking the game, and then shows the real numbers Tank City Zero Day uses.

What is a wave budget in games?

Think of a shopping trip with a fixed amount of cash. Each enemy has a price, and a wave is the basket you fill before the money runs out. The wave builder keeps adding enemies until the budget is spent, then stops.

The budget can be a simple count, a pool of points, or both. Most games that use one control three separate things:

  • Total size: how many threats the wave holds in all.
  • Field cap: how many may be alive at the same moment.
  • Pacing: how long the game waits between one entry and the next.

Keep these three apart. Thirty enemies that arrive together feel nothing like thirty that trickle in one every two seconds, even though the total is the same.

Why use a budget instead of placing every enemy

Hand-placed waves are ideal when a game has a fixed number of stages, because you control every moment. The first game on the site works this way: each of its six stages has a set lineup of 20 tanks. Stage 1 is 18 worms and 2 trojans. Stage 6 is 4 trojans, 6 spyware and 10 rootkits.

That approach fails when a run has no end. If a player might reach wave 7, wave 23 or wave 40, you cannot write them all. A budget lets a short formula produce as many waves as the player survives.

It also gives you one place to tune. If wave 8 feels too hard, you change a number, not a hundred spawn entries.

How enemy costs work

In a point budget, every enemy type gets a cost. The more an enemy threatens the player, the more it costs. Threat comes from health, speed, damage and how much the enemy forces the player to change what they do.

Here is a made-up example, not taken from any real game:

  • Small fast drone: 1 point
  • Tough walker: 3 points
  • Stationary turret: 5 points

With a 12 point budget the builder could pick twelve drones, or four walkers, or two turrets and two walkers. Each wave looks different, but the total pressure stays about the same. That is the point of the system.

Price by how an enemy plays, not only by its hit points. A fast drone with one hit point can be harder to handle than a slow armored tank. A good test is to build waves from a single type and see which ones actually hurt.

How to grow the budget from wave to wave

The budget needs a growth curve. Two shapes are common:

  • Linear: add the same amount each wave. It is easy to predict and easy to tune.
  • Capped: grow until a ceiling, then raise difficulty some other way, such as enemy speed or tougher types.

Caps matter. Without one, a late wave can fill the screen until the game stutters or becomes unreadable. A cap keeps the field legible while speed and enemy mix keep the pressure rising.

Time is part of the budget too. If you release enemies on a timer, tie the timer to real elapsed time, not to the frame rate. Our guide to delta time in games explains why.

Spending the budget: types and timing

Once you know the size of a wave, you decide what goes in it. Three habits make waves feel designed rather than random:

  1. Unlock types gradually. Do not show every enemy on wave 1. Introduce one new threat at a time so the player can learn it.
  2. Group by pattern. If a fast enemy always comes in threes, players learn to expect a group and plan for it.
  3. Release over time. Spawn a few and wait. A trickle lets the player clear threats before the next ones arrive.

Randomness is fine inside these rules. The budget sets the limits and the dice fill in the details.

A worked example: a wave budget in Tank City Zero Day

The second game on the site, Tank City Zero Day, is "Tank City, modernized: 8-way moves, dashes, upgrades and a boss every fifth wave." It builds every normal wave from small formulas, and all three parts of a budget are there. It counts threats rather than spending points, but the idea is the same.

Bar chart of how many threats a normal Zero Day wave holds and how many are on the field at once, from wave 1 to wave 14

Total size. A normal wave sends min(30, 6 + 2 x wave) threats. Wave 1 sends 8, wave 4 sends 14 and wave 8 sends 22. From wave 12 the total sits at the cap of 30. Because drones arrive as a group of three, a wave can run one or two over its number.

Field cap. At most min(8, 4 + wave / 3) threats can be alive together, with the division rounded down. Waves 1 and 2 allow 4, wave 6 allows 6, and from wave 12 the cap stays at 8.

Pacing. The wait between entries is max(0.6, 2.0 - 0.08 x wave) seconds. Wave 2 waits about 1.8 seconds, wave 10 waits about 1.2, and the wait never drops below 0.6.

Speed. Threats move 3% faster with each wave until wave 15, and then that growth stops.

Every formula has a ceiling. After the ceilings are reached the pressure comes from what is in the wave. Ransomware can enter from wave 3 and cryptominers from wave 4, and a wave holds at most 1 plus one per 6 waves of the cryptominers, so they stay rare.

The types differ in toughness. A botnet drone takes 1 hit, a worm takes 2, ransomware takes 3 and a cryptominer takes 5. That works like a hidden price: a tough enemy stays on the field longer and holds one of the few slots under the field cap for longer. Drones are fast, come in threes and hunt you, so a group of them changes how you move.

Every fifth wave is a boss wave, and it skips the formula. The zero-day boss arrives with groups of three drones, one group for each boss so far. The boss has 40 hit points on wave 5 and 15 more at each later boss, so the boss budget grows too. You can read how the game steers these enemies through the arena in our guide to Dijkstra's algorithm.

Put it together. On wave 2 you face about 10 threats, four at a time, entering a bit under two seconds apart. By wave 8 you face about 22, six at a time, with ransomware and cryptominers mixed in. The numbers climb along a gentle line, yet the feel changes a lot.

The first game, Tank City Reboot, shows the other style. It always sends 20 tanks a stage, four on the field at a time. Its pacing still scales: a new tank enters every 2.6 seconds on stage 1, a quarter of a second sooner each stage, down to 1.1 seconds from stage 7. After stage 6 the stages loop with the last lineup and faster enemies.

Both games have a budget in the sense of this guide. One writes the wave by hand and tunes the pace. The other writes a formula and lets it run forever.

Common wave budget mistakes

  • No cap on the field. A big total is fine if enemies arrive in a stream. A big crowd all at once is usually a bug in disguise.
  • Costs that ignore behavior. A cheap enemy that hunts the player can be nastier than an expensive one that sits still.
  • Growth that never stops. If every number rises forever, the game ends in a wall. Cap some values and let others carry the difficulty.
  • Too much randomness. If a wave can roll all easy or all hard, players feel the dice, not their own skill. Use groups and unlock rules to narrow the range.
  • Skipping a fairness check. Zero Day draws a fresh arena each wave and redraws any arena where a gate cannot reach the core. A budget is only fair if the space allows a fair fight.
  • Never playing the extremes. Test wave 1, the first capped wave and a boss wave by hand. Most balance problems show up at the edges.

Frequently asked questions

What is a wave budget in games?

It is a limit on how much danger one wave may hold. The game fills the wave with enemies until the limit is reached, using a count, a point total, or both.

Is a wave budget the same as difficulty?

No. The budget is one tool for setting difficulty. Enemy speed, health, types and spawn timing also shape how hard a wave feels.

Do I need point costs for a wave budget?

No. A count with a cap on how many enemies are on the field, plus a spawn delay, is already a budget. Point costs help when you have many enemy types with very different threat levels.

How does Tank City Zero Day set its waves?

It uses formulas for the number of threats, how many are alive at once and the delay between entries, and each one has a cap. Every fifth wave is a boss wave.

Get started

Reading about a budget is useful, but feeling one is better. Play Zero Day for ten waves and watch how the size, pace and mix change. Then try the first game and compare its fixed lineups.

Play Tank City Reboot: it is free, plays in your browser on a computer or a phone, and needs no account.

0 likes

Comments

No comments yet.

Sign in or make an account to comment.