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.

Hiding Information from Players

As a game designer, you should never hide information that the player already has from the player.  The reasoning: the player has this information already, so all you are doing by not tracking it within the game is encouraging the player to track it manually out-of-game.  This is a big waste of time for the player, and it never feels good to have to choose between two bad options: either spend a bunch of time tracking it manually or playing worse on purpose by not tracking whatever information.

An obvious example of what I’m talking about is with things like in-game maps. It’s not a requirement that a roguelike includes a map the player can browse at-will; the game could hide the map from the player and still function properly. Probably no one would play that roguelike, of course, since it’s unbelievably annoying to have to keep track of everything manually.

The game that has me writing about this is actually Dominion, however. If you haven’t played it (or heard of it), the only information you really need to know is that it’s a card game, and it has a discard pile where you put cards you’ve already played. The relevant thing to this post is that Dominion actually includes a rule saying you cannot look through your discard pile.

To me, this is absolutely insane. It’s completely impossible for a card in Dominion to enter your discard pile without you knowing that it did so, so this is a case where the player already knows all the information. It’s really easy to check, and honestly takes almost no time at all to do so. The ostensible justification for the rule, I think, is to speed up gameplay … but the problem is that probably it does just the opposite.

If you’re just playing casually then probably you don’t care too much to track which cards in your deck you have already seen, so checking your discard pile does not happen to begin with and the rule is irrelevant. However, if you are taking the game seriously, then it’s pretty important in a lot of situations to know what cards remain in your deck and what cards you’ve already played. So the “best” way to account for this, as a player, is to spend a lot of time making absolutely sure that you know what cards you’ve played, since you are not allowed to check this afterward.

The rules also say you can’t track this stuff on paper, so what you want to do is figure out some other way of keeping track. Probably this comes at the cost of doing things like actually playing your cards quickly, since after every card play you need to make sure you add it to your mental tracker. In practice perhaps this ends up being too complicated, so you just have a vague, inexact idea about how many of each card you’ve played. To me, that just feels really unsatisfying and hurts my enjoyment. Thankfully it’s not too much of a problem in real life since the appropriate thing to do here is just house rule away the problem by letting people look through their discard pile.

It’s a pretty serious problem in online Dominion, though. The no-notetaking rule is completely unenforcable. It’s trivial to keep a text file open and use it to track which cards you’ve played. It’s technically cheating, but you can’t ever stop people from doing it, and the information is available to the player anyway. Removing the restriction on looking through your discard pile strongly reduces the incentive to take notes in this fashion, so the rule should just go away. And as I said above, it doesn’t actually help anyone to begin with: if you don’t care about tracking your deck, then you don’t care whether you can look through your discard pile.

I should note here I only mean looking through your own discard pile. Opponents’ discard piles are not actually public information, and that’s fine. Additionally, while it is helpful to track your opponents’ cards in the same way you’d like to track your own, the no-notetaking rule is fine because notetaking actually does slow down play, so there is a benefit to the rule existing. (It’s still a problem online, of course, but there’s a good argument for the online version of Dominion sticking to the rulebook in this case.)

Also, lest it sound like I’m ragging on Dominion too much here, I should note that the game is amazing. It’s just this rule that’s bad.

A great way to handle this in online play is the way Star Realms does it. In the Star Realms app you can click on any discard pile to view the contents of that discard pile, and you can also click on either player’s deck to view the cards remaining in the deck. This is all public information anyway, so letting the player access it so easily is a great thing.