Dev Update #6 – How to Balance a Game – Part 1

This is part 1 of my take on game balancing. This post will deal with the what and how of game balancing. In part 2 I will give an real life example, and run through some numbers, formulas and tables for my current game project.

Girl in front of her computer is devastated, because her favourite character class in the game she plays has been nerfed again.

Balancing means adjusting all numbers and values in your game so that they work together well. Here is an example showing what this means and why it is so important:

The Overpowered Warrior
Think of a warrior, a type of game character that commonly has very high values in defense. In a fight with a monster he can take a lot of hits without dying. But on the downside the warrior can only do very little damage, compared to a wizard for example. Essentially, a warrior needs his high defenses to stay alive longer – because he needs longer to kill an enemy. This is in essence how a basic warrior class is balanced.

Without this trade-off between damage and defense the character would become unbalanced. If a warrior had high defenses and high damage output, he’d be overpowered and players wouldn’t play any other class anymore. If he had low defenses in addition to his low damage, they would play any class but the warrior. You want to avoid either scenario.

Balancing on Paper vs. Balancing by Playing
Finding the right numbers for armor, damage, item prices and monster difficulty is not as straight-forward as one would initially think. Most games have more than two values that influence each other. This is what makes Game Balancing a topic all on its own.A scale with not two, but four plates hanging at a perfect balance.

Balancing is important for basically any game genre, from shooters to tycoon games. Does building get too expensive later in the game? Will the upgraded weapons make too much damage and make fights too easy? Does it pay off more for the player if he didn’t level up and kept the monster levels down?

There are two ways these questions can be answered: By playing the game – or by looking at spreadsheets.

Balancing by Playing
Balancing can be done simply by playing the game and adjusting the numbers until it feels right. But there are some downsides to using that as the only approach to balancing.

First of all make sure you are not under the illusion that balancing will somehow work itself out automatically as you go along. Simply playing a game every now and then won’t cut it. You will need to play the game a lot. A whole lot. And then again every single time you adjusted your numbers. You will need to schedule time for this into your development plan. And this is where the first problems arise.

The game needs to be playable first
Since you need to be able to play the game to do this type of balancing, all of the important game features need to implemented first. This means you have to be pretty far in development before you can even begin to start adjusting your numbers.

But the downside of waiting with the balancing until the end of the implementation is that it has a high risk of being skipped or not given enough attention. Time becomes a hot commodity near the end of production, when all efforts are spend on polishing, bug fixing and ramping up marketing. So it a good idea to start a early as possible with balancing.

You need to notice a problem before you can fix it
If a game is balanced only by playing it, you rely on perception to notice unbalanced sections of your game. In other words – you need to notice a problem before you can fix it. But almost every game can be played in several ways, with different strategies. A player with a different play style than your own might find your game terribly unbalanced, even when the numbers work great for yourself.

A blindfolded woman - Justicia - holding up scales. The blindfold is a symbol of equal justice for everybody.

Great for Justice – But not for Game Balancing

If you are the only one playing your game for balancing, you run the risk of adjusting the game to your personal play style, while being blind to issues others might encounter. So you need to seek strength in numbers. To balance by playing, you need beta testing more than ever to get your game in the hands of as many players as possible and hope for valuable feedback.
And even then it is easy to miss things.

The Late Game is hard to reach
Not every game has a late game, so this paragraph only applies to those that do. Late game is called late for a reason. It should take some serious play time to get there. And since it takes so long to get to the late game, you will not reach it by accident. During development games are usually only played for a few minutes at a time, to test out a feature or fix a bug.  You don’t play for hours on end to get to the final level to fix a bug in the boss fight. You will directly jump there using some kind of debug or cheat feature.

This is fine for development, but to truly balance your game, you will need to reach the boss battle through regular play. And then, when you realize the boss is horribly overpowered and you quickly lower the prices for better weapons and armor – you will need to start all the way from the beginning again – and play your game through with the new numbers. In short, the amount of time you need can quickly get out of hand. You run a serious risk of an unbalanced late game if you rely on this method of balancing alone.

Balancing on Paper
The other method of balancing a game is to use mathematics. I call it paper balancing – though of course instead of paper I am using spreadsheet software like Excel and Google Docs.

Using this method you work with your numbers directly and put them into tables and graphs to see whether they all work out. This can give you a tremendous amount of information about your game that you would never find out otherwise.

Various graphs, overlayed over one another, symbolizing that there is a LOT of data to evaluate to achieve balancing.

One of the strengths of paper balancing is that it is very easy to see the results and consequences of any changes your make to your values. In case you are easily scared off by math, you will be happy to hear that it requires very little actual math skills.
To demonstrate how paper balancing works I will give an example.

Paper Balancing – a simple example game
In this example I am developing a simplified hack’n’slash game. The player needs to kill monsters to  earn XP to level up. Now let’s do the basic balancing.

The first step is to find some starting numbers. I decided the player needs 100 XP to get the first level up, and each monster will give 5 XP. That means the player has to kill 20 monsters to get the first level, which sounds fair. But these starting numbers are not all that important, the real balancing starts now.

To make each level a bit more difficult, the XP needed to get to the next level should constantly go up. I am choosing that each level will require 35% more XP than the last.

Now I need to make the higher level monsters worth more XP – otherwise the players will just keep killing the low level monsters. Again I pick a random number and decide that each monster will give 10% more XP per level. This number has to be lower than the 35% more XP needed for leveling up. If it grew at the same rate, players would need to kill exactly the same amount of monsters to level up each time.

A goblin stands next to a sign post that lists his statistics. It reads: "Goblin. Level 1. Reward 5 XP, Time to Kill: 2 minutes"

Now that I have these two numbers, I can put them in a table and see if they work out. The spreadsheet immediately tells me that I need 135 XP to get to the second level. Since each monster on that level gives me 6 XP, I need to kill 25 monsters to level up. That’s 5 monsters more than I needed for the first level. Everything sounds pretty good so far, right?

But then I notice the rather large numbers near the bottom of my table. To get from level 29 to level 30, the player needs 446,011 XP. At this level, each monster will give 72 XP. My spreadsheet automatically calculates that this translates to 6,186 monsters that I need to kill. It also calculates how long this would take. The result is horrible.

If I killed a monster every two minutes while playing, and I would play for 8 uninterrupted hours a day, without stopping for food or going to the bathroom – it would still take me 26 days of playing without a break to get that level up. A more realistic player who can play maybe 8 hours a week would need to spend 4-5 months to get just this one level up. I have nothing against a little grinding, but that is just not acceptable.

And this is where the paper balancing really shines. Let me tweak the number of how much more XP is required for each level. I am tuning it down from 35% to 25%. Immediately the numbers adjust. Now I only need to kill 717 monsters to get from level 29 to level 30. This would mean 24 hours of game time, or 3 days of 8 hour power-gaming sessions.

Those numbers sound a lot more sensible now! And I found this out within 5 minutes of working with a spreadsheet. Can you imagine how long it would have taken me to balance this only by playing the game?
Isn’t math cool? 🙂

[To those actually double checking these numbers with a calculator right now: All numbers are rounded up. Since you cannot earn 3.5 XP, you will get 4 XP instead and so on.]

I shared the spreadsheet with this sample data on Google Docs, so you can take a look at how a balancing table can look like. You can also copy the document and play with the number to see what happens.
Here is the link: Balancing Table Example on Google Docs

The complexity goes up!
Just in case you are not yet convinced of the power of paper balancing, let me drive the point home some more. See, a real game is a little more complex than the example above.

In my hack’n’slash game, the player gets more XP when killing a higher level monster. But what is to stop low-level players from killing higher level monsters? Clearly, they need to be harder to kill. So their health needs to go up with each level.

But if their health goes up, it would take longer to kill them. To counter this, higher level characters need better weapons to do more damage in the same amount of time. So I need to make higher level weapons with higher damage.

Then, to stop low level players from buying high level weapons I need to make them more expensive. But to enable higher level players to buy those weapons, I also need to make higher level monsters drop more gold.

Question 1: At what rate do you need to increase the rate of gold drop for each monster level, so that a player can afford a new weapon each level before he has gained enough XP from the same monsters to level up?

Question 2: Do you really want to balance this by playing? Or does paper balancing sound pretty nifty right around now?

Not a perfect system
While they sound boring, spreadsheets will show you problems in your game that you would never see otherwise. It is not a perfect system, but it is definitely a more objective system than just playing and fixing the issues that happen to bother you. It is also a great tool to balance parts of your game that are hard to get to through playing, especially the late game.

But not all parts of a game can be balanced on paper. Action elements that require reflexes and timing – such as quick time events for example – are better balanced by trial and error during play. The same is true if you are making Flappy Bird. 🙂

Graphs and tables also can not tell you every strategy and exploit that your players will undoubtedly find when playing your game. This is why many online games need to readjust their balancing so often, as massive hordes of players develop new play styles and combos.

Best of Both Worlds
Summing up, balancing a game purely by playing it is a poor choice.
This isn’t necessarily true for all types of games, but enough to let it count as a general rule of thumb. 
This is not to say that you shouldn’t play your game. You should. A lot. It might be off-topic, but I cannot stress this point enough: Play your own game.

But as usual, the best approach is to use both methods of balancing. Have your spreadsheets and formulas ready, and then actually put those numbers to the test by playing the game, tweaking and adjusting as you go along. And if you run short on time near the end of development, you can rest assured that your spreadsheets have your late game covered.

One thought on “Dev Update #6 – How to Balance a Game – Part 1

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.