Advertisement

RTS unit balance?

Started by January 23, 2017 09:44 AM
6 comments, last by suliman 7 years, 10 months ago

Im doing a retro-style rts influensed by dune 2, starcraft and total annihilation. Its set in a sort of robotic future (mix of the styles of the 3 games i mentioned)

There is 3 unit types (light, heavy, air)

Each unit has a type and a damage rating to each this three types (0 meaning they canot attack that type).

I have an initial idea of unit rooster but would like your feedback!

Light is specific anti-stuff

Heavy is genreally useful but weak to air

Air is mobile and not attackable by many units

Working numbers at the time:

---------LIGHT UNITS---------

light raider vehicle, 80HP (10,4,6)

anti air vehicle, 80HP (0,0,16)

anti-tank gun 65HP (5,10,0) long-range

rocket launcher 70HP (10,5,0) long-range

---------HEAVY UNITS---------

light tank 120HP (10,10,0)

heavy tank 180 HP (12,16,0)

---------AIR UNITS (starcraft "helicopter"-style movement)---------

general, 60HP (10,4,10)

gunship, 90HP (8,16,0)

Balancing the game is usually an intricate task that continues all through development. If the game has online components, it can continue for as long as the game exists.

There are an enormous number of stories for these.

Some are major changes, where popular items were "nerfed", or made far less effective. Character classes that were once hugely effective lost most of their power. In one game I played I was a mage (I typically play that class) and quickly learned there was a powerful spell I loved. I created a new character, traded all my magic runes with everybody so I could build up a character around a single spell: ice shards. Once the character was powerful on the spell they could send out hundreds of ice shards, they could be fired in a range from a half circle down to a narrow arc, and each high-level shard could do hundreds of points of damage. Over time the combination became extremely popular, and the company nerfed the tactic. They introduced a maximum number of ice shards, around 20 instead of the roughly 100-150 I was at, and limited the damage to a similar low number. The awesome old character could do around 10,000 total damage per casting, the update limited it to about 500 total damage. Several other character classes and abilities were also wiped out.

Other times there are minor changes. I've read stories about how games adjusted timings by single-digit milliseconds, or changed weapon damages by hundredths or thousandths of a unit. Shortening or lengthening the time it takes to shoot by 2 milliseconds or increasing a weapon's power by 0.2% may not seem like much, but over the course of a long-running game it can be a big change to balance.

Make your numbers easy to balance. You'll be changing them all the time.

Advertisement
I would strongly recommend you read this
https://gamebalanceconcepts.wordpress.com/2010/07/07/level-1-intro-to-game-balance/
Chapter 9 touches on balancing an RTS game
https://gamebalanceconcepts.wordpress.com/2010/09/01/level-9-intransitive-mechanics/
Look at the section titled Solving RPS with Incomplete Wins
My current game project Platform RPG
I got excited about the idea of balancing an RTS, so I went ahead and put the stats you had and put them into this spreadsheet
https://docs.google.com/spreadsheets/d/1Kcm8HdR_0GE1RVRilz1KMULvu5FM5R4F4s4B7yeD2YE/edit?usp=sharing
That is the payoff table, or what you get on the link I posted in my previous post in the section Solving RPS with Incomplete Wins.

Let me explain what the table means. Each row and column represent a unit. The expected cost outcome of a 1 on 1 unit matchup is in each cell. So as an example, if the anti air vehicle, on row 3 were to fight the light tank on column f, you would expect the anti air vehicle to lose without damaging the tank meaning you lost 60, the cost of the aa vehicle (I made up costs). If you were to match the aa with a general air ship, they will damage each other and one will be destroyed. Even if the aa vehicle was destroyed it would have done enough damage to have a net gain 71.875. Meaning the fight cost the player with the air ship 71.875 more in resources than the player with aa vehicle. (This assumes you cannot repair, or at least the cost to repair x% of a unit is x% of the cost of a new unit)

So how can you use this to balance your game? Lets assume that all players play optimally. Over time players will find out the right proportion of unit types to create. So for example, in an optimal game the light tank may make up %10 of your army. Each unit will have a different optimal amount but the sum of all the percentages for each unit will be 100%. If a unit has a very low percentage it is underpowered, (or overcosted) If it has a high percentage is may be overpowered or undercosted. But how can you calculate the optimal amount? You need to solve for the systems of equations.


M * | r_0   |   | 0   |
    | r_1   | = | 0   |
    | ...   |   | ... |
    | r_n-1 |   | 0   |

r_0 + r_1 + ... + r_n+1 = 100%
M is the unit matchup matrix in the spreadsheet r_n is the optimal percentage a unit appears or what we need to solve for.
You can either solve the matrix by hand, or write a program do solve it for you. I couldn't figure out good way for excel to solve the equation since using the inverse matrix method just results in probabilities all being 0. I will leave that up to you, but let me know if you need any help with that.

Keep in mind this is a overly simplified version. You will still need to do lots of play testing to try to identify balancing problems, but hopefully this can get you in the right ballpark. Also, i'm assuming you are going to have some sort of tech tree. If that is the case, you will probably want to do a smaller balancing matrix with just your early game units and make sure that it is balanced, then do a separate matrix with additional units you expect to show up in the late game.
My current game project Platform RPG

I know I will need to adjust numbers along the way.

To clearify, I'm asking about the setup

- Is the number of units ok?
- Does the roles of the units make sense? (what they counter, what their weaknesses are)

- Too complicated/too simplified?

I guess it's somewhat similar to starcraft terran unit balance. Do you agree? Is that a bad thing?

(I have somewhat bigger difference long-range vs short-range)

Does the number work for that game? I don't know. Maybe two would be better. Maybe five. Maybe a single base unit where players can select up to N additional add-ons for X cost.

Do the roles make sense for that game? Don't know your game, but they sound reasonable for what you describe.

As for complexity, that one is entirely up to what you consider complex.
Advertisement
I think that looks like a good starting roster. Make that happen first, then if you feel you could use more you can add some more units. I have been tinkering with that spreadsheet I created and noticed that, if the light raider unit costs the same as the rocket launcher, then the raider is more cost effective than the rocker launcher for fighting light units. They both do the same damage to light units but the raider has more health. I modified the spreadsheet to highlight in green when unit on a row beats a column. It doesn't mean that it will destroy the other unit first, just that it is more cost effective matchup. Using that information, you can determine if a vehicle wins the match ups you expect them too. Another thing to note is that the light raider unit, at the prices I have, will win against air units as well. Feel free to use that spreadsheet when trying to balance your units. I didn't allow you to edit the document using that link but you can make your own copy to edit.

EDIT: I also wanted to verify that adding units was simple to do, so I added the super duper tank and made up some stats. To add a unit, just add a row and column in the matrix then fill out the values. I left some comments in the spreadsheet to better explain how to modify it.
https://docs.google.com/spreadsheets/d/1Kcm8HdR_0GE1RVRilz1KMULvu5FM5R4F4s4B7yeD2YE/edit?usp=sharing
My current game project Platform RPG

cool spreadsheet coder:)

This topic is closed to new replies.

Advertisement