The moba genre has largely settled on an equilibrium with two armour types: Physical Armour and Magical Armour. Why is this the case, and could expanding the use of armours or resistances lead to greater complexity and depth?
In this discussion we’re focusing on armour types and resistances that players interact with. The rules that decide how much damage a ranged troop deals to a catapult are “environmental tuning”, and aren’t the focus of this article.
To begin our search for answers, let’s first review what armour types and resistances contribute to the genre, and establish why the current trend exists.
At any point in time, players face a constant fluctuation of variables which provide advantages and disadvantages over each of their opponents. Maybe one enemy is close to a wall and is advantageous to engage, but they’ve also just levelled up or got a new item that puts them ahead of the curve. We can visualise this abstractly as some kind of 2D surface, which I call an advantage map:
Here, perhaps the enemy is vulnerable to our magic damage, but we are vulnerable to their physical damage. Adding more armour types and resistances would increase the dimensions of the chart, allowing more room for different contours of matchup:
Armour types have a role to play in providing long-term strategic texture. As the damage type of an ability or attack is fixed and does not change during a match, the same is true of the relevance that damage types have in the game. Their permanence makes them an important tool in the designers kit for adding long-term dynamics to hero matchups. Many factors in decision-making are constantly changing (such as proximity to a wall, or current health); fixed factors are more stable, and create opportunity for strategy.
The presence or absence of fixed factors affects the weight of long-term choices, such as drafting or a player’s overall build plans. Generally, we want a certain ratio where both short and long-term choices matter, and fixed factors are key to managing that ratio. Too little emphasis on fixed factors, and smart short-term choices won’t tie into anything and become unrewarding; too much emphasis on fixed factors and we get long-term disadvantages that are very hard to turn around, such as complete outdrafts.
With armour types, we can manage the availability of items to control the timing curves for certain heroes/damage types. Physical damage might take a lot of items to become effective, while magical damage can taper off in the late-game due to a lack of steroids. Thus, a team which picks lots of magic damage has a fixed factor in their plan (they don’t have good options late-game), and both teams can manoeuvre around that.
Rock, Paper, Resistance
If you want fixed factors, resistances are about as fixed as it gets. Unlike armours where the strength of the defensive stat can be modified in-game, a resistance system uses predetermined values.
In such a system, each hero gets an “affinity” which alters any damage they take, depending on the affinity of the incoming damage. A familiar example is the pokémon resistances chart:
Here we would say that Fire-affinity attacks deal increased damage to units with a Grass or Ice affinity, and reduced damage to units with a Rock affinity. Players can’t modify the resistances table at all; it is part of the landscape on which they battle.
Flexibility is necessary for a resistance table to be fun! Players need opportunities to leverage the resistances table better than their opponents, proving their skill and providing satisfaction. Pokémon understands this: battles involve at least twelve combatants, and swapping or using off-affinity moves is core to its gameplay. Each player gets lots of opportunities to use different affinities, and there are even dual-affinity pokémon to increase the complexity.
In a moba context, we would aim match those properties: by making lane rotations easy/frequent, multiple-hero engagements common, or letting players alter what affinity they or their damage has, so they can actively adapt to bad matchups.
On the macro level affinities might work, but on a micro level they tend towards producing solved situations where one hero’s affinity advantage leaves little room for outplays. Getting into situations like this isn’t fun for either party, and there is constantly pressure on the weaker party to seek a more favourable engagement.
Let’s consider some possible implementation details. Damage is a fundamental mechanic, and making it more complex is like making movement more complex: it potentially affects almost everything about the game. Players need to understand affinities to play properly and that makes a good implementation more challenging.
Namely, we would like it as simple as possible to ease player comprehension. The smallest affinity table has three affinities: enough to make a rock-paper-scissors pattern. Adding more is an option, but we’d need to support that additional complexity with very clear aesthetics: like pokémon does by making all its Fire-affinity moves look like fire. That places restrictions on the game’s aesthetic: entangling visuals with balance, and is not an ideal choice when the genre’s business model relies on letting players use a variety of cosmetics.
For existing examples of how affinities can work:
- In Age of Myths, hero attacks are subject to a resistances table, but abilities are not. This is done with the specific purpose of balancing attack range and the items available to each hero class, and comfortably satisfies our flexibility requirement.
- Master X Master implements a rock-paper-scissors affinity system, which applies to all damage to/from heroes (and some neutral units too). The system works because, like perSonas, players in MXM pick two heroes and can swap between them. When faced with a bad matchup, swapping should ensure at least a neutral matchup (unless the player picked two heroes with the same affinity, which this system distinctly discourages).
- The text showing damage dealt to units becomes more emphasised when an affinity advantage is being leveraged, which helps build familiarity with the system.
- Elemental Wars made affinities and resistances its central premise, offered nice ways to interact with them, and was quite savvy to the potential issues.
My verdict is that resistances are potentially a good thing, but they come with a lot of responsibilities: for balancing, making them intuitive for players, delivering on flexible gameplay, and ensuring they contribute meaningful depth.
Another important role for armour types and resistances is giving damage weaknesses.
As the primary mechanic for clearing creeps, taking towers, and killing enemy players: damage is universally useful. In a game without armour types, we would have to rely on other mechanics to create weaknesses for damage, such as resistances (buildings taking less damage from heroes), or modifiers based on damage source (perhaps an item which reduces damage taken from all abilities, or all single-target abilities).
Depending on abilities and handwritten passives to create weaknesses in damage has issues. Firstly, there are situations where a player is caught off-guard or can’t use abilities in time, which may be exploited to create a burst-heavy gameplay with little counter-play. Secondly,a hero’s abilities will become more entangled with game balance, making it difficult to tweak a hero’s interaction with damage without changing what their abilities do.
Using a single armour type is possible: we end up with damage that ignores armour (“pure” damage), and damage which doesn’t. This isn’t a good setup, because either:
- Pure damage is uncommon and armour protects against most things (armour becomes too valuable).
- Pure damage is common and there’s no instrument to interact with or counter it.
This may have been the case for some old AoS maps which didn’t use magic armour. In those games, abilities would deal a fixed amount of damage, which was countered by building max health to reduce the proportional impact. Not ideal for a designer: max health has so many other uses that it can’t be tuned for countering pure damage in isolation, and players have to deal with overlapping choices.
Having two armour types like physical and magical is enough flexibility to allow high-damage heroes like nukers to exist without breaking the game, because while their damage is high, it has an inherent weakness: either it’s all of the same type and can be countered efficiently, or it’s of split types and becomes difficult to build for.
Tropes and Variations
The most common forms of armour resolve to a percentage modifier on damage. However, an armour type is “an adjustable stat that helps mitigate damage of a certain type”, and we could apply that stat in other ways. For example, physical armour offering a flat reduction on incoming physical damage, or the deciding the health/duration/cooldown of an anti-magic shield that can be temporarily activated (as an active ability that all heroes have). These have some quirks (how does physical damage over time overcome a flat reduction?), but there’s nothing invalid about them.
We’re accustomed to strong correlation between damage types and damage sources: “physical attacks” and “magical spells”. This arrangement means that heroes usually have access to both damage types, even if one is weak. These correlations aren’t a bad thing, as they establish trends, and exceptions which break a trend make things interesting.
Should stats like Evasion and Block count as armour types? Well, they can if you shift your perspective! One way to look at it is that evasion “defines” attacks in the same way that physical armour “defines” physical damage. The equivalent for evading spells is spell immunity, which is an armour type that operates on a temporary activation basis, like we described above. (In DotA, the duration of spell immunity is a variable value!) Then anything that neither evasion nor spell immunity block is the equivalent of pure damage.
This paints a complete picture of armour types, despite taking an unusual angle. Evasion and immunity aren’t as interact-able in most mobas as physical/magical armours are, but they do offer full coverage of the system, and there’s no reason why we couldn’t have a moba where this was the primary perspective.
The Third Shield
In most mobas, the physical/magical split has a huge influence on how players draft, choose items, and use their abilities. Imagine the complexity if a third armour type and corresponding damage was introduced…
Let’s call it Runic Armour.
I’m going to pick some correlations that I think would integrate relatively seamlessly into the existing moba format. Namely, we’ll say buildings and boss objectives have minimal Runic armour, so heroes with Runic damage have an easy time taking objectives, and said objectives get back some physical armour to compensate. This fixes an unhealthy side-effect of having only two armours (which is appropriate for PvP), where heroes with physical dps or which reduce physical armour get to be effective against buildings as a freebie.
We’ll also declare that Runic damage is usually delivered in melee or close range, so heroes need to directly engage objectives to get the most of it (but maybe some hero gets to be the exception to that), and that it’s uncommon, with maybe 15-20% of heroes having native access to it. Catapults probably deal and are weak to Runic as well.
For hero combat, Runic damage would be relatively low (it deals almost full to buildings), but it doesn’t have to be worthless. We can supply items/abilities that apply negative Runic armour to heroes only, or give a high percentage of mana leech on Runic damage: giving Runic abilities the opportunity to fill niches that others don’t.
These are undeveloped thoughts, but I think they demonstrate some of the room that armours have to potentially increase depth, if they’re assigned a purpose and properly integrated.
On a smaller scale, we could define narrow-interest armours: such as a support armour which protects against supportive nukes and reduces the duration of crowd control, or a creature armour which protects against damage from summoned units. Consider a nuke which reduces a hero’s creature armour, or choosing to give towers an on-hit passive that reduces an enemy’s support armour, making them more vulnerable to usually-harmless supports.
At this point we should have a clear understanding of why the two-armour system has been the standard for so long: it adds a fixed factor that the designer can easily tune, and gives damage some much-needed weaknesses. Resistances and affinities are a high-maintenance addition, which most games have understandably chosen to avoid (for hero vs hero interactions).
Introducing new armour stats, or more generally, variable hero stats (which might not correspond directly to damage) helps to to formalise interactions, and improve players’ understanding of modifiers that are currently fixed percentages, and don’t stack intuitively. These stats typically aren’t formalised yet because they’re used infrequently, but as a game expands, having a system in place becomes more valuable. For example, Heroes of the Storm recently reached a point where using percentage-modifier buffs to apply damage modifiers was proving cumbersome, and the game has now moved to a more standard armour system.
We are in a genre where deep mechanical interaction is so important, that exposing or introducing more stats for manipulation feels like a natural progression as games expand. Whether it will be new armour types or otherwise remains to be seen!