Cobo Makes Games blog

How to balance weapons with a damage budget

How we balance Mytheria's nine weapons: a damage budget per tier, every move costed in seconds of budget, with all 108 combinations measured in play.

All nine of Mytheria's weapons using their tier 5 Awakening, one after another
On this page
  1. How do you balance weapons in a game?
  2. The short answer
  3. Give every tier a damage budget
  4. Cost every move in seconds of budget
  5. Measure every weapon in the game
  6. Find the cause, then change one thing
  7. Let area weapons win against groups
  8. Know what the number doesn't tell you
  9. Building the balance tools in Godot
  10. A checklist for balancing weapons

Nine weapons that each play differently are fun to design and hard to balance. A bow and a spirit fox don't do damage the same way, so comparing their damage numbers tells you little. (How those numbers are shown on screen is a story of its own: damage numbers.) In Mytheria, our pixel-art co-op game, we balance them all against one damage budget, and measure every combination instead of guessing.

Every clip below is from the game, filmed for this post. Every number comes from our own balance measurements.

How do you balance weapons in a game?

Decide how much damage a weapon should deal in a given time, then make every weapon reach that target in its own way. Give each tier of power a budget, express every move as a share of it, and measure each weapon in the game the way a player would use it. Then fix whatever falls outside the target, one move at a time.

The short answer

How we balance Mytheria's weapons:

  • Each tier has one damage budget, in damage per second against a single target.
  • A move's damage is written as "this many seconds of budget", so changing the budget scales every weapon at once.
  • An upgrade multiplies a move instead of replacing it, so two upgrades combine predictably.
  • Every combination is measured in the real game: all nine weapons, five tiers and every choice of upgrades.
  • Anything within 15% of the budget counts as balanced, and anything outside gets fixed.
  • Damage against groups is measured but not balanced, because area weapons are allowed to be much better against crowds.

Give every tier a damage budget

Weapons in Mytheria grow through five tiers. Each tier has a budget: how much damage a second a weapon should deal to one target. The budget rises steeply, because the enemies in each region are much tougher: 1, 3, 8, 20 and then 50 times the first tier's budget. The same curve sets the game's prices, explained in game economy design.

Ranged weapons get a slightly bigger budget than melee ones, because the balance model assumes players land fewer ranged hits: 85% of melee hits, 75% of ranged ones. At tier 1, the budget is about 39 damage a second for melee and 44 for ranged. At tier 5, about 1,960 and 2,220.

Cost every move in seconds of budget

Every move's damage is written as a number of seconds of budget. A blade cut might be worth a fraction of a second of budget, and a slow anchor slam a lot more. When a weapon goes up a tier, every move scales with the budget, so nobody has to re-tune 108 numbers. Moves also become comparable across weapons: a rune that bursts for "0.47 seconds of budget" can be compared with a bell ring or a bite, even though they work nothing alike.

Upgrades change a move by multiplying it. Split Shot fires three arrows, so each arrow is worth 0.52 times as much. Burning Arrows trades some of the arrow's hit for burning, at 0.8 times. Pick both and you get three burning arrows, each worth less. Because upgrades are multipliers, a pair of them never adds up to something far stronger than either.

Measure every weapon in the game

The numbers on paper are only a start. Whether a weapon delivers its budget depends on its timing, its reach and how its moves work together. So every weapon is measured in the real game: walk up, use the whole kit (left button, right button and the tier 5 Awakening every few seconds), and hit still dummies for 24 seconds. The dummies turn to face the player five times a second, the way creatures do, so "hit it from behind" only happens when it would in play.

The result is a single number for each weapon, tier and upgrade choice: the damage it delivered, divided by its budget, where 1 means exactly on budget and anything from 0.85 to 1.15 counts as balanced. These are all 108 combinations at each tier, before and after balancing:

Pick a tier, then switch between the first build and the final numbers

Measured damage as a share of the tier's budget. Each bar spans the weapon's upgrade choices at that tier; the shaded band is 0.85 to 1.15.

Find the cause, then change one thing

An outlier almost always has a cause you can name, and fixing that cause beats nudging the number. An Echo Bell that deals double damage is a bell whose echo ring, meant to reach a marked foe, also strikes the foe the ring just hit, so an echo never strikes a foe its own ring already struck. A Stormglass Anchor that's far too weak is an anchor whose hurl flies a fixed distance and overshoots, so the hurl lands where you aim, as far as the spin can carry it.

Check the measurement too. Dummies that never turn around make every cut count as "from behind", which makes the Twin Sickles look far too strong, so ours turn like real creatures. Upgrades that overwrite each other's damage instead of combining are the reason for the rule that upgrades multiply.

After the causes come the numbers: change them, measure again and repeat until every one of the 108 combinations sits inside the band.

The Stormglass Anchor at tier 5. Its hurl now lands at the aim, so its slams connect.

Let area weapons win against groups

The budget is for one target. Against a tight group of five, the close-range area weapons (the blade, the censer, the bell, the anchor and the sickles) deal 3.7 to 7 times their single-target budget, while the reach weapons deal 1 to 3 times. We want it that way: fighting a crowd up close is risky and kills it faster, while keeping your distance is safer and takes longer.

Know what the number doesn't tell you

The measurement is perfect play, with every bow shot released at the perfect moment and every rune placed under its target. Real players land less, which is why the budget already assumes 85% and 75% of hits land. The number also leaves out parries, deflected bullets and what weapons do for a friend in co-op. It shows whether the damage is fair, and only playing the weapon shows whether it's fun.

Building the balance tools in Godot

In our Godot project, the measurement runs the real combat code with the same inputs a player's controller sends, so the numbers describe the game players get. Every move's cost and every upgrade's multiplier live in one data file, so a balance pass only changes data. The tier budgets come from the same balance model that tunes the enemies, so weapons and enemies rest on the same assumptions.

Armor gets the same treatment from the other side: one defence curve for every set, with bonuses doing the differentiating; see armor sets that stay useful.

A checklist for balancing weapons

  • Set a damage budget per tier for a single target.
  • Cost every move as a share of the budget.
  • Make upgrades multiply moves instead of replacing them.
  • Measure every weapon, tier and upgrade choice in the real game.
  • Aim for a band around the target.
  • Find the cause of each outlier, and check the measurement itself.
  • Let area weapons be better against groups, and say so.

Further reading

Wishlist Mytheria

Mytheria is a pixel-art co-op adventure for one to four players, coming to Steam for Windows, macOS and Steam Deck. A wishlist is the best way to follow it and to help us.

See the game Join the Discord

Mytheria

Coming to Steam

The store page isn't up yet. Leave your email and we'll tell you when you can wishlist Mytheria on Steam.

We'll send that one email and never share your address.

Windows · macOS · Steam Deck