Mod Balancing Guide by Hercanic
Hercanic, the creator of StarCraft: Team Fortress originally wrote this essay on mod balancing in a PM to DoA. He has agreed to have it posted here:
In general, just make sure each unit has some kind of counter, but don't make the relationship too rock-paper-scissors. You want some leeway so strategies and tactics can be more varied. SC Ground units can be broken up into a few categories: Melee, Heavy Melee, Ranged, Caster, Siege, and Anti-Personnel (Lurker/Dark Templar). Terrans are a bit of an exception due to how specialized their units are--they lack a true Melee or Heavy Melee unit. The Firebat, afterall, is designed specifically to combat Melee, and every other unit has a ranged attack of some kind. It is interesting to note that the 'melee' units of each race have their attack doubled. Firebat and Zealot do 2 x 8 damage (16 total), and Zerglings do 10dmg split between two units (5dmg each). This means armor reduces all their attacks by twofold.
Melee
- Zergling, 70hp (2x35hp), 10dmg (2x5dmg), 50m (2x25m), Small
- Zealot, 160hp (60sp+100hp), 16dmg (2x8dmg), 100m, Small
- Firebat, 50hp, 16dmg (2x8dmg/concussive/splash), 50m/25g, Small
Ranged
- Hydralisk, 80hp, 10dmg (explosive), 75m/25g, Medium
- Marine, 40hp, 6dmg, 50m, Small
- Dragoon, 180hp (80sp+100hp), 20dmg (explosive), Large
The balance of StarCraft is very subtle. A Zergling when viewed as a grouped unit is obviously powerful, but suffers some disadvantage by being split between two units--when one dies half its power is lost, it takes double damage from splash, loses double damage from armor, the 12-unit limit on selection is filled faster, and by being melee each takes up attack room around an enemy limiting the total amount of attackers per target.
It is also interesting to note how Ranged units are treated. Other than the Marine, they do explosive damage, meaning smaller targets (Melee) have an advantage over them. The Marine is designed to combat other Ranged units, thanks to his Small size and Normal damage, and Firebats can protect him from Melee units.
The key to balance is to weigh each advantage with a disadvantage (Protoss are tough, but come at twice the cost and shields take full damage from all attack types), and ensure each unit or strategy has a possible counter. A Battlecruiser, for instance, is easily thwarted by a Ghost with Lockdown and a handful of Marines. Also, make sure each of your units has a clear purpose in existing. Avoid trivial choices.
Some good exercises are to divide each units' damage per second by its health to see whether it's more of a damage-dealer or meatshield; or equalize the cost of a unit against another (1 Zealot = 4 Zerglings or 2 Marines in cost) and compare the differences in attack and health power and then analyze what other factors contribute to their balance (Firebat has splash, but does concussive damage; a Ranged unit gets in extra attacks on melee units who must close the gap to attack--cliffs and staggered fire can shift the odds even more in the Ranged unit's favor). For example, in Warcraft III, Ranged units do a lot of damage but are very frail, which is where Infantry comes in to act as blockers and meatshields.
Some unit concepts
Basic Melee: Cheap and easily massed, their best uses are early or desperate attack/defense and as blockers, whose shear volume will make it difficult for enemy units to reach more sensitive ones. Example: Starcraft Zergling
Advanced Melee: Beefy with equal parts health and damage, these guys tend to survive longer than their lesser counterparts. Examples: Warcraft III's Tauren, Bear, Knight, and Abomination; Starcraft's Ultralisk and Archon.
Meatshield: An emphasis on health and armor is placed here, whose purpose is to draw enemy fire away from weaker units. Usually a melee-oriented class. Example: Warcraft III Mountain Giant.
Ranged: Able to attack at a distance or engage air targets, these tend to be the most versatile units. Warcraft III made them more dependent on melee units to protect their low health from damage. Examples: Warcraft III's Berserker, Crypt Fiend, Rifleman, and Archer; Starcraft's Marine, Hydralisk, and Dragoon.
Anti-Air: A ranged unit with a specialty for air targets. Example: Starcraft's Goliah
Anti-Personnel: Either melee or ranged, it can do high damage to lightly-armored units. Example: Starcraft's Vulture, Firebat, Lurker, and Dark Templar.
Siege: Typically holding the title of longest range in the game, its primary purpose is to use its superior range to destroy static defenses. Splash damage may be incorporated to make it effective against masses of units, and high damage ensures it gets the job done quickly, but it also usually has low health and slow speed making it very vulnerable to attack. Examples: Warcraft III's Demolisher, Glaive Thrower, Steam Engine (going against convention, it has high health/armor but can only engage buildings and air units at close range), Mortar Team, and Meat Wagon; Starcraft's Siege Tank, Reaver, and Guardian.
Caster: Must love Micro, these units typically have a variety of abilities that can turn the tide of battle with thoughtful timing and placement. There are many subcategories to this unit type depending on their spells, such as Healer, Buffer, Debuffer, Support, Offensive, Defensive, the list goes on. In Starcraft, there is one ground caster and one air caster per race (Medic being an exception), with an equal mix of offensive, defensive, and supportive abilities. Example: Defiler - Plague is offensive, Dark Swarm is defensive, and Consume is supportive.
Spy: Knowing what the enemy is doing at all times is crucial to strategic planning, and that is a Spy's specialty. Factors that help them do their job are a large sight radius, detection, stealth, and fast movement speed. Examples: Warcraft III's Shade; Starcraft's Observer.
Scout: Like a Spy, but geared more for speed than stealth, exploration rather than monitoring. Without stealth, life expectancy is limited, so cost is an important factor--the cheaper the better. Example: Lone worker, Starcraft's Vulture, Overlord, Scanner Sweep.
Anywho, this is far from an exhaustive list, but it should hopefully help stimulate some ideas. Just create a loose rock-paper-scissors relationship to both give each unit a purpose as well as ensure each unit can be countered. One exercise I use to help me come up with ideas is to create a basic component list, which can be distilled from the properties of units from various games, and play a mix-n-match game. For example, combine the advantages Flyer and Long Range with disadvantages No Splash, No Air Attack, Medium Damage, and Slow Movement, and you've got yourself a Guardian. Take one of the conventional unit concepts from my above list and use a component list to see how you might change things to create a new, unique unit. Also, don't fret with numbers until you have everything laid out, because it will only slow you down, blindside you to the bigger picture, and the numbers will inevitably change anyway as you test. Instead, use general concepts like High Health, Low Damage, or Marine can take 3 hits from a Hydralisk and 1 hit from a Dark Templar.
I suppose I should better define the Rock-paper-scissors relationship I keep mentioning. In medieval combat, the relationships could be boiled down to Infantry > Calvary > Archers > Infantry. You see, Infantry is slow and must engage in melee, meaning Archers can pelt them from afar and kill them. Calvary, on the other hand, is fast and can close the gap on Archers to cut down their frail bodies. Calvary attempting to mix it up with heavily armored Infantry are easily taken down because melee is Infantry's specialty. So you have two weaker classes with one special advantage, range for Archers and speed for Calvary. Infantry, on the other hand, are strong but slow. Slow is a disadvantage that the Ranged advantage can profit from, whereas Speed means nothing when both units fight in melee.
Now R-P-S is not limited to three units, nor can only one unit counter another. You can create a complex relationship web with many counters per unit.
- 5-Way Intransitive Relationship
- Samurai > Shugenja & Ashigaru
- Shugenja > Ashigaru & Archer
- Ashigaru > Archer & Ninja
- Archer > Ninja & Samurai
- Ninja > Samurai & Shugenja
Try drawing this one out, Samurai at the top and the rest listed out clockwise in a circle. Connect with arrows and you’ll see both a circular connection and a star connection.