The Making of Murky Station: Payday 2
Payday 2 is a four player cooperative first-person shooter with RPG elements that centers around robbing banks and stealing rare loot. It was released on August 13, 2013 and has since shipped over 50 DLC packs and counting. With a thriving subreddit, it has consistently been in the top ten games played on steam. Today, I wanted to talk about my adventures designing stealth levels for Payday 2 before leaving Starbreeze in January 2018. While parts of this article are specific problems and solutions for Payday level design, I made sure to discuss them in a broader sense. The skill level of this article is for junior to mid-tier level designers, if you are a senior designer some of this article may sound familiar to you.
I'll start off by saying that Payday's stealth mechanics are not perfect and can be flawed in some areas, but I wanted to focus on the decisions behind the map design, specifically for the heist Murky Station. I'll also break down how we consider using RNG (randomization), and the ways we apply it to objectives and mechanics to keep the level fresh and replayable. This map took 6 weeks to make between 2 people. My partner took the role of Level Builder / Environment Artist and I took the role of Designer / Scripter. Between the two of us, we figured out the scale of the project based on the needs of our studio. The idea was to create a small heist that took around 10-15 minutes to finish with high replayability. There's a lot to go over, so let’s get started!
Let's start from the beginning
Before we start drawing or building layouts, we make the call if we are going to create a Loud level (combat only), Stealth level (avoid combat), or Mixed style map. For the short period of time given to us, we decided to stick to stealth only. Making this decision early on helped us create better movement options for the player and focus our efforts towards balancing patrols and objective placement. We decided that the theme of the level was a small train depot run by a group of mercenaries shipping large weapons. The main objective was to infiltrate the depot and steal an EMP bomb. Keeping the objective simple and intuitive is important in multiplayer games where players can drop in and out of the experience at any point in time.
We decided to shoot for 10 - 15 minutes of gameplay. Breaking down our main objective into smaller sub-goals that could take about 2 minutes each (this is based on our extensive knowledge of payday 2). It should be noted that this time assessment will change once the player has completed the level a few times. These numbers tend to get cut by a third, or in some cases, by half. With our main objective in mind, we can construct a simple flow diagram for the heist and start to think about possible dynamic and RNG elements that can be used to create a re-playable experience.
(This is a scripting example from our editor, each entity has it's own function)
Testing your ideas before scripting them? Wait... What?
Since 90% of Payday levels are hand scripted, it's important we don't waste time building the wrong things. Testing your objectives and complicated RNG elements has to be fast and efficient. The last thing you want to do is build an entire system and find out it sucks. Most of the time you don't even need animations or even a model to properly test your ideas. At such an early stage some floating debug text will do just fine. You might be asking, what if I don't have debug text or the ability to script? When playtesting levels for Payday 2, a lot of the time we'll get a simple block-out done and then ... here it comes ... pretend we're doing the objectives.
It might sound crazy (and not everyone can get through it without laughing) but we'll have one of the designers act out the role of Bain, our mission giver, and just spout objectives at us. We'll move through the space and pretend to see guards or hack laptops and delay time based on things we expect to happen. You can basically break down how your systems might work and try out a few possibilities. For example, knowing that you might have two escapes at either side of the map gives you enough knowledge to make pretend decisions. Telling your fellow devs the van is arriving up top and pointing out where to secure loot can help you find out if a location is interesting for the escape or not.
Even though the artists might giggle, or people from the other teams walking by stop and wonder why they can't see that hoard of enemies. It really works, and can often steer the level in the right direction and prevent us from investing too much time on the wrong objectives. Now, I know this approach won't work for all studios or situations, but all I gotta say is... don't knock it till you try it...
Constructing our Sandbox Layout
Now that we've pretended to run through our objectives and have gotten used to our basic block-out, let's talk about the layout we built for Murky Station. We went for what i'd like to call "the onion approach", which is pretty much what it sounds like. You'll have multi-layered rings that give you the sense of progression towards the center (or a goal). Essentially, we use the outer layer as the player start and each sub-objective is based inside a different layer until the player reaches the main objective (at the figurative center). This approach is very useful when working with sandbox type levels, especially when the player can virtually go anywhere they want.
Side Note: We also layer our music track each time a sub objective is finished, creating more suspense and a sense of agency.
You can see that the outer onion layer is the player spawn (colored green) on the overpass which gives them a full view of the trainyard. From here they can study patrol routes, train-car positions, and possibly objective locations. The overpass can also be used by a player with a sniper rifle to mark guards in the different lanes, helping provide accurate information on guard positions for the players on the ground floor.
The next layer is breaking into the train yard through a fence around the perimeter. The fence is here to guide the player and give them a visual boundary for the "safe zone" (where no guards patrol). The next layer is searching the train cars to discover where the main goal is hiding, followed by breaking through the vault doors inside of the trains themselves. These onion layers have to be carefully managed to give the proper impression to the player. Too many layers and you might confuse the player or make them forget what they're doing, too few and you might leave them feeling unchallenged or unaccomplished.
Player Mobility is key!
Mobility is key to providing players opportunities to express themselves and make better decisions while traversing a level. I felt that it was pretty important for Murky Station to allow for different play styles ranging from slow and methodical to fast and dirty. The last thing I wanted was to force players to play a certain way or for the routes to become predictable and linear. In order to do this, I spent the first week of development prototyping and testing out different layout ideas that would maximize paths and choices for the player.
(Here is a simplified top-down of the routes in the train yard area)
It became obvious that we would need to allow players to traverse through and under the trains as they cover most of the real estate in the train-yard. Unfortunately the older train assets were not built to go underneath, but lucky for us, the nighttime setting of the level would cover up this fact. There being only 2 of us on this project, I took a crash course in Maya and cleaned up the bottom half of the trains by removing collisions and remodeling them for readability purposes.
The next challenge was to teach the player they could hide under trains and be safe. Payday players haven't been under the trains in any other heist up until this point, so we needed to call attention to that but also show them it was a safe place. Making these spaces dark and in the shadows helped create an illusion of safety but also made it harder for players to find them.
To help solve this issue we added yellow caution tape as a trim and a dim red light under the wheels to catch the players eye. These combined elements would then be used as visual vocabulary in other parts of the level to teach players something should be explored.
One of the other ways we added more routes to the level was to build a ventilation system in the lower tunnels. Leveraging the fact that this was a stealth level to create these smaller spaces, especially since they didn't have to accommodate 40+ police officers. The vents allowed players to safely view guard patrols, search for objectives, and move loot. To prototype this, I built a modular vent system using basic mock-up units that allowed for rapid construction and testing. Funnily enough, the first iteration of the vents was too small and caused players’ bodies to clip through the floor. I was able to rework my mock-up units and we settled on standing height instead of a crouching one. Once again we used yellow caution tape as our visual vocabulary to highlight the vent entrance on the wall.
Modifying the trains and vents is one of the factors that contributed to the map’s success and gave new players more confidence to explore the trainyard and lower claustrophobic tunnels. So now that we've explored the different possibilities for movement and giving the player more choices, it's time to buckle down and get our randomization system built.
Randomizing Objectives to Maximize Replayability
RNG is one of the core pillars of Payday, so every decision we make is looked at through a lense of RNG. We strongly believe randomization should be meaningful to gameplay and not just added for the sake of it. It’s important to ask questions like: was it worth changing all the cups in your level? Did you gain anything from swapping out all of your cars and buildings? Was creating a third entrance valuable to the level? Maybe one day we'll completely randomize every object in a building down to the smallest cups, but in a game like Payday I personally feel these types of things have diminishing returns and can often ruin a planned design.
When working with RNG it's important that you ask yourself as many questions as possible to start with a strong foundation, especially if you plan on finishing on time. Something I often see junior to mid-tier level designers forget is to build for scope and set priorities on their objectives. It might sound trivial, but forgetting your priorities can send you down a black-hole that eats away all of your time.
So how did we go about adding RNG into Murky Station? Breaking down our objectives, we can start to consider what RNG options are available and doable within our one month time frame. I've also labeled them with my personal priorities (low - high).
Break into the train yard
randomize breach locations (low)
Locate the Bomb Train
randomize train configurations (high)
Hack into the train
randomize panel to flip sides (low - medium)
Open the Vault
4 different vault door / key types (high)
Find the Vault keys
The map supported up to 40 hiding locations (med - high)
Secure the EMP bomb parts
2 escape locations, 1 chosen per playthrough (medium)
I focused most of my efforts on randomizing the train configurations, vault doors and key placement. These objectives were critical in influencing how the player would move through the main space and how they could tackle the same area in different ways through multiple playthroughs. In order to accomplish this, I broke down my sub-goals into digestible points of interest and isolated them into their own prefabs (shown below). Doing so allowed me to script one prefab and teleport it to as many locations as I wanted. This approach made the randomization more manageable to script and cut down the amount of bugs that might have formed if I built everything by hand each time.
Side note: We gave each one of our key / vault prefabs its own unique visual and audio so that players could identify them from a distance or listen if they were close by. Providing them with this level of feedback is critical in helping them make proper decisions while traversing the level.
Now that we have our vault doors and keys figured out, I can begin the planning process of placing them throughout the level. When placing them, each location must meet certain conditions before being finalized. The main goal is to provide the player with a challenge and also encourage them to be creative in tackling the surrounding area. Having designed the layout to have many interesting choke points and traversals, it was fairly straightforward where I could place them. Collecting the keys is one of the more RNG based objectives in Murky Station, sometimes all of the keys are in different corners of the map and other times they are all next to each other. Eventually there was a script clean up to prevent overpowered locations or terrible RNG possibilities, but overall it was a huge success for the level.
We generally kept the key locations central to the layout and tried not to place them too close to the player’s safe zones. Placing several keys along the outskirts was a nice change of pace from the main lanes, providing a different type of challenge due to the openness of the layout.
This is what the upper train yard looks like and how the keys are distributed. The lower tunnels have the same amount of keys placed.
We also used the same method for spawning the train interiors and vault doors. By creating one prefab and scripting it four times inside the level (one per vault door type) we were able to randomize the location of the players’ main goal with little effort. The engine also allows us to rotate our prefabs, giving us the option to flip the train interiors. This added a whole new layer to their configurations, since some of the interior layouts were asymmetrical.
We ended up with roughly 600 train configurations, 2000 vault door combinations, and 256 sub objective configurations. With 1 of 2 exits being chosen randomly each playthrough, this really changed what types of decisions got made by the players. It also influenced how they would flow through the level and took advantage of their diverse set of movement options.
On top of that we use non-linear objectives, which basically means you can do multiple objectives at the same time or in some cases, different orders. In Murky Station, players can simultaneously be looking for keys, searching through trains, marking guards from the overpass, and securing extra loot they find. This allows 4 players to comfortably split up to cover more ground and work off each other. A well coordinated team might have two players hacking into the trains to find the EMP bomb, while the others are looking for the vault keys. I find it very important to provide all players an opportunity to contribute towards the main goal.
Side note: With all of this randomization, you might be wondering how QA can test it all. The short answer: they don’t. We need to build efficiently to insure 90% of the level is solid, and then catch as many edge cases as possible. On the Payday team, the frontline of defense for QA is the designer making the level, It’s our job to test our own work thoroughly! The way the systems above were built would only required 1 prefab to be maintained for each example. This provides us the freedom to go nutty with the customization in the level, knowing it has a low chance at affecting our prefabs. So, as long as we build smart we can cut down the amount things QA needs to test and help speed up production.
With the objectives off to a good start, let's take a look at how RNG might affect our guard patrols and cameras in the level.
Guard Patrols and RNG
Randomization can have a large effect on how smooth or frustrating a level turns out to be. One of the things we have to keep an eye on when designing stealth levels is frustrating the player through poor patrol placement, amount of guards, and how long they pause at each location. The goal is to create a fun puzzle-like challenge, not a terrible waiting game. Bad RNG might have you sitting in a corner for one minute waiting for the guard to leave, only to have another guard take his place when that minute is up. It's our job as the level designer to help prevent such situations from happening by adjusting our timings, reworking the layout, or possibly the level’s mechanics. This is why it's so important to create a solid base for player movement options from the beginning.
Since we don't want our guard patrol RNG to get out of hand, we need to be careful about how they flow through a space. Doing this requires it's own personal attention and multiple iterations. Tilt too far in one direction and you'll end up with bare areas that have no guards, tilt too far in the other direction and you'll have too many guards stacked on each other with no wiggle room. The last thing you want is the possibility of a death chain reaction. This is caused when you kill 1 guard, only to have another guard 10 meters away spot that body... forcing you to kill that guard, who eventually gets spotted by the next, ect. In Payday 2, players have a limit of 4 guards they can kill before the alarm goes off (on all difficulties). In our levels, we have to actively manage the amount of crossover between paths and how often guards might meet.
In the first test pass for Murky Station I ended up with a good amount of coverage for my level, but the downside was that some sections could randomly get 8 guards piled up. After a bit of playtesting and redesign, I decided to break up my patrols into smaller loops and add more points. This increased the amount of coverage and kept the patrols more consistent. It also lowered the maximum guard stacking to around 4 and drastically reduced the amount of death chain reactions that could happen.
First pass patrol locations
Second pass patrol locations
(the new paths provide the same amount of level coverage with a less chance of guard over-stacking)
A fresh take on an old mechanic
In most of our stealth levels we use random static security cameras to challenge the players’ skill at avoidance or sabotage. The players have multiple mechanics in order to deal with them in a variety of ways, but we hit a brick wall when discussing options for Murky Station. Due to the hallway nature of the layout and the surrounding structures, we were left with very few options when it came to camera placement. With so few options, the cameras would be no longer modifying the level in a positive way. We also found them at odds with the design of the level, since you were supposed to be searching for a specific train car. If we had cameras pointing at it, you would be able to identify it too quickly and negate the challenge of finding it.
So how did we fix these issues? Getting rid of the cameras was not really an option, so we began brainstorming and looking for assets that might be of use. It's important the core camera functionality remain intact and also continue to meet our core pillar of randomization. We discovered an old drone asset for one of the previous levels and began prototyping a few ideas. The design we ended up going with provided us the coverage we needed, while also creating a new challenge for the players to overcome.
Each train can spawn up to two drones, which will then fly around the perimeter of the train and scan for players and bodies. Randomly throughout the level, three to four drones will be activated to begin their scan. The loop takes about 30 seconds before they return to their trains and deactivate. The cycle continues like this every few minutes until the level is finished.
On harder difficulties, more drones will spawn and they will become indestructible.
What's great about the drones from a design perspective, is that we can dynamically modify how the level gets played and prevent players from getting comfortable in using the same routes each play-through. Some players will avoid lanes with drones, more skilled players will dodge them using their movement options, and some players might even get trapped and need to think of a new routes. Let's take a look at the patrols and drones in action.
(This clip is sped up about 8x and set to the hardest difficulty to help illustrate pathing and drone movement)
Murky Station was such an enjoyable experience to work on that I still play it to this day. When you break down the objectives and how they influence one another in a co-op space, you can begin to see the bigger picture and how a well-planned level with controlled RNG elements can stay fresh and replayable. Experimenting with different types of RNG is something I find very interesting, especially when you combine it with level design. I hope my article gave you some more insight into how we build with RNG and why we consider it one of our core design pillars. If you found this article helpful, let us know in the comment section!
Thanks for reading, here is my Info :
Twitter: @generalvivi Email: generalvivi [at] gmail . com Website: www.generalvivi.com
Before you go!
If you enjoyed this article and would like to hear how we used RNG in other ways, check out Patrick Murphy's article on the Payday 2 level "Hoxton Breakout".
I also have a speedrun (1min) of the level for you to check out and a playthrough on the hardest difficulty (10 mins) by one of the pros from the community.
Fastest time 2018 (warning to lower volume)
10 min gameplay video showing off a lot of variety in the heist.
Max Payne is a third person shooter developed by Remedy Entertainment and published on July 2001. At the time of its release, the game gained critical acclaim for its use of the bullet time mechanic - a special ability that slows down time around the character. Inspired by Hong Kong action films and hard boiled detective novels, the game focuses on intense action sequences and the protagonist's internal struggle as he attempts to avenge his murdered family.
The game's story is structured under three parts, each containing several chapters. For the purposes of this article, we will take a look at Chapter One: Roscoe Street Station, from the first part of the game, and deconstruct the level progression as well as state design decisions when encountered.
1 2 3
The level begins with a cutscene of Max riding the subway train towards Roscoe Street Station to meet with his friend Alex. As soon as Max gets off the train, he remarks that “The station was drenched in gloom. Alex was a ghost nowhere to be seen. I’d have to look for him”. Although we aren’t given much information to work with, it’s enough to build a sense of mystery and give the player a goal.
Taking control over the character, we discover that our main path is blocked (1) and are forced to explore a side area (2) where more narrative is to be revealed. As we burst open the doors of the personnel room, we stumble over the body of a transit police officer (3). Once again, a quick cutscene centers on Max while he delivers his lines and sets the tone accordingly: "Death was in the air at Roscoe Street. I'd have to find Alex fast." At this point, Max pulls out his pistol and we can either return to the starting area or explore the room for hidden ammunition and health. Doing the latter teaches the player that exploration is rewarded through much needed supplies.
On our way back, we encounter our first two enemies and notice that the main path is no longer blocked. Though, If the player takes his time and waits around the corner before engaging the enemies, bits of story will be delivered by them, explaining their reason for being there or informing on the overall situation. And as trivial as that sounds, it can have a major impact on immersion and believability. Clearly this is something the developers have identified early on and implemented throughout the game. Giving the player the option to advance at his own pace goes a long way and makes for a more dynamic experience. Those who want to rush through the levels can do so. Others that want to explore and listen to bits of story can do that as well. It’s an ideal situation that satisfies both worlds.
After our first encounter, we can proceed through the main path where we immediately find two more enemies. As previously mentioned, we have the option to directly engage in combat or wait for the enemies to reveal additional information. An important thing to make note of is that despite the fact that the gameplay space is tailored around the player’s needs, the environment always feels natural. A good example is this specific bit (4), where the player is now emerging from a set of stairs and can dive on his side towards a nearby mail box for cover.
When designing a space that is supposed to represent a real life location, it's essential for the level designer to always keep in mind that everything placed in the scene must abide by the real location's logic. Of course, adding something unusual or out of place is a good way to draw the player's attention, but in general we all have expectations of what kind of objects to find in most environments. Meeting those expectations is key to creating a believable game world.
5 6 7
Going down the corridor, we hear another enemy, but this time located behind an inaccessible gate (5). Although his placement seems odd, this set-up accomplishes two things. Firstly, it creates an audio cue to draw the player forward. Secondly, it gives the illusion that the environment is much larger than it actually is. It's a simple trick and probably one of the oldest in the level design book, one which the developers have used extensively throughout the game to their advantage. If you find yourself creating a fairly linear level, simply adding a few inaccessible areas is a quick and painless way of providing some visual depth to your environment. As in real life, there are plenty of areas that we cannot access.
Continuing with the idea of guiding the player, we begin to notice even more ways of doing that. This time our direction is implied through arrow signs in combination with an enemy audio cue (6). And after encountering the said enemy we acquire a new weapon type, the pump action shotgun, as well as discover the Subway Control Room (7). Unable to access it, Max elaborates that “The security panel let off a mocking cackle. I’d need the right code”. Without knowing specifically why we need to gain access, we can nonetheless conclude that opening the Subway Control Room is somehow tied to the level progression in some way. Turning to our immediate left, we begin to descend to a closed station.
8 9 10
At this point, having also acquired the shotgun, the difficulty starts to increase as we encounter three enemies on our path. Once they have been dealt with, we find ourselves in a fairly elaborate space with two options for exploration:
Taking the path to our right, we end up in a room (8) designed to replenish the player’s ammunition and health. Going to the back of this room, we locate a corridor leading to a locked grate door. Even though we cannot open it, reaching the end will deliver additional information through the means of dialogue between two enemies situated on the other side. In contrast to previous encounters, this time we have the option to kill our enemies by shooting a nearby propane canister. After dealing with them, Max notes that "The gate was locked. I would need to find another way to get to the tunnel". This gives us a hint as to where we need to go in order to progress with the main goal.
Opting for the path to our left, towards the end of the station, we locate a personnel room, a bright yellow maintenance train (9) and a small supply room. Checking out the maintenance train, Max states that "The power to the rail had been cut. I'd have to get it back on to get the train moving". Looking to the opposite side of the train, we notice a tunnel blocked by a series of wooden boards. Putting two and two together, we must find a way to power up the maintenance train and crash though the boards to reach the level's final area. Of course, now we realize why we must gain access to the Subway Control Room. Turning our attention away from the train, we open the door to the nearby personnel room. Inside, we find a transit police officer held at gun point by an enemy (10). After killing the thug, the officer informs us that he can access the Subway Control Room and so we begin to backtrack. Having reached the security panel, the officer unlocks the door, but is shot dead by an enemy already on the inside.
Reopening the door, we notice the enemy has retreated to a secondary room. Pursuing him, we encounter 3 additional thugs, totaling 4 enemies, the most we have yet to fight at once. It's important to notice that, as we advance through the level, the number of enemies we encounter at a given point increases, but in a manner that is fluid and balanced. So far, the pattern has been to include single enemy encounters between group encounters. This way, the player doesn't constantly feel overwhelmed and has time to recuperate before a larger fight.
After dealing with the enemies, we discover a third smaller room to the back. Inside this room there is an electric panel (11) that controls the subway power lines, a cabinet with health supplies and a series of camera displays. Using the button on the electric panel triggers a green line to rise on it's display, giving the player visual confirmation that power is now back on for that specific line. Additionally, using the nearby camera display will show an image of the bright yellow maintenance train and compel Max to state that "The train lit up like a Christmas tree. The power was back on".
12 13 14
We then proceed to backtrack to the train. Backtracking again. Sometimes, and especially if overdone, this design decision can become tedious and potentially confuse players. However, when used sparingly in design and with a bit of logic, forcing the player to go back and fourth between parts of the level in order to progress can make the environment seem more connected as a whole. Backtracking can also prove to be a good way of making the most out of a given environment by squeezing as much gameplay as possible.
Once we have reached the train, we can either immediately operate it or explore the area behind it for ammunition. Manning the wheel (12), the train begins to accelerate and shortly crashes through the wooden barricade. Advancing in the tunnel (13), we encounter 3 enemies and reach the area seen previously from the locked grate door. Our only path to follow now is through a rusty door leading to the next level (14). While we didn't accomplish our primary goal in this level, we still managed to gather information about the situation, be it directly from Max's lines or indirectly from the enemy dialogue.
Despite it's ever growing age, Max Payne still proves to be relevant even today. Examining how the gameplay unfolds in Roscoe Street Station, we can only conclude that the people at Remedy Entertainment are without a doubt true masters of their craft. And for those passionate about designing single player levels, here are 10 principles that we can learn from them:
Story is revealed in small amounts to keep the player interested for more
Exploration is rewarded through useful items
Inaccessible areas can give more depth to the environment
Players that want to be engrossed in the game world are rewarded with additional information
Environments are designed with a certain logic to meet player expectations
Players are guided through subtle visual language or audio cues
Progression obstacles are designed to be relevant to the story
Intelligent backtracking uses the gameplay space to it's full potential and makes the environment seem more connected
Interaction with the environment is reinforced through audio-visual feedback
Properly balanced difficulty allows the player moments of rest and doesn't constantly overwhelm with enemies