Contributors Game Design RTS101

Fixing Stealth in RTS

Welcome guest writer Johaggis to the blog! Here’s hoping I can convince him to come back with more RTS design articles. Thanks for reading – Wayward

It’s no secret that people love stealth mechanics. From dedicated stealth games like Dishonored and Desperados 3 to awkward, forced stealth mechanics in The Witcher 2, stealth is all over gaming. Today I’d like to take a few minutes to talk about stealth in RTS games, how different games have done it, and the key components of a good stealth system.

Let’s start off with shoring up our terms. In RTS games, when we talk about stealth, we mean some kind of way for your units to be invisible to opposing players. Importantly, a stealthed unit often cannot be attacked unless it is detected. A detector is a unit or building that can allow a player to see an otherwise invisible enemy (and attack it). Detection is used as a form of counterplay— a way for the player without stealth to interact with opposing stealth units.

Shadow Tactics: Blades of the Shogun- an excellent RTT stealth game.

Why Stealth

Go to any upcoming RTS’ discord and you’ll probably encounter someone asking if the game has stealth. Love it or hate it, it’s very common in the RTS space. StarCraft, Age of Empires 3, Dawn of War, Command and Conquer, and Battle for Middle-Earth are just some of the titles and franchises with some form of stealth. But why?

I’d say it’s because it gets right at the heart of the scrappy underdog fantasy. You might not have been able to just bulldoze your opponent in a big 100-on-100 melee, but you’re Hannibal from the A-Team. You “love it when a plan comes together.” They didn’t realize they were walking into a trap. Or maybe they weren’t expecting an attack, because you concealed your approach.

Also, Stealth is just kinda…cool. You have units with a sleek aesthetic, often some covert vehicle or assassin, and when you activate stealth, there’s a cool visual effect. What’s not to like? They get to go all “nothing personnel, kid” as they wipe out the enemy forces from the shadows. It taps into our inner edgelord.

StarCraft 2 Dark Templar
Pictured: Cool Dark Templars from StarCraft 2.

The Deep Dive

The way I see it, there are two main types of stealth. One in which units break their concealment in order to attack, which I’ll call Positional Stealth, and one where they don’t, which I’ll call Persistent Stealth. Let’s start with Persistent Stealth.

In StarCraft 2 (SC2), the Dark Templar’s stealth only breaks when they encounter a detector. Otherwise, the opponent will only see a shimmer as you cut their forces down. In Dawn of War (DoW), Eldar Rangers and Tau Stealth Teams will fire from stealth, blowing up your units without fear.

Let’s examine the Dark Templar further. They are a melee unit with high attack power, average movement speed, and very low durability. Because they’ll die before they get close enough to attack, that combination of stats usually makes a unit useless. But it’s balanced around its stealth as a defensive mechanic. As long as it’s concealed, you can’t kill it. Its defensive stats don’t matter, and its average movement speed is enough to get close to its targets. It replaces normal stats that help a unit approach a ranged target with stealth. But if it runs into an Observer, a turret, or some other detector, it dies to a stiff breeze.

By contrast, Age of Empires 3(AoE3) uses Positional Stealth. Stealth makes units move slowly, and they break stealth if they attack (or they’re detected). Command and Conquer 3 (CNC3) has stealth units which sometimes need to be stationary to be concealed and never remain fully concealed while attacking.

Focusing on stealth in AoE3 , we have, among others, the Jaguar Prowl Knight for the Aztecs. It’s a melee unit with high damage against most unit types, average movement speed, and decent defense. Stealth may allow it to overcome its difficulty in reaching its targets, but it still takes a bit of effort to kill it once it closes in.

This is because its stealth ability is much more about positioning than defense. It moves even slower while stealthed to counteract what is effectively a mobility mechanic. Stealth lets it reach its target or set up ambushes, but doesn’t replace its defense. A Jaguar Prowl Knight is always killable when fighting.

So while Dark Templars use stealth as a means of defense and invulnerability, Jaguar Knights use it as a means of positioning and mobility. The different implementations of stealth alter the intended uses.

Age of Empires 3 Jaguar Prowl Knight
Some Jaguar Prowl Knights, courtesy of this forum post. They slap.

There’s also one more important component to stealth systems: the detectors. Detectors can spot stealthed units, and in some instances, force stealthed units out of stealth. They can vary from game-to-game, but there are also a few principles that tend to guide which units and buildings can detect stealth and which cannot.

Almost always, base defenses are one form of detectors. These can be turrets, a central building (if it attacks), or high-tier defenses like a fort. These are natural candidates for detecting as they can’t move and already are intended to prevent the opponent from sneaking their army into your base. As cool as stealth is, most people aren’t very cool with “welp, turns out there were 100 Jaguar Knights in my base the whole time.” This also helps you maintain control over parts of the map where you’ve built outposts. Base defenses already serve to secure territory, and defensive detection is just another form of that. Base defenses don’t have to change anything about their role to become a detector.

Detector units are a bit trickier. They could be support units, dedicated detection units, special units (like heroes in some games), or just select units who gain detection as an added bonus. As examples, we’ve got Crossfire Legion’s Orion (support unit), SC2’s Observer (dedicated unit), AoE3’s Explorer (hero, or close enough), and CNC3’s Sniper (added bonus). These units all have some amount of “perception” as a theme, and thus they get detection. But there are detectors without this theming in some games, and what determines whether a unit detects is really up to the particular game.

StarCraft 2 Observer
A little image of a little observer

Often, detectors are dictated by 1) how integrated the stealth system is into the rest of the game, 2) how crucial it is to detect, and 3) whether more detectors are needed to fill in gaps. If stealth systems are well-integrated into the game as a whole, but the game does not revolve around stealth, it’s likely that detectors won’t be dedicated to that role. Adding them to your army might require effort, but a) you might not need them, or b) it might just be a pull towards building a particular type of unit, rather than an isolated choice. If the game revolves around stealth, dedicated detector units make a lot of sense. And sometimes, a faction needs a unit to combat stealth, and any unit will do.

With these systems in mind, let’s move on to what stealth systems live and die by: interactivity.

Persistent Stealth and Interactivity

Most implementations of Persistent Stealth I’ve seen run afoul of interactivity. In multiplayer games, interactivity is one of the cornerstones of making a fun competitive experience. The worst thing that happens isn’t that you lose, it’s that your decisions stop mattering. Why keep playing the game if you can’t even affect it? While Persistent Stealth never reaches the level of “you literally can’t do anything at all”, there can be plenty of scenarios where a player simply isn’t allowed to fight with their units

No touching!
Pictured: the Arrested Development Dark Templar.

Let’s look at the Dark Templar again. Because the unit is so fragile without stealth, the gameplay around them is warped to be “do you have a way to detect them?” If not, I hope you didn’t want to keep that base of yours, as you can’t attack them at all. If so, they’re nearly worthless. And so we get very binary gameplay. If you’re the one losing your Templars because the opponent was able to get a detector, it feels like you just threw away resources. This cool-looking unit you specifically went out of your way to train is just…invalidated. And if you’re losing your whole base because you forgot to build detectors, it just feels bad, as it’s often uncounterable at that point. That huge army you created doesn’t matter anymore.

Before anyone comes in here saying “well, if you lost to Dark Templars, you actually made mistakes xyz and you deserve to lose”, I know it’s not an unbeatable or even good strategy to build them. I’m not claiming there’s something overpowered about the unit. Rather, their design doesn’t make for interesting gameplay. In the rare case they’re good, it’s because someone didn’t pass the “do I have a detector” check. Yes, there’s counterplay. But the counterplay feels more like a box to tick rather than a strategy of its own. The only real action you can take is to try and get a detector. Or, I guess, hope that you can kill their base faster than they kill yours.

I remember back when SC2: Wings of Liberty came out, there was a campaign mission where you had to hold a Protoss base against an army of baddies for as long as you could. You could set up tons of turrets and build a massive army and fight these super-powerful enemies…or you could build a wall of Dark Templar. The enemies only attacked from two sides for the first huge chunk of the mission, so you could set up about 7 Dark Templars on either side, tell them not to move, and laugh as the enemy tried to walk through the wall. They had no detectors until later. Thousands of enemies, held at bay because no one could attack the invisible units, and consequently making the mission very easy. Perhaps not what the devs had in mind for a glorious last stand mission.

In another case of Persistent Stealth, I played a game of DoW recently against a Tau AI. They built a number of Stealth Teams (a unit that’s permanently stealthed and good against vehicles), and I was having trouble getting any detector to live long enough to actually take out these Stealth Teams. As far as I could tell, my only option was to keep training infantry and attempting to get their “battalion leader” unit out and hope that it lived long enough to attack the Stealth Teams. Sure, there’s probably plenty I did wrong in that game, but even with an otherwise decent army, I had absolutely no viable recourse for attacking the units back. It felt like I got locked out of the game.

Tau Stealth Team from Dawn of War
The face of my doom, the Tau Stealth Team. At least I was murdered by stylish foes. Found here.

But this isn’t exclusive to Persistent Stealth, stealth more generally, or even the RTS genre. Ever play a deckbuilding game or a fighting game where your deck/character has a really awful matchup? The game can feel decided before it’s even begun. If an entire game is filled with these kinds of one-sided matchups, people often refer to them as “Matchup Roulette”, as you’re effectively playing roulette to see if you win, rather than a game of strategy or skill. And I don’t know about you, but I tend to like my strategy games to have strategy as a primary focus.

It’s worth mentioning that there are some avenues where these Persistent Stealth mechanics can be interactive. In SC2, the Terran faction has a scanner that they can spend a resource (energy) to use, and it reveals a chunk of the map for a short time. It also, importantly, reveals stealthed units in those areas. That kind of on-demand detection can make for scenarios where players try to get the Terran player to use up their scans without losing their stealth units, and the Terran player wants to scan when they wipe those stealth units out.

And there are potentially ways you could make Persistent Stealth more interactive. You could make stealthed units get revealed over time while they’re fighting, so that eventually the enemy can strike back. Then you’d just get the first few shots/stabs/nukes. You could make stealth units get revealed only by proximity, maybe with some indicator of where they’re attacking from. That way, you could have units approach a stealthed sniper and detect them, for example. There’s definitely room for exploration.

But even with increased interactivity with the stealthed units, their design will still be constrained. This is because stealth acts as both a mobility mechanic and a defensive mechanic. You can approach enemies without provoking attacks, getting as close as you want, and you don’t need armor or high health, since you usually won’t be attacked. These units are therefore usually fragile, sometimes have high damage, but are almost always incredibly weak when detected. To make a stealth unit that’s as strong as any non-stealth counterpart is to ignore the huge power of stealth.

A Brief Detour About Cohesion

Persistent Stealth is also usually a parasitic mechanic. By parasitic, I mean that Persistent Stealth usually only plays within its own ecosystem, and requires that ecosystem be in place. Often, we see Persistent Stealth requiring specific anti-stealth units or buildings to fight it at all. And that dichotomy of stealth and anti-stealth is precisely what creates the binary gameplay mentioned above.

Moreover, if a game uses Persistent Stealth and only one faction/character has it, every faction still needs detectors. After all, lacking detectors means being unable to fight back against these units. Every new unit needs to consider if it can interact with stealth. And in order to interact with stealth, you’ll need to be focused on detectors and playing the minigame of “Can I get my detectors to spot these units”

Crossfire: Legion HUD
Crossfire Legion clarified whether every single unit could detect or not, even though very few units actually stealthed and very few actually detected. Image courtesy of this article.

Part of the reason I suggested a proximity detection mechanic was to counteract this incohesion. If they could be detected by proximity, units that aren’t part of the stealth ecosystem could still interact. 

Now this can be fine. In a game where stealth is core to gameplay, interacting with stealth would also be core to gameplay. But there aren’t many RTS titles like that. Obviously it is pretty different in a game like Desperados 3, a real-time tactics stealth game. But there aren’t many RTS/Stealth game hybrids that I’m aware of. Though an RTS set in the world of Dishonored could be cool as hell. Just sayin’.

Positional Stealth as an Alternative

Let’s say you’re convinced that Persistent Stealth almost always has issues of interactivity and cohesion. Why is Positional Stealth any better? Well, let’s dig in.

Positional Stealth gets at the heart of the stealth fantasy. You get everything you love about ambushes or sneak attacks. You get the tactics and the mind games. And you get these without reducing units to detector checks. It’s also usually easier to integrate into the game, since detectors are less of a requirement. Let’s take a look at some examples.

Take the Stealth Tank from CNC3. It has the ability to cloak, but it’s disabled when it attacks, and the stealth can also be disabled by attacking the unit once a detector has spotted it. Detectors can help prevent Stealth Tanks from destroying your Harvesters and your base, but the main detectors in the game are base defenses. This is because if you’re engaging the enemy in a standard fight, detectors aren’t strictly needed. If you’re pressuring your opponent and he brings in Stealth Tanks, they’re going to get revealed and fight like other units. Part of their power budget is in stealth in place of defense, but they are fundamentally integrated into the counter systems and standard gameplay of CNC3. Stealth still allows them to take quick engagements and sneak attack your opponent, so they can still do what makes stealth fun, but you don’t have to play some minigame to see if they’re worth using. You don’t just auto-lose the game if you didn’t build the detectors, and you don’t auto-win if you did.

Command and Conquer 3 Stealth Tank
Also they look fun. And a bit like oldschool Cylons.

There are still detector units and buildings, but detection is not as valuable and you don’t need to build units whose main purpose is detection. Base defenses being detectors means your opponent can’t sneak around your base, but they can still sneak around elsewhere. And because detection is more incidental, it becomes more a feature than a game-warping mechanic.

There are still detector units and buildings, but detection is not as valuable and you don’t need to build units whose main purpose is detection. Base defenses being detectors means your opponent can’t sneak around your base, but they can still sneak around elsewhere. And because detection is more incidental, it becomes more a feature than a game-warping mechanic.

A key component of this is that Positional Stealth, as I mentioned above, is not primarily about invulnerability. It’s not about stopping your opponent from hurting your soldiers, it’s about catching your opponent off-guard with units they didn’t expect. As a mobility mechanic, we can fit it into a more standard RTS paradigm. Maybe it takes the place of speed for a horseman or buggy. They can’t get to their targets as fast as a normal horseman, but they might not need to. In games with complex map layouts or large sight ranges, maybe it allows you to attack from an unexpected angle. Maybe a fast unit couldn’t have pulled that off, since your opponent would have stopped them. You don’t have to leave the ecosystem of the core RTS experience every time stealth comes up. And you get a diversity of options, each with different strategic functions, rather than a gimmick that checks whether your opponent has detectors

It’s definitely more fun to play against, too. If you suspect your opponent’s sneaking around and up to no good, you can build detectors, but you have other options too. You could force a fight where they need to defend with their stealth units. You could keep some units in unconventional places, letting them think they’ve snuck up on you, then flank them when they appear. You could also get clever with your detectors and build up your defenses. And once the concept of detectors as the sole way to play against stealth is done away with, it opens up a chance to adapt once you realize your mistake. They might have surprised you, but now you’ve got a chance to fight back. This keeps the window open for a player to show their skill. You don’t lose the chance to make meaningful decisions.

With Positional Stealth, it’s testing the trickiness of one player against the shrewdness of the other. And isn’t that tricky, unexpected tactic what stealth is all about?

But Beware!

This isn’t to say that all Positional Stealth is fair and good in every game. 

As I mentioned before, AoE3’s stealth mechanic is pretty flawed, despite being Positional. Detectors are pretty rare, as stealth isn’t often very useful. For most units that can stealth, either the loss of move speed isn’t worth it, or the unit doesn’t gain much from the mechanic. It’s just not really used much in my experience. It doesn’t really feel like part of the game.

Additionally, its lack of integration with the core of the game makes for some weird edge cases. I played a lot of Treaty 40 mode in around 2007-9, and the Lakota Warchief could gain the ability to stealth and deal 10x damage to artillery, the most expensive unit type in the game. If your opponents didn’t actively try and detect him, it didn’t really matter how fast they reacted, as they’d already lost all of their cannons. It’s Positional, but pretty low on interactivity without detectors. Which, as we discussed when talking about Dark Templars, is a pretty unfun binary.

Age of Empires 3 Great Bombard
Hope you didn’t need any of these to win.

I know it’s a bit taboo in RTS spaces, but I’d also like to take a minute to explore League of Legends(LoL)’ adventure with stealth. While it’s not an RTS, it does demonstrate some pretty interesting ways in which Positional Stealth can be a problem, with a couple of potential solutions.

When they first released characters with stealth, they instantly became problems. These characters could disappear off the map for a minute, attack someone incredibly far away, then escape by going back into stealth. Because you can’t normally attack invisible enemies, interacting with them in standard gameplay was pretty difficult. In addition, LoL has vision as a core mechanic, where players place wards around the map to see through the fog of war. Stealth characters also bypassed this, except if the ward was a “vision ward”, which could detect stealth. And the vision ward completely shut down stealth characters, because when detected, they were just weaker than others. See where I’m going with this? It’s “we put the whole power budget in this binary mechanic” again.  Your team buys the wards, they win the match. Or they don’t, and you lose. And if there’s one thing LoL doesn’t need more of, it’s getting yelled at by your team.

Eventually, they reworked stealth, splitting it into “camouflage” and “invisibility”. Camouflage makes enemies unable to see you as long as you’re not too close to them, and can last a long time. Invisibility prevents enemies from seeing you even if you’re very close, but lasts at most a few seconds. Both types break when attacking. In addition, several of the stealth-based assassin-type characters telegraph their attacks.

For example, Rengar’s ultimate ability makes him camouflaged for a long time and he jumps to his target when he attacks. But if he’s within a certain range of enemies, their screen darkens, they hear his growl, and there’s an indicator saying that Rengar is close. You might not be able to reveal him easily, but you could stick close to your teammates while he’s prowling about, making it hard for him to jump in and kill you. And Rengar has seen a TON of reworks to make him kill his targets in a reasonable timeframe, with sufficient warning. It’s a very delicate balance, because even with his stealth being provisional, it doesn’t always make the situations sufficiently reactable. But if you’re playing Rengar, you’re really aiming for that fantasy of hunting your prey.

This is all to say, stealth’s inherent ties to interaction make it a tricky mechanic to get right, even when Positional.

League of Legend's Rengar
Sneaky. But hopefully not too sneaky. Nor too not-sneaky.

In Conclusion

If you’re gonna take one thing away from this article, I wouldn’t hope it’s “Persistent = bad, Positional = good”. While I think there’s truth to that, it’s important to understand why. We’ve seen a way to make Persistent Stealth more interactive, and bad uses of Positional Stealth. It should get at that fantasy that makes stealth so cool. Ideally, should be able to do all that without feeling tacked on. But the key is that stealth should be fun to play with and play against. 

We’ve explored how Persistent Stealth can reduce units to a simple binary and constrain their designs. Stealth as a means of invulnerability frequently creates those uninteractive situations. And it usually isn’t well-integrated with the rest of the game. It’s often either oppressive or useless, depending on the presence of detectors.

We’ve discussed how Positional Stealth can solve those interactivity problems, and how it can really get at the heart of why we love stealth. We’ve also examined the dangers Positional Stealth still has, and how it can be tricky all on its own. But those dangers are still primarily concerned with losing interactivity and creating frustrating situations. 

Hype in a competitive game is found where the cool thing we want to do intersects with a system that engages everyone. So let’s make stealth hype.

2 comments

  1. So stealth is one of those mechanics I spent some time thinking over for an old RTS game design of mine (back when I was working at breaking into the games industry instead of at being an author)\, but I did come up with a system I liked quite a bit.

    First of all, I broke what most games call “stealth” into two different mechanics: Stealth and cloaking. Stealth units were invisible to radar, which was also a mechanic (expanding sensor coverage was a key part of the game), So, that little blob of color on your minimap? A stealth unit wouldn’t give that. Worse, the radar’s threat assessment (how severe that force it detected is estimated to be) would be fooled by stealth. So the minimap might suggest a medium-sized force, but it could be a lot larger, and you’d never know without gaining vision.

    “Cloaking” meanwhile, was detectable by radar but invisible to the naked eye (unless in close proximity to infantry or units with detection). But they would still be picked up by your radar and appear on sensors. You know that there’s a unit there because your sensor net has picked it up and you can see the blob on your minimap … but visually you can’t track it without detection.

    Atop that, a unit could have BOTH stealth and cloaking, invisible to anything but detection units (of which most armies had units such as infantry or vehicles that could be outfitted with them or came with them), but it would be rarer. One faction was built around units having one or both, usually the second as an active feature (so stealth, and then when stationary could setup cloaking for the nice ambush).

    Side note: The day/night cycle also played a part here, with cloaked units being harder to detect at night, easier during the day.

    Lastly, there was “Ambush.” Units with stealth or cloaking would often have a bonus ability that would trigger if they attacked units that were unaware of them. This was the “ambush mechanic.” For example, the stealth/ambush faction had units that would gain firerate bonuses during ambush or 100% accuracy for a brief period, while others would trigger a panic response in foes, causing their firerate and accuracy for those units to decrease. In this manner, a bunch of light, stealthy tanks that were waiting with camo netting (and therefore cloaked) could gain a temporary advantage over a much heavier armed and armored force if positioned properly, leveling the playing field during the ambush duration. After which, ideally, you either are capable of coming out on top, or you attempt to retreat and setup another ambush, playing like a guerilla.

    Now, the game never reached anything past pre-production, but I stand by the concept as being a way to widen the use of “stealth” inside RTS titles.

    Like

  2. Wonderful article. I’m glad RTS game design seems to be moving towards interactive play. And taking cues from MOBAs, too! They’re the innovative off-shoot of the genre, after all.

    You’ve touched on LoL, but I’d like to dive deeper into it. Most camouflage-style characters don’t have up-front burst damage. Instead, they have sustained damage or execution mechanics, plus a telegraph. This means they aren’t designed to kill a full-health character right after they pop out. Pyke has a wind-up that starts after exiting stealth for all his abilities. And it’s most significant on the stunning abilities. Evelynn also telegraphs her “stunning” ability for 2+ seconds, but it doesn’t break her stealth. Twitch does sustained damage and requires taking the time to stack a debuff to make the most of his rotation. These are creative ways to add counterplay windows against stealth while not hampering the “sneaky hunter” fantasy. One could even argue that the telegraphing reinforces the fantasy of a hunter closing in. Add to this; champions have access to several summoner spells or items that can reduce the chances of being bursted down.

    I’d say Rengar is more the exception with how front-loaded his damage and massive leap range coming from stealth. One of the harder to react to assassins in my book. Al his abilities can be cast while leaping from a bush (unlike Kha’Zix, who has one of his abilities locked out while dashing to slow down his rotation).

    Another comparison I’d like to make with persistent stealth is… Flight! It’s not uncommon for RTS to feature flying units that can only be hit by anti-air. Heck, the anti-air in Starcraft tends to be extra potent. Flight is similar to stealth in that you need a specific counter for the mechanic, but anti-air tends to be more fundamental than detection. So you can take cues from air-ground combat balance to manage persistent stealth. If you have persistent stealth, its countermeasures should be as accessible in your factions’ toolboxes as your anti-flyer countermeasures.

    Like

Comments are closed.