Balancing of a strategy game (RTS)

Hello everybody,
i wonder how strategy games are balanced and designed in respect of their units, weapons etc.
There are so many different things that need to be considered, like speed of units, price, speed of attack, inflicted damage, special abilities etc…
Is there a general guideline how one should approach this without getting lost in the jungle?

For example, we plan to have tree races, A, B and C. A and B as well as B and C always form an alliance.
There should be things like paralizing damage and poison damage, which would make all that even more difficult.
At the end, we want to have an balanced game where no fraction has an general advantage but serve some unique advantage that helpd the ally-counterpart to win the game (eg. A does complement B so together they may have an advantage over the other ally fraction).

One way to do this is a weighted system where each statistic has a certain weight and you spend the same total points designing each team.
perhaps each starting clan would have 10 points spent and each point could be 5 average damage, 2 armor, +1 class poison, or etc.
The same system can be applied to unit cost according to the influx of currency.

The same solution applies to magic items in rpgs.

Build a spreadsheet with all the variables, then build a weighted formula to calculate their value. The formula will change over time but will give you a nice start.

For example,

move 2 per point
armor 3 per point
shields 2 per point
short range 5 points
medium range = 10 points
long range 15 points
Health 0.5 per hit point
fire rate 6 per second

in your spread sheet you can see an approximate balance.

The only way to really get this right is play-testing it with a few thousand people - otherwise there’s always a chance that you miss the strategy which dominates all others.

Thank you for the input given so far!

I would agree that the only way to find balance issues is to play A LOT. Get some other people in to test for you as well as they might see things from another perspective.

Tweak and test. Rinse and repeat.

// Json

If you miss something like that it’s not a reason to throw your system overboard - simply adapt the intrinsic values to accommodate this. But most of the time it’s due to a ‘killer combination’ for which there are even simple solutions.

+1

Beni is you plan to do Real Time Strategy, then movement speed changes the game around heeps, you cant balance strength/damage with movement speed without testing. As well as bullet movement speeds, will change the game balancing alot.

One thing to consider is to have a “base” version of everything (damage,movement, hp). Then make stats related to the base depending on the units level.

Then assign values to those aspects as well and factor them in. If your model doesn’t work because of outside influences simply expand your model to include them.

You can pull some core gameplay values from a server at the start of the game to allow simple post-launch tweaking. Halo does this IIRC, things like weapon damage, range, movement speed etc. are all retrieved before the start of every online match so that they could fine tune things after launch without having to patch.

You can also gather telemetry like heatmaps which can show up bottlenecks and other problems with map design, for a rts it might make sense to gather stats on number of kills each unit type inflicts (both as a whole and against other unit types). That should help you see if any units are particularly underpowered or overpowered.

You can do both of these either during development as you and friends play the game, or after release when other people are playing (who are probably better at finding holes in your game balance). If your AI is good you can even just make it play itself and gather stats from that (or you might just find that your AI is bad at certain maps or certain units, which is still useful).

Something else you might consider would be creating a list of army-specific abilities. For instance, does a 10% chance of taking no damage at all equal a 10% reduction to all damage taken? What about a modifier in an object’s “attack” that causes its target to react 10% slower? All these achieve the same effect over all, but the play style changes dramatically.

Depending on a game, a 10% dodge chance is a 10% chance to not die in a single hit. A 10% resistance to everything means effectively that a health total is 10% greater than what it really shows. While relative to a player’s perspective, an opponent that reacts 10% slower might mean that the player’s unit stills dies in a single hit, and thus, a unit that causes a slower reaction usually serves much better as support for something that survives better through other means.

Combining a comparatively long distance attack range with a slow modifier and an escape ability can totally change a situation.

If you take rock paper scissors and apply those types of techniques you’ll end up with with either 3 scissors or 3 papers or 3 rocks or 3 rock paper scissors for every side. That isn’t balancing imo. Choke points have strategic value they add to the game - they don’t bring it down. If your looking to make a real time tactics game then I suppose it makes more sense… The paper paper paper game becomes a nice http://en.wikipedia.org/wiki/Three_way_duel_(puzzle) depending on how well you wield the paper - mind you there is little sense in adding different races as they just end up being the same thing but just look different.

Offcourse I suppose you could take the determining factor outside combat - kinda ala warcraft 3 where races are mostly different not so much because of thier unique abilities but on the resources they need to build their army Undeath leans heavily on gold night elf on wood. depending on who your fighting against it is of more or less value to attack or hold that goldmine.

That all doesn’t mean those stats are useless, I just wouldn’t take them as your primary form of measurement. Or you will have the serious risk of ending up with just another generic RTS.

//edit

[quote]A 10% resistance to everything means effectively that a health total is 10% greater than what it really shows.
[/quote]
I don’t think that’s true.
100 - 910 = 10
110 - 10
10 = 10

now try taking another hit :stuck_out_tongue:

I got the point you where trying to make though :slight_smile:

well said mr_light.

While balance is quite important, game play is more interesting. Probably the two best rts games I’ve ever played are


And dungeon Keeper.

Why? they hare very different types of choices to make. You are better focused on doing some cool new things first then tweak the balance.

For example, suicide bombers that chicken out unless one of their own team dies with them.

Hi, thanks for the long, enlighting post, Mr. Light!

My biggest problem currently is, how to do the first step. How to start?
We have a game design that describes the three races and how they should play differently. Now the step must been taken, that this proposed gameplay should be realized. It is clear to me, that this needs much iteration, and thats fine. But how to do the very first step?

After what i learned in the previous posts, my idea is to firstly define some basic combat rules (like “A”-Units are especially good at shooting "B"s). This basic rules must derive from the game spec, like race “R” should be played with many cheap units, while “RX” is a high technology race that should use finesse (special abilitys) instead of pure force (like some mind twisting magic that turns Rs units into believing they are rabbits or such a thing).
This would imply, that Rs units are weak and cheap but RXs are strong but expensive.
The problem is not to define those rules, but to pour that into real values to start with…

Obviously you can’t just apply changes blindly, you’ve got to think about how the stats reflect your game design. In the same way that trying to optimise without profiling is hard, trying to balance the gameplay without stats and feedback is trickier than it should be. In the chaos of battle it’s much easier to look at Before vs. After stats rather than try and make out who’s actually killing who on the field.

Similarly with choke points. If you design a map to have choke points at certain points then a heatmap will tell you whether you got it right or not. Maybe you’ll find that your map is skewed and one choke point is never used while the other gets all the action. Or you might find that a few stray trees have made the actual choke point slightly too far forwards/backwards to where you wanted it.

yeah Orangy Tang, I was ranting a bit. Sorry :-*

[quote]you’ve got to think about how the stats reflect your game design.
[/quote]
Which means you don’t take those stats as a starting point, which was what this discussion was starting to lean against and which I wanted to steer away from.

Your game will never be balanced. If you can prove it is, the game isn’t complex enough to be very interesting.

To get as close as you can, you can use design tools like charts or stat costs to make good guesses, but “proof” only comes out of exhaustive play testing. Log everything your players do, and have the ability to break down the data in a lot of different ways.

Being totally free of bias in making balance decisions is difficult. Don’t lock yourself into any system of thinking. If something sucks or is overpowered, have the emotional discipline to take a step back and admit it and make necessary changes.

Either master your own game, or keep a hawk’s eye on everything the players who master it do.

Be prepared to constantly update your game, even after release.

And lastly, and most importantly: be prepared to disagree with everyone.

So, just for the record;
This weekend we sat together and talked about principles and what our three races should play like and in which situations combat will mostly occur. After defining those basic things in detail, we tried to create some basic units that reflect the gameplay. Also the goal was that every race has some possibility to overcome the other two races.

Now currently we have very few but very diversified units with huge pros and cons that should basicly balance each other.
The next step is now to implement that units and do play testing to iterate over the units attributes and to balance even further.
since we only have a basic set of units, we will most likely discover that we should invent additional ones to make the game more interesting.
This should, however, grow as we proceed.

I think this sounds like a plan, what do you think?

(Again, thanks to all your input, it helped me alot to clarify my mind)

Your plan sounds great.

Keep in mind, ideas during the 0th design iteration (preproduction) suck compared to the ones you’ll have after a month of playing your game.

I think a good idea is to start small then build on it.

As in, start with a game where there is only one type of unit, they only have attack and health. When you’ve got that balanced (which should be pretty easy, considering there’s only one unit), add another unit or another stat. When that’s balanced, add something else. It will take exponentially longer to test each new step, but this might be a good jumping-off point because then at least you’ll know you have a solid foundation.