In this part I will describe in more detail what abstract, or “hidden,” balancing is and how it can be used in your game. This is the last part I’ll post for a while, since I’m going on vacation for a few weeks, but I’ll be back next year!
What is Abstract Balancing?
As already mentioned, abstract balancing is changing how well a unit performs by modifiying calculations that take place “under the hood” in your game. Examples of abstract balancing are damage values, health counts, armor values, attack accuracies (attack probabilities), armor types and so on.
Abstract balancing is used when – to the player – two equivalent actions should yield different results. For example, a swordman attacking a horseman may not give the same effect as a pikeman attacking the same horseman. This is based on the “pikemen should deal more damage to cavalry” type of abstract balancing.
This is abstract balancing at its purest form. Damage modifiers are needed to keep certain unit abilities in check and help mixing up an otherwise single-unit army. The problem with them is that they require practice on the player’s part to fully understand. When they are used, they should be kept as consistent as possible. For example, in C&C 3 all bullet type weapons are efficient against all infantry units.
Starcraft uses a fairly simple table for attack modifiers. It has four armor types and three damage types, as seen below:
- ”Concussive” attacks deal full damage to soft armor, half damage to medium armor and one quarter damage to hard armor
- “Explosive” attacks deal half damage to soft armor, 75% damage to medium armor and full damage to hard armor
- “Normal” attacks deal full damage to everything
- Protoss shields take full damage from all kinds of attacks
In other words, one attack type is effective against small and organic units and another is effective against armored units and buildings, and a third that deals full damage to everything. This kind of system should suffice for most games, unless there are different kinds of instant-kill weapons, such as sniper rifles (which usually are completely ineffective against armored units). However, keep in mind that visible balancing is always better than abstract balancing, so an “Unable to attack target” message is better than dealing insignificant damage.
Chance to Hit Probabilities
Projectile accuracy is something that can be designed to be visible to the player. Age of Empires 2 does this beautifully, which I will describe in the part about visible balancing. However, projectile accuracy can also be designed as an abstract modifier called “chance to hit probability.”
Essential this kind of probability is a modifier which changes how much damage a unit inflicts when it attacks. This doesn’t need to be a bad thing, but it’s very important to make sure that it’s easy to recognize when an attack has hit or missed. In Dawn of War it can sometimes be hard to tell when this happens because 1) a missed shot may sometimes fly through a unit, 2) hits also fly through units because of a render bug and 3) units have a high rate of fire making it less relevant which of the shots that miss.
Health meters are so common in games that most players know exactly what they represent and how they work. That is not necessarily the case for new or casual gamers, but generally it’s a lesson quickly learned. However, health is still use of a kind of hidden balancing since people rarely memorize the health counts for all units in the game.
Using Feedback to Transform Abstract into Concrete Balancing
The problem with hidden balancing is that it can be difficult for players to understand why something is going well or bad for them. This can be remedied by including appropriate feedback for the events in the game. For example, if an attack with a “good” damage type is used on a target, show it to the player with a more spectacular impact effect and sound. Try to keep all units of the same armor type similarly-looking. Try to match hit points with the unit’s size. And so on…
In the indie game, Project: Aftermath (2008, Gamesfaction), they represent different damage/armor types with colors (red armor protects versus red attacks etc). Though simple, it works well and is an integral part of the game (unfortunately a little bothersome as well due to how the user interface is designed). You could consider something along those lines if you use a lot of abstract balancing in your game.