The Damage Is Too Damn High or Achieving the Perfect Balance

Arthur Mostovoy
10 min readOct 20, 2016

--

War Robots sketch (DPS = damage per second, DPA = damage per attack, AI = attack interval, tDPS = true DPS, DPC = damage per clip, UT = unload time, RT = reload time)

Let me start by saying something obvious — nothing is perfect. With that in mind, what do I call a perfect balance? I would say that a perfectly balanced system basically rests on two things: approximation and equality. Before we proceed to a practical example, let us define these terms first.

Approximation

In the scope of this article, approximation is a process of simplifying complex things to be able to represent them as numbers in an equation. We will face a few specific problems that we will try to solve but in real life there’s no limit to what a game designer’s mind out there can come up with when inventing new features and mechanics. However, the general approach we’ll be using can be applied to just about anything.

When trying to wrap one’s head around multiple purely game concepts at once it might look tough — like, how do you possibly calculate, say, power of a giant cosmic snail that howls like a hyena, regenerates like Wolverine and repeatedly shoots explosive green paladins every once in a while? What you need to do is take yourself away from concrete entities (however strange they might be) and start thinking using abstract concepts that can be decomposed and fit into an equation.

Equality

When we say balanced, what exactly do we mean? Different concepts are usually called balanced if they are equal in one way or another. Equality is critical for an online game. If a singleplayer game balance is imperfect, it’s often not a deal breaker. It’s pretty customary that in such games there are things that matter more — characters, plot, gameplay and such. If one or a few elements are a little out of the ordinary, they can be ignored (or, well, abused) but the game will eventually end, not letting this annoyance bother the player too much. What’s even more important, there’s little to no competition in singleplayer games. Even if you found a weapon that’s a little stronger than the others, what of it?

On the contrary, in multiplayer games players compete with each other and fight for places in leaderboards, they hone their skills for hours every day and expect to fight in fair conditions. If something gives players an unfair advantage in combat, it will quickly be taken note of and used more frequently, becoming the new meta (current best strategy). This will eventually lead to more and more people just using this one item slightly more powerful than the others to be more effective. Why try different things if this one works better? This item will be robbing your game of complexity and variety.

Let’s imagine that we have created an online PvP game and we now need some weapons that players will use in battles. We want to make 3 weapons and our goal is to make each of them different from each other to provide interesting gameplay. Aside from setting these weapons apart using some basic stats we will also implement unique mechanics. How do we make these weapons equal? To achieve something like that we would need a one universal metric that would describe each of the weapons with just 1 concrete number by factoring in all of their conceivable differences. Since it’s weapons we’re talking about and weapons traditionally deal damage, let’s call this metric eDPS (effective damage per second) — it would describe not just each of our weapons damage per second but that with all the weapon features factored in.

Magic

When you design a game, the numbers you pick depend on a lot of things — the lore, the dynamics, the subjective perception and more. For the purpose of demonstration it won’t really matter what kind of numbers we will use in the article. So let’s just say from the top of our head that weapon 1 does 1000 damage every second, weapon 2 does 500 damage every 0.5 seconds and weapon 3 does 250 damage every 0.3 seconds. What is the damage per second (DPS) of every weapon?

Weapon DPS = damage per attack / attack interval

Weapon 1: 1000 damage / 1 second = 1,000 DPS

Weapon 2: 500 damage / 0.5 seconds = 1,000 DPS

Weapon 3: 250 damage / 0.3 seconds = 833.3 DPS

Note that right now the DPS of our weapons equals their eDPS because we don’t have any special mechanics or modifiers influencing eDPS yet.

As we can see, while weapons 1 and 2 have the same eDPS, weapon 3 is about 20% weaker. To balance it with the other two we can either nerf (weaken) weapons 1 and 2 or buff (strengthen) weapon 3. We will go with the second path in this example since it requires less changes (imagine the choice would be balancing 49 weapons against 1 or 1 against 49 — although exceptional cases may exist) and the eDPS number of weapons 1 and 2 is easier to conceive since it’s a round number.

We can increase weapon 3 DPS either by reducing its attack interval or by increasing its damage. Since weapons damage is currently in a clean proportion (2 to 1) we will go with the former option to keep it.

Weapon attack interval = damage / DPS

Weapon 3 new attack interval = 250 damage / 1,000 DPS = 0.25 seconds

There we go. Now all the weapons have the same DPS and eDPS. That doesn’t mean the weapons itself are the same though since clearly weapon 1 is more preferable for doing strong controlled bursts with longer recharge time while weapon 3 is fit for weaker sustained attacks since it deals less damage yet more frequently. Weapon 2 is something in between.

Let’s add something more to make things interesting — an attack range. Weapon 1 now becomes a melee weapon with a range of 1m, weapon 2 is made a medium-range weapon with a range of 10m and weapon 3 transforms into a long-range weapon with a range of 25m. As we can see from these stats, the maximum distance that the fight can start at is now 25m. For approximation purposes, we can assume that the players using our weapons will move towards each other and start attacking as soon as they can (which seems pretty logical).

With that assumption in mind, we can get on to the actual numbers. Let’s see — weapon 3 is 100% effective at the distances up to 25m while weapon 2 is 100% effective at the distances up to 10m and 0% effective at the distances from 10m to 25m.

Weapon 2 eDPS visualization with range effectiveness

Weapon 2 effectiveness at the distance up to 25m = (10m / 25m) * 100% + (15m /25m) * 0% = 40%

This parameter can also be calculated for weapon 1 the same way:

Weapon 1 effectiveness at the distance up to 25m = (1m / 25m) * 100% + (24m / 25m) * 0% = 4%

Having impemented such new stat as weapon range we have made weapon 2 only 40% as effective and weapon 1 only 4% as effective in combat.

Weapon eDPS = DPS * range effectiveness

Weapon 1: 1,000 DPS * 4% = 40 eDPS

Weapon 2: 1,000 DPS * 40% = 400 eDPS

Weapon 3: 1,000 DPS * 100% = 1,000 eDPS

To make things balanced again we need to tweak a few parameters this time. Of course directly buffing weapon 1 by 2500% is an option too and would technically work but it is not ideal and here is why. A player wielding weapon 1 would decimate anything it would come in contact with in 1 hit. This generally is not desirable but there may be exceptions depending on the gameplay design. Also it’s usually more beneficial to spread balance changes across as many parameters as possible — the transition is smoother this way.

We will try a few things in combination to achieve 1000 eDPS across the board: increasing weapon 1 range, decreasing weapon 3 range and increasing weapon 1 & 2 damage. For simplicity and cleanliness purposes we won’t touch attack interval now, only the damage.

It doesn’t really matter what we change first, so let’s go with range which now becomes 2m for weapon 1 and 20m for weapon 3. I’ve picked these numbers for no specific reasons however I took into account that 2m still sounds real enough for a melee weapon and, although technically it’s a 100% buff, it’s only 1m in absolute values, and a weapon 3 20% nerf is a relatively small balance change.

Weapon 1 new effectiveness at the distance up to 20m = (2m / 20m) * 100% + (18m /20m) * 0% = 10%

Weapon 2 new effectiveness at the distance up to 20m = (10m / 20m) * 100% + (10m /20m) * 0% = 50%

Having changed the effectiveness, we now adjust the damage to achieve 1,000 eDPS on both weapons — weapon 1 now deals 10,000 damage and weapon 2 now deals 1,000 damage which amounts to 10,000 DPS and 2,000 DPS respectively.

Weapon 1 new eDPS = 10,000 DPS * 10% = 1,000 eDPS

Weapon 2 new eDPS = 2,000 DPS * 50% = 1,000 eDPS

Looks good. That was only a combination of basic DPS and attack range though. Let’s add some more juice to our weapons and say that weapon 1 now does additional AoE damage (30% of its original damage in a 2m radius around the point of impact), weapon 2 can crit (20% chance for x1.5 damage) and weapon 3 can sometimes miss (15% chance).

Weapon 3 is easy. With 15% miss chance we do 100% damage 85% of time and 0% damage 15% of time. On average that would be:

Weapon 3 attack modifier = 100% * 85% + 0% * 15% = 85%

Weapon 2 isn’t much harder. With 20% crit chance for x1.5 damage you do 100% damage 80% of time and 150% damage 20% of time.

Weapon 2 eDPS visualization with critical hit

Weapon 2 attack modifier = 100% * 80% + 150% * 20% = 110%

Weapon 1 is a little more tricky. Previously we were dealing with a straight line of fire in our calculations whereas now we have a weapon dealing area of effect damage that covers a round area (a 2m radius circle). However, for the approximation and simplicity purposes we can assume that we’re still estimating a 1v1 situation and drop the area damage outside the straight line and here’s why — in the scope of this article we don’t know exactly how many players are fighting, the speed of convergence and other parameters that might help us carry out a more precise and complex calculation.

Since both the AoE and the weapon range are 2m, the weapon straight effective range now becomes 4m with weapon 1 dealing 130% damage within its range of 2m and 30% damage at the distance from 2m to 4m. Knowing that, instead of calculating a new attack modifier we can just recalculate the range effectiveness.

Weapon 1 eDPS visualization with AoE

The formula will then look like this:

Weapon 3 new range effectiveness = (2m/20m) * 130% + (2m/20m) * 30% + (16m/20m) * 0% = 16%

Let’s see what we have across the board:

Weapon new eDPS = DPS * range effectiveness * attack modifier

Weapon 1: 10,000 DPS * 16% = 1,600 eDPS

Weapon 2: 2,000 DPS * 50% * 110% = 1,100 eDPS

Weapon 3: 1,000 DPS * 100% * 80% = 800 eDPS

Now the easy part. We tweak the DPS through damage again to have 1,000 eDPS on each weapon with all the modifiers factored in. Weapon 1 now deals 6,250 damage, weapon 2 deals 909 damage and weapon 3 deals 312,5 damage:

Weapon 1: 6,250 DPS * 16% = 1,000 eDPS

Weapon 2: 1,818 DPS * 50% * 110% = 1,000 eDPS

Weapon 3: 1,250 DPS * 80% = 1,000 eDPS

Final Thoughts

We can go on like this forever, adding more and more various parameters and mechanics but you should see the picture now. Pretty much anything can be approximated one way or another and factored into one universal parameter effectively describing the entity you’re working with (in our case, weapon potential in combat). However, it’s important to remember that when you throw in more and more elements with complex approximation into the equation, you also increase the variance of your calculation since you’re doing a lot of assumptions.

Although our approach has brought us this far and made this calculation possible at all, it cannot predict all the combat situations and effectively take into account certain gameplay elements that influence the outcome like level design, teamplaying impact, tactics and so on. That is why, aside from mathematics, there is another very useful tool that a game designer should use when balancing things. I’m talking about statistics.

After you deploy your content that you have balanced with calculations you should track all the necessary average and peak metrics of that content to see how it’s performing in the game (e.g. compare average damage done on different weapons, kill/death ratio depending on weapon equipped, weapon spawn rate etc.) and make further adjustments as needed. For instance, another way to approach the weapon AoE calculation problem could be gathering statistics on how many enemy players on average a player with weapon 1 manages to hit and factoring this in the equation.

Anyway, this should cover some of the basics behind the balancing part of game design and demonstrate how a game designer can approach problems that at a first glance might seem impossible to describe with numbers.

If you liked this story, you may find some of my other stories relevant:

How to balance your game using statistics

Content design in a nutshell

What it’s like to be a game designer

--

--

Arthur Mostovoy

Head of Studio @ Larian Studios, hard at work on Baldur’s Gate 3. Used to write notes on game development here. Say hi at twitter.com/a_mstv