Most RTS games I played have some kind of rock-paper-scissors system that ensure that there is no single best unit you can mass and win with all the time.

However this breaks down when players start to combine different kinds of units. Just make one unit type then make the counter of its counters to protect it. Eventually players will find the best pairing that mutually protect each other, then everyone will copy that and all other combinations become inferior to that and won't see play.

We can see this in Empire Earth 1 for example, where up to middle ages all you need to do is just mass chariot/cavalry archers and swordsmen. Although spearmen and knights wreck the swords, they are destroyed by arrows. And archers are destroyed by swords, but your swords are blocked by enemy swords so you'll have hard time reach enemy archers... So all you can do is just try to make more swords and archers than the enemy. You can also use area of effect siege weapons against archers, but they are expensive and totally wrecked by swords. So all players use just swords and archers against everything - including buildings. This what I would like to avoid and I would like to make sure other units also see play.

So the question is: How can I make sure that not just individual unit types but but all possible combinations of them have a counter combination that costs less resources than the opponent's army? Is there a mathematical framework for that?

  • 1
    \$\begingroup\$ It might be worth noting that not every unit needs a counter unit. Consider this: an EMP unit that totally wrecks your opponents Robot units, but does nothing else; they don't interact with non-Robot units or Buildings. Then you have a counter for Robot units: EMPs, and a counter for EMPs: not making Robots. \$\endgroup\$
    – Swimmer F
    Commented Mar 5, 2020 at 7:21

5 Answers 5


There is another way to get a balanced unit lineup than just to design units to counter other units. Design units to work better or worse in certain situations.

  • Units which use the terrain. Perhaps there is a unit which is weaker on open terrain but stronger in closed spaces? Or units which can move through terrain other units can't and thus attack from unexpected directions?
  • Units with utility features. Healers? Terrain changers? Buffers/Debuffers? Mind controllers? Transports?
  • Units with area-of-effect attacks which are weak against single targets but devastating against tightly packed groups (always a popular counter against the strategy of just overwhelming the enemy with superior numbers).
  • Units which synergize with each others, like a melee tank and a ranged damage dealer.
  • Units which are weak if left to themselves but have powerful abilities which need to be activated through micro-management.

The Starcraft games are great examples of RTS games which do that pretty well.

Another RTS game which is less well known but uses a design with lots of generalist units and very few overspecialized ones is Wargame: European Escalation. Its gameplay is more based on how you use your units, not on which units you use. A tank will easily beat an infantry squad on open terrain, but will get destroyed if the infantry has cover and gets close enough to use their RPGs and hand grenades. The game also makes very good use of stealth and fog-of-war. A unit can't fire back if it can't see the attacker, which makes scouting units very important.

Unfortunately all these features make the game far more complex than a simple rock-paper-scissors system. So a mathematical approach to balancing will usually fail. You have to do actual playtesting to figure out which units are over- or underpowered. And as your player community develops the game meta, you will have to release regular balance patches to make sure the game doesn't become too one-sided due to strategies your playtesters didn't think of.


In meantime one thing I'm thinking about is that a rock-paper-scissors (RPS) system can be split into two things: RPS damage and RPS armor. For example rock armor takes extra damage from paper, and reduced damage from scissors, unchanged damage to rock. Apply same logic to other types.

In a pure RPS system the unit that has rock damage must have rock armor and so on. But if we allow other damage types for each armor type, then 6 new unit types possible.

Each of these unit types have:

  • Exactly one hard counter: the one it inflicts reduced damage to and takes extra damage from.
  • Two soft counters: one it takes extra damage from and inflicts neutral damage to, or one it inflicts reduced damage to and takes neutral damage from.
  • And three neutrals: ones it mutually inflict the same damage to each other.

For example: Consider a paper damage / scissor armor (P/S unit):

  • Hard counter of: P/R
  • Soft counter of: P/P, S/R
  • Neutral: S/P, R/R, P/S
  • Soft countered by: R/P, S/S
  • Hard countered by: R/S

And same applies to all 9 types.

So the counter strategy the player can use:

  1. If your opponent masses only 1 kind of unit: you can always make and hit him hard with its hard counter.

  2. If your opponent masses 2 kinds of unit: Pick armor that is not countered by their damage type, then pick damage that is not countered by their armor. For any combination of two unit types there is one unit type that can counter both or at least counter one of them and neutral to the other.

  3. In case of 3 different kinds of units: if there are two kinds of attacks, then point 2 apply for armor, in case of only two different kinds of armor than the the damage part of point 2 applies. So in this case the interesting combinations is when all the 3 combinations present of the battlefield. In this case there isn't a single unit counter that can reliably trample the whole thing.

So point 3 needs more analysis. I'll continue my answer once I find out what kind of equilibrium that can result in and have more information.


I believe the key is having a single measurement to decide how strong a unit is. I recommend using game seconds. Here are my 3 basic metrics:

How long should the median unit stay alive while taking damage?

How much time should the player spend on creating the median unit?

How late in the game do I want to introduce the unit?

Let's say I want my unit to survive for 10 seconds, and spend 5 seconds of resource gathering/development to create it. I want it to be available after the first 30 seconds of the game, not before.

This gives you a lot of numbers to play with: health, damage, attack speed, range, movement speed, cost, etc.

Example: The median unit has 100 HP and it will have 10DPS. If 2 of these units fight each other, they will both die in exactly 10 seconds. It also has the average range and average movement speed, say a meter a second for movement and 10 meters range.

It costs 400 gold to create. On average, it would take 1 second to generate 100 gold. It will also take 1 second to build, so this gives us 5 seconds of manufacture cost.

To build it you need a specific building or tech developed. It will cost 2000 gold to build the base and another 10 seconds to developed. So it cannot be created before the first 30 seconds.

So how does this help us? Once we have a metric for a single unit, we can start giving a value to a synergy.

In your example the synergy is this: a unit takes physical space, therefore it extends the life of any unit behind it, assuming its big enough to

A) hide the unit behind it

B) cover the enemy range in its size

How do we use this to fix our swordsmen - archers problem? here are some options

  • If the archers are 3 times the size of the swordsman, you will need 3 times the number of swordsman to "hide" the archers, otherwise the enemy can go around the swordsmen. This can break the cost effectiveness of the synergy.
  • If the average unit is faster, it can close in the distance to the swordsmen quicker, effectively spending less time in the deadzone where they take damage by arrows and not hitting the swordsman. This means that the swordsmen will eventually die and the archers will be vulnerable.
  • Create more units with varying ranges - let's say the archers have 10 meter range and stand 5 meter behind the swordsmen. That means that they form a 5 meter deadzone, but any unit with more than 6 meter range can hit them, regardless of the swordsman. If the move them closer - bigger deadzone, more units that can hit them. Farther, the opposite.

This helps us fix these problems, How do we predict them?

Tricky, but you want to quantify this synergy value. In my example, I would say that a unit that survives 10 seconds, and has the size of 2, will extend the life of any unit behind it for 12 seconds (10 to kill, 2 to reach), and can hide 2 units behind it (if the average is 1).

The protected unit has an additional 12 seconds of life which is 12 seconds worth of damage if it has a range of more than 2, otherwise it cannot hit the enemy while staying behind its protector.

So your job is to make sure every unit stays as close as possible to the median worth. The differences between them will stills show, because depending on the play-style, the advantages and disadvantages will have different weight. A player that is very good at clicking fast will suffer more from a slow attacking/moving unit than a player that is not so good at it.


It may help to determine a list of attribute points for each of your units to get an idea of their contribution to a group of units

For Example:

  • Survivability
    (Combination of Health + Armor + Shields + Dodge, etc.)
  • DPS
    (You want to measure DPS so that fast and slow attack rates can be compared fairly.)
  • Skill/Special/Utility
    (The special factor that attempts to put a number to some qualitative value of the unit.)

You'll also want to determine the build costs in terms of time and resources. This one will be tricky to calculate in a way that equates fast & cheap with slow & expensive units though.

Make sure that there's no overlap between the meaning of each attribute or else you're counting part of its overall value more than once.

If one unit has more total points than another it is likely to be a superior choice than the other unit and would make that other unit obsolete. That's a good way to set up tech tiers though, and ensure that different factions/races/teams have similarly weighted attributes on each tier.

Then consider hypothetical groups of units and the sum of all points in that group.
If you can come up with groups that cost less (time + resources) than another group to produce then it's probably going to have an advantage.

If you enter these attributes into the unit data, you could automate a bunch of fake "battles" where you give each team a time/resource budget and assemble armies until the budget is spent. If one army has a higher sum of attributes than the other, it's a sign that the composition could win a battle against the other.

Every time you add or rebalance a unit you could run these automated tests to see how much balance has been thrown off for thousands of possible army match ups.


sounds more like a design issue, no need for mathematical equations. if they use the strategy you described, there should be some consequence - balance things out, add more complexity so each combination offers different positives and negatives.

  • 1
    \$\begingroup\$ Can you elaborate a bit? What "consequences" could such a strategy have? What is your process to "balance things out"? What kinds of "complexities" would you suggest to add? \$\endgroup\$
    – Philipp
    Commented Mar 4, 2020 at 12:17
  • \$\begingroup\$ thats up to the person who designs the game, so no, i can't. \$\endgroup\$
    – fsdfd
    Commented Mar 6, 2020 at 11:01
  • 1
    \$\begingroup\$ When you answer a game-design question, you're volunteering to be a consulting designer on the project to help solve the problem. If you don't have a full picture of a design that solves the problem to offer, then it might be premature to post an answer just yet. I'll also remind you of our code of conduct - content that insults our fellow users of the site is not welcome here. \$\endgroup\$
    – DMGregory
    Commented Aug 4, 2020 at 13:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .