ARKHAM INTRUDER

Mod/Map for Intruder (SuperBoss Games), 2022
Steam Workshop

Description

Intruder (SuperBoss, 2019) is a multiplayer tactical stealth game where one team (the titular intruders) tries to steal a package from the other more well-armed guard team. One night, while playing a private match with some friends, we started a self-imposed gamemode wherein one team would pick up armor but could only use their fists, while the other team could use guns but not armor. It was pretty fun, but it left me with a lingering question: What if Intruder was Arkham Asylum?

The result was Arkham Intruder, a custom map where, through some tweaking of player values and shader trickery, one player is the copyright-safe "Intruderman": a deadly predator capable of picking off the other team from the shadows. Meanwhile, the rest of the players are heavily-armed goons loyal to the nefarious Jokester. Using gadgets and stealth, the Intruderman must take out all the goons in order to keep the city safe.

Putting the Arkham in Intruder

In order to faithfully recreate the Arkham experience, I needed to uphold a few key points. Firstly, the Intruderman's advantage had to be stealth. Just as in the Arkham series, while you may be able to take some fire from enemies, you'll go down quickly if you're caught out in the open. Secondly, the goons need a reason to move around the map. Because the Intruderman isn't a bullet-sponge, there would need to be reasons for the goons to spread out and move as they do in the games. Lastly, and most importantly, being on the goon team should be scary. After all, if we can't replicate the feeling of being that last goon on the map wildly firing at shadows, then what's the point? For authenticity, I also decided I would be adapting a specific map. Namely, the Predator Challenge Map "Natural Selection" from Arkham City.

In order to faithfully recreate the Arkham experience, I needed to uphold a few key points. Firstly, the Intruderman's advantage had to be stealth. Just as in the Arkham series, while you may be able to take some fire from enemies, you'll go down quickly if you're caught out in the open. Secondly, the goons need a reason to move around the map. Because the Intruderman isn't a bullet-sponge, there would need to be reasons for the goons to spread out and move as they do in the games. Lastly, and most importantly, being on the goon team should be scary. After all, if we can't replicate the feeling of being that last goon on the map wildly firing at shadows, then what's the point? For authenticity, I also decided I would be adapting a specific map. Namely, the Predator Challenge Map "Natural Selection" from Arkham City.

TECH. ART:
Detective Vision & Schrodinger's CCTV

The major constraint on the project was that it had to be within Intruder's map making guidelines. That means I couldn't do anything outside of shaders and map edits- so I'd be able to make something like a trigger, but nothing more complex than that in terms of game logic. This was an interesting constraint because it pushed me to consider exactly how far I could stretch the tools I'd been given. 

I decided a good start would be the most recognizable and essential part of any Arkham game: Detective Vision. There's only one problem: basically, all the mapmaking tools for Intruder are designed such that the map creator can't mess with the server or client side individually, since that would obviously cause problems. The initial, naïve solution was to simply have a trigger in the Intruder spawn which would turn on detective vision, but of course, this trigger (being replicated on other clients) will also turn detective vision on for everyone else. Therefore, detective vision would have to be initialized in a way that executes purely within shaders.

I took inspiration from the map Estate Night by Steam user ActionMan, which features a similar asymmetrical hook where one team defends a house at the titular time of day, and the other tries to break in- the catch being the Intruder team is equipped with night vision goggles that the Guard team doesn't get. I contacted ActionMan through the Intruder official Discord, and they were nice enough to divulge their client-side secrets. So, the final version goes a little something like this:

The hack relies on security cameras- specifically security camera culling. For saving graphical resources, it would obviously be silly to have all security cameras rendering their feeds all the time, so instead, the game only renders cameras when the client is standing at a monitor. This is our bread and butter. We set up two security cameras outside the map, each looking at an unlit material showing a solid color. In our case, one is green and one is red- though it doesn't matter which colors you choose. In fact, you can do more than two cameras, too- for instance if you wanted to have the intruder have detective vision, the goons have normal sight, and maybe a couple of random goons have thermal vision. All that matters is the colors you choose are exact and unique.

 Now, we place "monitor" zones in the spawns of the Goons and of the Intruder. We also set a timer to deactivate these zones a couple seconds after the round starts. We pass what the cameras see to a render texture, and then pass that render texture into our detective vision parameters. The "Schrodinger's CCTV" hack is born! When a player spawns, no matter what they will immediately be inside a CCTV monitor zone connected to either the Intruder camera (with the green cube) or the Goon camera (with the red cube), which means one color or the other will be written to the render texture since we started observing it (just like Schrodinger told us). Because the rendering of camera feeds only happens on the client side, we can now pass limited client-side information into shaders! 

An example of Detective Mode in Batman: Arkham Knight
The hack in action: a camera pointed at pure green outside the map.

TECH. ART & DESIGN
AFRAID OF THE DARK

Coming back to my core tenets for the project's design, I had to solve a couple of big problems. Firstly, anyone who's ever played an asymmetrical game like this (such as The Hidden mod for Half Life 2) knows that the dominant strategy among the Guard team is usually to stick in a big pack and stay in one spot with your guns pointed at any and all entrances. The Hidden attempts to solve this issue by giving the Hidden player a grenade ability with only a couple uses, which does quite a lot of damage and can bounce off walls. For the most part, this works- but while I did give the Intruderman concussion grenades (which have reduced damage and mostly just knock over guards), I felt like simply giving a strong counter wasn't a good way to incentivize the sort of "Arkham" gameplay I was looking for. After all, in the Arkham series, goons almost never stay still- since that sort of gameplay just isn't very fun- so I needed to find a way to do the same, but in multiplayer with real human beings.

The second big issue was balancing the Intruderman. On one hand, the Intruder can't be too strong, or the Goons will take more drastic measures to try and "cheese" them out of necessity (i.e. grouping up in defensible areas) and the game will be less strategic and less fun for everyone involved. Additionally, if the Intruder is too "tanky", then it de-incentivizes going out and hunting them since you'll likely just chip away at their health and then get taken out. On the other hand, the Intruder needs to be a force to be reckoned with. The players on the Goon team need to mentally exist in a kind of constant cognitive dissonance wherein they have both unlimited confidence in eliminating the Intruderman, and are simultaneously extremely afraid of the Intruderman (just as they do in the Arkham series). 

My conclusion was that I needed a way to make the guards each individually capable of killing the Intruderman with relatively few bullets, while also giving the Intruderman massive advantages in terms of situational awareness and map traversal. I started with the Intruderman's actual stats and character controller changes (or at least as much as I can within Intruder's map maker package). I muted his footsteps unless sprinting or jumping, made his jump height about twice as high, and gave him unlimited balance (which means he can't be ragdolled through getting shot or blown up). Taking a page out of stealth game design, I also made his crouched movement speed a little faster than normal walking speed- so if he were sneaking up on a patrolling guard, he would be able to catch them.


The map would be kept as dark as possible in the rafters, to simulate the Arkham-style hiding above the enemy that the series is known for. Everywhere else, lighting is divided into colored zones: Blue, Red, White, and Yellow. Around the map (though never in their own zone) are scattered circuit breakers- each with a light corresponding to one of those zones. If a breaker is either interacted with by the Intruderman, or hit with explosive damage (by either team), it will turn off the lights in the corresponding zone and the Goon team must interact with it to fix it.

One of the most dominant strategies in The Hidden was for the Guards to all stick together in one large group, covering entryways and making it difficult for The Hidden to attack them. The solution The Hidden takes is to give The Hidden a grenade with limited uses but extremely high damage, which also heavily blurs the vision of those it hits. While this works somewhat, it is, I believe, treating the symptoms. The truth is, the Guards aren't hiding because they want to do a "cheese" tactic, they're hiding because The Hidden is simply too powerful in the context of roaming the map. With their high speed, extreme jump height, and deadly ambush attacks, a Guard would be putting themselves at a huge disadvantage to explore the map and hunt down The Hidden. Combine this with the fact that The Hidden can devour defeated Guards to regain health, and you now have another reason to stick together in one place (since you can guard fallen comrades and prevent health regeneration). The issue emerges, however, that roaming around-style gameplay is the most fun way to play, and the "camping" gameplay is like pulling teeth. 

With learning from these mistakes in mind, I go back to my main design: the Goon team should have the confidence of a Goon who thinks they can kill Batman. So, here's where the breakers come in. At the beginning of the match, everything is turned on and the Goon team has complete domination of the map. Unlike The Hidden, the Intruderman has no active camouflage effect- and is thus extremely visible in the light. I also consciously designed the custom skins for the Goon side to resemble ripped prison uniforms with stolen police vests, giving them a much different color palette than the Intruderman and thus eliminating any possibility an enemy would be mistaken for a teammate.  

The Intruderman has one advantage in the light, though: they are the only one who can access the ventilation system. This allows them to crawl around the map with impunity, though just like in the Arkham series, these vent systems are often isolated to themselves and the Intruderman must exit and enter at different points frequently in order to traverse the map. Vents also appear opaque from the outside, and transparent from the inside (pictured) which allows the Intruderman to plan their moves without alerting Goons. Just as in the Arkham games, however, if the Goons believe the Intruderman is hiding in the vents, they have options to flush them out. Firstly, I masked the vent's collider such that it does not block the Mirror Cam tool that every Guard is equipped with. Therefore, Guards can check the vents with a camera, but it will leave them vulnerable to attack since they won't have their gun out. Secondly, and perhaps more importantly, I did the same for collision with bullets, explosives, and motion sensors. Thus, Guards can flush the Intruderman out rather easily- but will expend resources to do it.

Using these vents combined with a high crouch-walking speed, the Intruderman can navigate the map in a relatively safe and speedy manner- though a skilled Intruderman won't want to stay there, since Guards will eventually catch on. Instead, they'll want to start hitting breakers (which they can see through walls at all times) to plunge the map into darkness. In the dark, the Intruderman has a huge advantage. They're extremely hard to see, and can easily ambush Goons using their high speed. Even when Goons stick together, the chaos of a sudden attack combined with darkness can make defending difficult, especially when you take friendly fire into account as well as the game's blinding, strobe-like muzzle flashes. Since breakers are never in their own zones (and are oftentimes on the other side of the map, or at a different elevation), it is incentivized for the Goon team to stay mobile and split up to keep the map in the light. The Intruderman is also armed with Remote Charges, which can be used by clever players to orchestrate simultaneous power outages in multiple zones at once.

If all else fails and the Goon team is still camping, darkness or not, the Intruderman is armed with their own "batarangs"- bouncy fluorescent grenades which never explode, but can rebound off walls and knock enemies over. If the Goon team is protecting breakers too effectively (which is extremely hard given the map's design and vent placement), the Intruderman can use their Smoke Grenades (which they can see through with Detective Vision) to create some artificial cover and swoop in.

The hack in action: a camera pointed at pure green outside the map.The hack in action: a camera pointed at pure green outside the map.

Conclusion

While not every design goal could be perfectly achieved (due to map making constraints within the IntruderMM Library), I still believe the map is, on the whole, successful in its design. In observing players on public servers, I noticed that people were very quick to embrace the persona of both the Intruderman and the Goon- which added a fun roleplaying dimension to the game and encouraged the most fun methods of play even further (i.e. roaming around, fixing breakers, and hunting the Intruderman). Additionally, the game's proximity voice system did a lot for immersion. It's genuinely extremely unnerving when you're on the Goon team, the map goes quiet, and nobody is responding on the radio. At risk of repeating a meme, you really feel like that last guard standing in an Arkham game.

In terms of failures, or things I would improve if I were to do it again, I think the Grapnel interaction (which is a simple grapnel gun icon at the Intruderman's spawn that they can use to essentially teleport to the other side of the rafters) could have been better. Almost no players used it, since being atop the gargoyles leaves you exposed as well as at risk of falling into the most easily-patrolled and well-lit area of the map (the yellow zone). Also, the floor vents are a nightmare. I wanted a way for the Intruderman to silently exit them, but the issue is, you have to jump to get out- which makes noise. I tried putting an invisible ladder inside them, but that only made them jankier and less intuitive to use. The only other big issue I have in retrospect is a strange one: the floors on the bottom level are too specular. Yes, this seems like a strange gripe, but it's true- not because it looks unrealistic, but because the player position-based specular highlight on the floor can silhouette the Intruderman even when they are in complete darkness. 

For things I would change, or features I would add if I were not constrained by Intruder (i.e. if I were developing this as a full game), lighting would be first on the list. The current Detective Vision is basically a shader that selectively cranks up the gamma on the darkest areas on the screen, which is fine for Arkham Intruder, but I would love a Detective Vision which actually shows the darkness level of an area. Intuitively, this could be done in an Unreal 5 shader by taking the regular color output, subtracting out the base color of the surface being looked at (leaving you with only lighting), and then manipulating that to show either normal vision or low-light enhanced vision through a simple comparison.

To wrap up, I think Arkham Intruder's use of Intruder's less "gamified" mechanics (e.g. that you hide in the dark by simply hiding in the dark, not through a prompt or explicit user action) dials up the immersion and skill of the game as well as making it a fun game to play with friends. There are a lot of small aspects I would change (vents), but I think the map has been more or less successful- currently sporting the #12 Most Popular spot for Steam Workshop in the last year, and for the week of release, the #2 spot. I'd love to play more with asymmetric gameplay in the future, and had a lot of fun designing this one.