Thursday, July 11, 2013

Design (Part 5) Pattern Mismatch


This will be a series of articles about game design, using the popular games DOTA and League of Legends as illustrative examples. The specific words, "Design is an Optimization" was coined by the design director of Riot. It means that to him, design is an iterative process of optimization.

Thus if some aspect of DOTA or LOL seems inferior or different to the other, it is because a conscious choice has been made by its designers – the trade-offs have been examined, the benefits judged more than the costs.

Pattern Mismatch in DOTA2

This deals with a topic of skill design - when designing the skill-set for a character, how do we know a skill we propose is a good "fit"? A skill which doesn't fit well is deemed to have a problem called Pattern Mismatch - the skill doesn't fit the usage pattern the rest of the character design seems to suggest.

For example, a healer who is given a critical strike passive that he never uses because he never hits anyone to begin with (Sub-optimal Use). A hero could have a skill that slows the enemy and also deals more damage to them the less HP they have (Conflicted / Redundant Use) so you're not quite sure if you're supposed to use it at the start of the fight to disable them, or at the end of the fight to execute them. Some heroes could have skills that have negative synergy, like a warlock who specializes in damage over time debuffs and has a CC (fear) that breaks on damage (Anti-Combo). Some examples to follow.

Sub-Optimal Use

A classic example of this would be Lina Inverse from DOTA2.

Lina Inverse is a spell-caster - she primarily does damage by casting her Dragon Slave, Light Strike Array and Laguna Blade nukes . Typical of most spell casters, she buys items that increases her mana, and doesn't do much damage with physical attacks. However, she has a passive called Fiery Soul that greatly increases her attack speed whenever she casts a spell.

Most of the time, players take Fiery Soul last, or even skip it entirely and take stats instead. Sometimes, players may take Fiery Soul early and try to build her as a physical DPS character, with predictably poor results.

Conflicted / Redundant Use

A classic example of this would be Necrolyte from DOTA2.

His ultimate skill, Reaper's Scythe, inflicts a 1.5 second superior magic stun (which pierces magic immunity) and also deals damage based on how much life they have missing - basically it's an instant kill when they're at low hp, but it does less damage the more hp they have.

The two components of this spell seem to work at cross purposes - if you cast it on a low hp hero, they die instantly, and you didn't get the benefit of the stun. If you use it on a higher hp hero to stun them, the damage component of this spell is very weak. There is actually a "perfect" time to use this spell, but it comes up very rarely - when the enemy is low hp but just about to escape: the high damage from the skill, plus the extra damage he took from your allies in that 1.5 second stun was just enough to kill him.

Anti Combo

A classic example of this would be Omniknight from DOTA2.

The Omniknight is a support character with a variety of healing and protective spells. He has a skill called Purification that heals an ally. He also has a skill called Repel that grants magic immunity to an ally.

The interesting thing, however, is that Purification cannot target magic immune heroes. Through the course of history countless heroes have fallen due to the Omniknight casting Repel on a low hp ally to "save" them only to belatedly realise that he now can't use his healing skill on them.

Pattern Mismatch in LOL

There's generally more Pattern Mismatch going on in DOTA2 due to the free-form style of character design practiced there. The champions in LOL tend to have stronger character themes and focused kits so it is rare for this issue to occur. The only example I can think of is perhaps Kassadin.

Kassadin is a high mobility burst damage mage. Riot seemed to want to design him to be a hybrid melee attacker / caster, giving him a mix of spell damage, high mobility and good auto-attack damage skills - his passive gives him attack speed when he take damage, and his Nether Blade boosts his damage and restores his mana with every attack. In practice, players ignore his auto-attack abilities and just play him as a straight caster. I'd argue this is more a case of the designers failing at creating the champion they envisioned, rather than having a particular skill being mismatched with the rest of his kit.


In theory some Pattern Mismatches could allow some fun game-play. Lina in particular has been built as a "battle mage" by countless players, mostly ineffectively, but that never stopped people from having fun. Conflicted Use cases and Anti-Combo introduce an additional layer of complexity to the game, forcing players to think a bit more about how their character is meant to play, but the downside to that is that it tends to confuse players - they're never quite sure whether they used that skill properly or not, and this disrupts the learning curve. Ideally, you'd want the skills to give clear feedback to the player whether they're being used right or not - like a skill-shot stun you had to aim, getting it to land on the enemy and stunning him gives immediate feedback that you used it correctly, so you should play it that way again. With skills that have elements of Conflicted Use and Anti-Combo, you're left wondering after you used it if you really did use it correctly, and this tends to be less satisfying for the player but also does increase the skill cap. On the plus side it does allow the skills themselves to be made more powerful - consider how the numbers would need to be tweaked on his Repel and Purification if the heal was allowed to go through the magic immunity - it's likely Repel duration would need to be shortened and Purification heal would need to be reduced to keep him balanced, which would be no fun and run counter to DOTA2 philosophy of high risk, high reward gameplay.

Deliberately giving players skills with Sub-Optimal Use cases is like a designer who leaves a "trap" for a player to fall into and fail, not usually a thing you want (you probably have a sadistic designer, and soon to be unhappy players).