Sunday, February 21, 2010

How to Set Up Balance

So as you all know, the Undeadables is in development as a Warcraft 3 map.
Hewie sleeps over once a week, and we just make progress, watch movies, stuff our faces, and then as I wake up earlier than him in the morning I sneak out making him feel like a cheap whore.
Err... for the last reference I'd recommend seeing Up In The Air.

Also, a classmate at the AIE kind of pointed out an issue with game design blogs (or more, a personal reason for why he doesn't blog) - and that's because of people possibly stealing ideas.
I made my blog for educational reasons - both for myself and others. I like to clarify my thought by writing it all down, and I hope people read it so they can maybe refine the way they think about games - or, in some cases, they can flat out disagree and perhaps change mine.
That said, projects such as The Undeadables, and any other full game concepts I post here are my intellectual property (and any others who I am working with), and pretty much don't steal them.
Not saying they're good enough to be stolen, but in a world where they're selling L4D expansions as totally new games - I'm just being careful.

Introduction
This blog post is about starting your game, and setting it up to be balanced.
This is something you need to get right from the start. Prepare for it before you start making the first prototype. If you don't set it up properly at the start, you're going to regret it - especially if you don't apply any other methods of balance, or test it extensively.

Test your changes throughly with reference to balance. For every change you make to a player's stats and such, don't just boot up the game and see if it updated properly... makes tests to see how many enemies you can take on at once (for example), in comparison to what you'd like the player to be able to do.
Not testing as you go creates not only potential for massive code errors, but potential for terrible balance problems.

I follow this process when creating a game idea, when thinking of balance.

7 Steps to Ensuring Balance
  1. Create expectations for all basic variables that will affect play, and evaluate how they will affect balance.
  2. Apply any simple balance strategies that will be used.
  3. Develop expectations for a battle between two or three basic units.
  4. Test the match ups.
  5. Alter until expected results are reached.
  6. Repeat step 3-5 for all other units, with reference to step 1-2.
  7. Test over and over and over whenever changes are made.
Now I'll go over each step.

Step 1 - Create expectations for all basic variables that will affect play, and evaluate how they will affect balance.
#1 is extremely important, but very few people even think of it. Most people jump right into "Okay how many backstabs should it take to kill a Mage?" without thinking of variables that will make these numbers vary a lot.

You should consider such variables as:

1. Game Time - The average time total in an instance of the game (such as a 'round' or a 'game'), as well as the rate at which players progress through the game is extremely important when it comes to balance.
For example, A character who slowly amasses massive amounts of power throughout a game will love a full 80 minute game as it suits his play style, while a character who totally dominates early in the game would love a game style that can be beaten within 10-20 minutes.
The game time in a single instance of play greatly affects balance depending on PCU's rate of power gain throughout the curve, so Game Time should be clearly defined.
That said, game time should be clearly defined anyway - as let's face it, most players can't play a 3 hour game, and others won't get much satisfaction from a 1 minute skirmish.
For the most part, most team based player vs. player games are focused around 40 minute times, often split into halves and quarters. For individual versus individual games, the time may be anywhere from 5-10 minutes.
That said, it depends on the game, and its gameplay. An RTS will always be slower than a fighting game, and an RPG will hopefully be even slower than that.

Pick a game similar to yours, and shoot for that game time.
Also, as a little pointer, if you're having trouble finding find the best game time for your game, shorter is better than longer for the majority of players.

2. Number of Players - the number of players in an instance of a game is important. Thankfully, most people will immediately define this, unlike average game time. Like game time, number of players definitely affects game balance.
If the game is based around teams of 2, and one character has the ability to disable another for a long period of time, that player will have a lot of power as he can reduce the power of a team by half, and potentially make combinations of that team's abilities impossible to pull of. Rather, if he was in a game where teams were of hundreds of units, being able to disable one is fairly pointless.
Similarly, Area of Effect abilities become more useful than single target abilities when teams get larger. Common sense.

Pretty much, make sure you know how many players will be playing, and how it will affect your game.

3. Player Skills - How much skill can a player apply to your game? And what skills in particular? Will your players have to out-aim each other, or will other skills be called into play?
If you haven't read my article about Skill Ceilings and Floors, I recommend you do so.
Remember how your effectiveness at your skill ceiling is equal to your absolute potential?
If a unit can reach their absolute potential, and it is far more effective than other units at this potential or skill level - you have an imbalance.
This one can be difficult to test, as you don't know how players will play until you have them playing and developing skills. Still, applying logical reason will at least lower the chances of massive imbalance if players formulate unexpected play styles.

First off, know your genre and how it's played - if you're making an FPS, know that there are Quake players out there who will hit players in the air with rockets from half the map away, and there'll be Counter Strike Snipers who can hit a head with less then half a second exposure.
Research other games and skill levels of players who at the top of these games.

Another concept to understand is... simple inbuilt restrictions. Cooldowns on abilities means they can't be spammed as fast as a user clicks a button. Move speed limits means a player can't zip around the map as fast as they can hammer the WASD buttons.
I feel like I'm babying you all, but - well, if you introduce simple time limitations on each action that require it, you're not going to have strange bugs and combinations of actions that can result in imbalanced movements and attack strategies.

The last point relates largely to the first two - know your engine. If you're creating your own engine, your software designers are going to have to understand the game and what is and is not allowed. You need to communicate properly.
Make sure they are knowledgeable of similar games and bugs/exploits/etc. that were in those. You may want to make a list of possible problems, and you will need good communication to ensure no bugs pop up.

If you're using another engine, play the games that have been made on it- and test bugs yourself. If one has a large following, especially a competitive scene - ask them about any bugs that are due to technicalities in the game (they may call them 'Advanced Techniques').

4. Game Area
The playable area in game also affects balance. This is quite obvious - someone who can maneuver faster will be able to run rings around slower opponents in enclosed areas, while Area of Effect attacks are extremely effective in enclosed spaces.
To limit the effects of game area on your game, you can try to make neutral areas that don't particularly favour any character - this is best for games where a stage advantage will imbalance match ups and can't be compensated for with intelligent play or team strategy (such as fighting games, in which stage balance is required as it's 1v1 and games are often very close and skill based).

There are many other variables that you must consider - and they will definitely change for individual games.
Find these variables then define them and their impact on your game's balance.

Step 2 - Apply any simple balance strategies that will be used.
Balance strategies are theoretical approaches to game balance that don't necessarily rely on number crunching to balance.

1. Role-based Balance
Role-based balance is a widely used balancing strategy - or, at least, it should be.
The approach involves looking at your PCUs, and giving them very specific and different roles within a team - while ensuring that the more rounded PCUs do not encroach too heavily on these roles.
If done correctly, you have a range of units who are not only exceptionally different and appeal to different players, but you ensure that no PCU is considered useless the entire role is considered redundant (in which case you have quite an issue and you may need to refocus your unit).

2. Strength/Weakness-based Balance.
Strength/Weakness-based Balance is where you give every PCU a main area of strength, and an easily exploitable weakness. The weakness is the key balancing point here. With the weakness, the PCU can be outplayed and exploited by hopefully any other PCU, whose own weaknesses can be played on. Similarly, with the different weaknesses come different strengths - and so players strive to battle in their element. The winner is ultimately the player who exploits the other's weaknesses and plays on their own strengths best - or, if both players evaluate the situation properly (and so don't enter situations where they will be weaker), it is defined by other skills.

The only issue is that often encounters will thus be based on luck, and running into someone who's in the wrong place at the wrong time. To counter this, map/game awareness should be highlighted as an important skill to players - and all PCUs should have the opportunity to act on awareness and turn ambushes around.

3. Counter-based Balance
Counter-based balance basically says "If every PCU has a reliable way of countering a strategy, unit or move, less attention needs to be focussed on balancing individual moves, units and strategies."
This is true to a point - but, well, you obviously can't smack an easy-to-use OHKO on a single PCU and tell everyone to "just dodge it" (much to the contrary of what many gamers think). Similarly, this strategy has the limitation of not being usable for all games
The idea is that if counters are readily available, and every player and PCU has access to them - there are no situations in which a player will be totally overpowered by another equally skilled player unless there are ridiculous mistakes (a character starts with 10% of the HP of other characters) or bugs in the game.
A good example is in Guilty Gear XX - where characters have the ability to do such things as
  • Make their upper hitboxes invulnerable
  • Emit a force that pushes enemies away.
  • Do an immediate counter attack from block.
But that's not all, they can also use "Burst" which lets them totally break out of a combo if they are locked - counterattacking their opponent to break the combo.

Now here's the kicker - all characters have access to these moves. This means they have an array of defensive moves that effectively break them out of any situation, so, they always have a way of countering their opponent's actions.

Though, just so you don't read the above features of Guilty Gear and think people are unkillable turtles because they have too many defensive options, rest assured - every action above takes up 'Super' - meaning that you can't use them too many times unless you regenerate super by playing effectively.
The Burst actually uses up the Player's burst power, which regenerates slowly such that you will likely only get one burst per round. Also, if you fail to hit with a burst (which are fairly easy to block and punish), you lose all of your burst power, meaning you no longer have such a strong counter measure.
Pretty much, the game isn't too defensive - but every player has a lot of defence options to counter all imbalanced situations. This means you can have a larger variety of characters with a large variety of moves - with the potential for imbalance being far less than other games with a similarly varied roster.

Enough about Guilty Gear, anyway, I might make an entire separate post for it if I really feel like I need to give some praise for excellent balance strategy.

Step 3 - Develop expectations for a battle between two or three basic units.
Okay, so by now you're expected to know what variables will affect your game's balance, and you know what kinds of balancing techniques you can apply to your game (I also recommend you use one or create your own - think of what your game requires and what has been used in the genre.) - now you must highlight some basic combat situations and the outcomes of these situations.
Consider a couple of the units you wish to make, and say "X should be able to beat Y at close range, but should lose at close range" - or "X should be effective when pursuing this objective, but should be less effective when carrying out this task".
Do this with the most basic units - ones who are generally effective in most combat situations (for example a Sniper is not a good unit to start with because he sucks at close and moderate range combat, he is too much of a specialist).

A good idea is to use hit-counting and timing to describe exactly what you want to happen. This is not necessary, but useful of course.
If you want Unit X to kill Unit

Then you create these units in your prototype.

Step 4 - Test the match ups.
So you have your prototype and your units - you have your expectations for these units... let's get testing!
make
Play out several scenarios with the units and expectations in mind, and repeat them with slightly different positions etc. and make sure you're happy with the results - especially with regards to timing and hits.
If you're not, simply look at the values turning up, and see what can be tuned to make the match ups meet expectations.

As many scenarios as possible should be tested - but certain scenarios are well favoured over others.
You want to focus on common occurrences in the game - such as:
'Unit A counters Unit B. Unit B however has a slight level advantage over Unit A, and has ambushed the unit in favourable terrain at mid range - Unit B should win, but should sustain moderate damage (60% or so)'
This situation will arise.

However, there are obviously situations that are so unlikely that they aren't worth testing.
'Unit A counters Unit B, but has been afk for the whole game and so is still Level 1. Unit B is level 10 but ambushes Unit A in very unfavorable terrain at extremely long range. Unit B should still win without much problem.'

I think what I'm trying to say is, be thorough - but don't waste your time.

Really this is all just about controlled repetitions under different pretenses and tweaking the balance until it works well.
Repetition, repetition, repetition.

Step 5 - Alter until expected results are reached.
Ah I think I went over this in Step 4 with tweaking.
But, make sure you tweak intelligently. Make small changes, and make sure you clearly identify Variable Scope.
If you do this while tweaking, you should be fine. Save regularly, document and analyse any possible issues, test rigorously.
You know, all the good stuff.

Step 6 - Repeat step 3-5 for all other units, with reference to step 1-2.
Pretty much what we've covered so far - but more testing.
When you create a new unit - you need to know how the variables of the game will affect it (step 1), and if you have a balancing strategy in mind, you want to know how it will fit into that strategy (step 2), you want to know how it will interact with every other unit under different situations (step 3), you need to create and test these match-ups (step 4), then you need to make any alterations (step 5).
As said, we've covered it so far.

One little additional point I will make however is that as you create more units, the number of things you have to test increases and increases.
Think of it this way in a shooting game with 2 units you need to test perhaps 3 main situations - long range, medium range, close range.
Then you might want to test these in 3 areas, open area, moderately spaced area, enclosed area. That's 9 tests.
Let's add Unit 3 - you need to test him with 1 and 2 in each of these, so that's 18.
Perhaps units can be on teams, how will 2 unit 3s match up with a unit 1 and a unit 2.
What if unit 3 can choose between 2 weapons? What now?

As you add more and more, and there are more and more variables - the number of situations you need to test is astounding.
This is where balancing strategies come in.

The reason I recommend using balancing strategies is because they reduce necessary testing a bit - or, at the very least, aid it greatly.
This sounds awesome. But... well, let me be very clear.
You still need to test.
You still need to balance.
You still need to analyse.

I know some game designers that have taken a very devil may care attitude towards balance and testing because they think a balancing strategy will do all the heavy lifting for them.
"Hey, it's okay, we can do X because character Y still has a weakness to Z!"
No.
You're not allowed to arrive at that conclusion, unless you've done a lot of testing and analysis to come to it.
Don't get lazy.
Even with balancing strategies, I still test everything rigorously. Why? So I don't overlook an obvious problem and have to eat my words later.

Step 7 - Test over and over and over whenever changes are made.
This point has likely been sufficiently covered as well.
If I want you to go away with any knowledge after reading this blog post, it's constant testing is key to balance.

Conclusion:
This blog post was actually written over 2 weeks and had many paragraphs added and deleted over the period of writing, so frankly I'm just hoping it ties together nicely - but here's what I want you to go away with.

  • Follow the 7 step process. If you follow it properly, and can follow the steps in reference to your game design - you won't miss a thing. Just know your game type, what variables will affect your balance, and possible balance strategies than can be applied and you'll be fine.
  • Testing is key to balance.
  • While balance strategies ease up on testing thousands of situations, don't even think of being lazy with it. You still need a lot of testing.
  • If you're designing, do a lot of testing. If you're a programmer, get your designer to test. Designers often know what should and shouldn't happen, and how long it should take - or at least have a good idea of this.
  • Setting up balance takes a lot of time, and must happen from the first prototype and units made, right through to the end. If you start too late, you'll likely need to totally remake some systems that would have been visibly problematic from the start. If you consider balance until the end, you'll likely have to backtrack changes.
  • A monkey who understands balance scope and tweaking, testing a game for an infinite amount of time will eventually create a perfectly balanced game. Basically - don't give up. Keep testing, and thinking, and you'll get there with some hard work and ingenuity.

Anyway, thanks guys. I'd like to go in-depth for some balancing strategies.
Here's my to-do list for the moment:
  • Pacing
  • Single Player vs. Multiplayer Balance Concerns
  • Balancing Strategies in Depth
  • Canon vs. Gameplay
  • Untitled Puzzle-Horror game idea.
  • Untitled Puzzle-Adventure game idea.
I'll keep you all posted.


No comments:

Post a Comment