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.
On this page
- How do you balance weapons in a game?
- The short answer
- Give every tier a damage budget
- Cost every move in seconds of budget
- Measure every weapon in the game
- Find the cause, then change one thing
- Let area weapons win against groups
- Know what the number doesn't tell you
- Building the balance tools in Godot
- 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
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.
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
- How to design weapons that each feel differentHow we designed Mytheria's nine weapons around one verb each, from a harpoon that pulls to runes you set off later. See every weapon in play.
- How to make big enemies feel heavy in combatHow Mytheria makes big enemies feel heavy: mass from size, blows that bounce you back, no flinching, and a stagger you earn. Try the weight split yourself.
- MytheriaThe game these nine weapons are from: a pixel-art co-op adventure for one to four players.
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.