Inspired by Overwatch again, but also relevant to other games: it’s not usually good when the best way to deal with a specific hero (unit, card, etc.) is to just use that hero yourself.

The whole reason to have multiple different heroes is to allow for different playstyles.  Some people like just clicking on enemy heroes, so they play McCree or Widow.  Some people would rather be disruptive to the enemy team, so they can play D.Va or Winston, etc. This is all fine, but one of the central ideas in Overwatch is that you can switch heroes mid-game to counter an enemy team. So it’s pretty clear the intention is some system of soft counters–you might pick up Winston specifically to shut down an enemy Genji or Widow, for instance.

The problem with this system comes when the easiest or most effective way to deal with a specific hero is … to pick that hero yourself. The two main culprits in this are Reinhardt and Ana, though Blizzard has taken some steps to mitigate both of these “self-counters”.

With Reinhardt, the problem is twofold.  There’s the obvious difficulty in dealing with his shield; the easy and low-coordination solution is to pick your own Rein and then break the enemy shield by poking it down quickly. This isn’t necessarily a problem, though, because you can also dive the Reinhardt–he’s not a particularly good hero when you make his shield mostly useless by jumping into the backline with Winston and Genji or something.

The other problem is actually more serious, and it’s Reinhardt’s ultimate. Sure, you could suggest spreading out so an earthshatter doesn’t hit more than 2 or 3 people, but even a 2- or 3-hero earthshatter is often enough to win teamfights, and it takes a lot of coordination to spread out appropriately. The easy way to deal with earthshatter is to block it, but the only hero that can reliably do so is Rein himself, since the other barriers are too slow to create and too fixed-in-place.

Amusingly, one solution to this is to make earthshatter penetrate shields, though that probably makes it too strong in general. Alternatively perhaps you just leave it as it is and just admit that playing against a Rein without your own Rein takes lots of coordination.  The addition of Orisa does at least add another barrier with 100% uptime, even if the barrier is mostly immobile.

You used to have a similar situation with Ana ult, where the only reliable response to a nano boost was to either use your own nano boost or to use sleep dart on the boosted hero. Other ultimates charged too slowly (especially near Ana’s release) to ensure they’d be available as a response, and no other heroes had basic abilities with disabling effects that would last long enough to neutralize a nano boost. With the removal of the speed boost that used to be applied during a nano boost you can actually either try to avoid the boosted hero (if it’s a tank) or still attempt to kill it (if it’s a dps hero).

Ana still does have a self-counter situation with her grenade, though. Double healing is strong enough that it’s nearly impossible to kill a tank with Ana’s grenade buff … unless you counter it by removing the healing altogether with an Ana grenade. Ana still works out okay in the end, but she’s been a staple of nearly every competitive team for months largely because her grenade really is that good, and it’s even better when the other team doesn’t have their own grenade.

Lucio also has a bit of this going on, since the only way to keep up with a teamwide speed boost (especially if it gets Amped) is your own Lucio. Lucio being an aura hero makes it hard to see how much of a problem the self-counter aspect of Lucio is, though, since auras have to be overtuned to get players to use them (Riot learned this lesson with League; it’s the reason that aura items no longer exist: every single one of them was too strong, and making them appropriately costed meant they felt awful so they would never get used), so Lucio is just too powerful in general … at least for now.


Healing in competitive games

In short: don’t include ally-targeted healing skills in competitive games, in particular in team-based games like Overwatch, League of Legends, and such.

The main game-design problem with healing skills is that it’s hard to make the healing worthwhile but not too powerful to be problematic. If healing skills are too strong, you reach a point where everyone can pick a healer and then no one ever dies because the healing outpaces the incoming damage.

To deal with this, you basically have two options for designing heal skills: either you make healing strong but with a long cooldown, or you make healing weak but available often.

Weak healing skills then end up being mainly anti-poke healing.  During a teamfight, weak healing is not very useful–as I said above, it has to be outdone fairly significantly by the enemy damage.  So you could use weak healing as a form of player regeneration to force actual engagements as opposed to just endlessly poking down the enemy team, at the cost of having to actually select the healer instead of a better teamfight character. If that’s the design goal then weak healing is okay, but I prefer just giving characters other forms of regeneration (passive hp-over-time, or Overwatch’s health packs, etc.) instead. That means poke damage doesn’t become useless (it often feels futile or even outright counterproductive to deal poke damage to the enemy team in Overwatch, since you might just be charging their support ults).

Strong healing in theory can work, but I think there’s just a better mechanic to use: shields (temporary HP). Both shields and strong burst healing function largely similarly: they can be used to reduce poke damage (at the cost of opening a window where the shield/heal is on cooldown that the other team can in theory exploit), or to prevent burst damage from killing an ally.  There are two main differences, and I think both of them point to shields being the better mechanic.

First, shields allow for more interesting play from both teams.  Obviously, shields allow for the team playing against the shield to attempt to ignore it entirely. This is a lot more interesting than the “oh our first 200 damage just doesn’t count” that burst healing often turns into.  On the other team, shields can be much more powerful than heals can: you don’t have the immortality problem, since shields can’t undo damage.  This allows the team using the shield to enable aggressive positioning and maneuvers (like a Reinhardt or Riven charging in to the enemy team) that wouldn’t … or at least shouldn’t … be possible to do otherwise.

Shields also lead to a bit less snowbally gameplay, since after you win a fight you can’t just use the shields to heal up.  In a game like League where things like turrets and neutral objectives deal damage to you, this means that how much you win a fight by is a big deal, since you might not be able to kill Baron if you don’t have enough health left, since you can’t heal it up.  In general this is a desirable thing for team-based games.

League, of course, does a pretty good job of using shields instead of ally heals (and the two most notable ally-healers, Taric and Soraka, are both partially relics of old champion design besides).  I don’t like how healing in Overwatch functions all that much. In my limited time playing Heroes of the Storm, healing was a giant mess there too, it was much too strong compared to player damage.  Perhaps Blizz has fixed that since then.