The Door Problem of Combat Design

Let’s say I’m making a level for a classic first person shooter. To start, I build an arena and add some monsters. I don’t want the player to be attacked as soon as they start the game, so I add a hallway to one side of the arena and start the player there.

doorProblem_arena.png

Here the “E”s mark enemy monsters in the arena and the “P” is the player start in the hall.

My level is simple, but I’m happy with what I’ve built, so I invite a friend to playtest. My friend walks along the hallway, enters the arena, and alerts the monsters, all according to plan. Then things go wrong. Instead of fighting in the arena, my friend steps back into the hall and fights from the doorway as the enemies funnel in. Instead of a dynamic gun ballet of dodged projectiles and swirling destruction, my friend has turned my level into a shooting gallery: dull, safe, and slow.

DoorProblem_01.gif

This is a door problem. Specifically, this is the door problem of combat encounter design. This is the problem of drawing players into gameplay spaces and pushing them to play in exciting ways.

If the door is the problem, why not make it bigger, or have the hall open directly to the arena? But the door itself isn’t the problem. The problem is the relationship between these two spaces, a problem that the player experiences when crossing the threshold, which is often a door.

If we widen the doorframe so the hall feeds into the arena, we get another version of the same problem. In some ways it’s better, in other ways worse. Even with the bigger threshold, there is nothing about the arena that draws the player in, nor anything about the hall that pushes the player out.

DoorProblem_03.gif

Before we look at some techniques for solving this problem, let’s explore what’s going wrong and why.

What Am I Really Designing?

First, the fundamentals. When we build a level for a classic first person shooter, what are we making? If we can ignore the thematic and narrative functions of a level, what is the level even about? What are we trying to build when we design a combat encounter?

Building a level for a classic shooter is not about killing scary monsters with cool guns, though this is part of their appeal. A classic shooter level also isn’t about its sequence of locks and keys. These are both means to an end, and that end is map control. As the player moves through a level, they are taking territory from their enemy and locking the level into a solved state.

This fight for territory is one aspect of map control, but there are other aspects to consider. In an abstract sense, map control is about a player developing their options while limiting the options available to their opponent. These options depend on resources, which include map position, but also health, items, and ammo. For example, if the player has health and ammo, they can press an attack through a dangerous space to a stronger position in an exchange of resources. Without their resource of health and ammo, this option doesn’t exist.

Conversely, when the player dies, it is partly because they lost the game of map control and ran out of options. Of course, first person shooters are also about attention, target prioritization, and the player’s ability to internalize gameplay patterns. When the player dies, attrition and imprecision also play a role. But as the player becomes comfortable with these fundamentals, the game becomes increasingly about map control.

For a combat encounter, map control means understanding the relationship between the enemies and the environment and the resources available. For the player, map control means reducing the number of ways for enemies to attack while also developing the number of ways they can attack the enemy.¹

Applying Map Control to The Door Problem

For my level with the door problem, what does map control mean? When my friend first stepped into the arena and alerted the monsters, my friend had a choice:

  1. My friend can dance around the arena, trusting their ability to dodge the enemy attacks.
  2. My friend can retreat to the hall where they have cover and can limit the enemies’ angles of attack.

This choice depends on several unknowns. If the player fights in the arena and enemy reinforcements arrive, then the player may be overwhelmed and should have fought from the door instead. Or, if the player lacks the firepower to kill the monsters as they approach, then the player is out of options and will die in the hallway. This choice depends on the player’s understanding of the game and the conventions of its level design.

We can describe games of map control as graphs of positions, with attention to the positions that the player can attack.

doorProblem_simpleMapControlDiagram.png

Here the player occupies node 2, controls node 1, and can attack nodes 3 and 4. The enemy occupies node 5 and controls node 6.

Now here’s a simplified version of my level with the door problem:

doorProblem_arena_annotated.png

“P” marks the player position, and “E”s mark the enemy positions. The “?”s indicate hidden information.

This abstraction shows how stepping into the arena exposes the player to more angles of attack than they may be able to manage. To successfully fight in this arena, the player would need a deep, internalized understanding of the AI behavior and game mechanics. Instead, most players will fight from the door.

Seeing Through The Player’s Eyes

Another way to diagnose the door problem is with value diagrams. These are a tool to abstract how the player perceives the level, assigns values, and forms plans.²

AubreySerr_ValenceTheory2

Here is a value diagram from Aubrey Serr’s GDC 2019 talk about nonlinear level design.

To construct a value diagram, we have to consider our game’s mechanics and how the level geometry supports or hinders them. For shooter gameplay, convex corners make strong cover; they afford the opportunity to step out, fire a shot, and step back with minimal risk. Other forms of level geometry, like deadends or killzones, can repel the player because of how they limit the player’s options to move and shoot without taking damage.

For shooter gameplay, the values of the level geometry change as the player and enemies move and fight. The values also change based on the types of enemies and the whole range of gameplay systems. If the player sees a monster that fires bouncing grenades, the player needs to evaluate the level differently; the cover that was strong against hitscan enemies is now more dangerous than the open floor space.

This dynamism invites a kind of play that Matthias Worch called “prioritization choice” in his GDC 2014 talk on “Meaningful Choice for Game Level Design”. Worch defined prioritization choice as “the complex interplay of systems that are easily understood individually, but that combine into situations that don’t have a consistent and obviously superior tactic.” This means the player gets to form opinions about the best plan for solving this dynamic environment.

That is to say, with shooter gameplay, a value diagram describes a moment of the player’s perception and evaluation. In another moment, as the arena shifts, the value diagram may be different, with new threats at different priorities.

If we apply these diagrams to my level with the door problem, we get an idea of what’s going wrong. The whole arena space repels the player with vulnerability and unknowns. But the hallway offers cover where the player can safely attack this group of enemies.

doorProblem_arena_valence.png

This value diagram tells us what we already knew. But, by thinking of the level in terms of the player’s perception and evaluation, we have a hint at how to solve the door problem. If I want my friend to fight in the arena, I need to change the level geometry so the space is more positive and inviting than fighting from the door.

Techniques for Solving the Door Problem

Now that we have the concept of map control and the tool of value diagrams to understand how the player evaluates a level, let’s look at a few techniques for solving our door problem. This isn’t a comprehensive list, but it should get us started.

Foothold of Cover

The easiest solution is to add a foothold of cover. This is a strong position to draw the player into the arena. From this foothold, the player can push deeper into the arena to fight. The only reason for the player to retreat to the doorway at this point is if the foothold is too exposed or if the enemies can easily surround the foothold and push the player back.

doorProblem_Foothold.png

Here our foothold is a simple block that provides full cover. The player can’t see the enemies on the far side of the block or around the edges.

doorProblem_FootHold_mapControl.png

From the perspective of map control, we can see how this foothold of cover limits the angles of attack for the enemies and makes the arena easier for the player to manage.

doorProblem_Foothold_Values.png

From the perspective of a value diagram, we can see how this foothold of cover draws the player into the arena.

Reward for Risk

We can also affect the player’s evaluation of a level by adding powerups and items. If we place a strong powerup in the middle of the arena, this may attract the player to risk the danger.

doorProblem_rewardForRisk.png

However, once the player has the powerup, there is no longer a reason for staying in the arena, and the player may return to the hall. Depending on the effect of the powerup, this technique is not sufficient to solve the door problem.

Another problem with this technique is that we can only give a powerup to the player every so often. If the player in the hallway is still receiving the benefits of a previous arena’s powerup, then the powerup in the new arena offers little of value.

Hidden Information

In games of map control, one tactic is to divide and conquer. We can encourage this tactic by partitioning the arena into layers. Once our arena is divided, there is no longer a position that can see everything; the player has to keep moving to be aware of their enemies.

doorProblem_HiddenInfo_A.png

The walls that hide the information also function as islands of cover that may attract the player into the arena. As the player alerts the enemies and combat begins, these walls become options for the player to control while fighting.

In a layout like this, information becomes another resource of map control. The player can spend time and positioning to gain information, or they can pay the opportunity cost of information to stay where they are. Even when there are no monsters in a dense, partitioned arena, the player may feel apprehensive about the hidden information and feel drawn into orbiting the space to control that information. In terms of a value diagram, this apprehension is an average negative with pockets of positive space at the cover corners drawing the player in.

doorProblem_HiddenInfo.gif

Hidden information also discourages the player from retreating. Here, if the player retreats to the hall, they are giving up map control to an unknown group of enemies; there may be more monsters in the arena than the player can survive by fighting from the door. Retreating gives up the options to improvise as the hidden information reveals itself.

AI Leashing

One aspect of the door problem in my level is that the enemies rush toward the player and limit the player’s movement. We can modify the level geometry of our arena to keep the enemies at a distance on islands of territory, like leashing a dog to pole. This means the player has to go on the offense instead of letting the enemies funnel into the door.

doorProblem_LeashAI.png

With classic shooter levels, the easiest way to leash enemies is with height differences in the floor. Depending on the specifics of the game, the AI may not be able to drop down or climb up from a height greater than a step, which means they are stuck on the island and can only attack. With modern games, we have more tools to affect AI behavior with zones, defense volumes, path weighting, and one-off scripting.³

As with the reward for risk technique, leashing AI is not sufficient to solve the door problem. This is a technique to use in combination with our other techniques for drawing the player into the arena.

One Way Paths

We can also use more forceful techniques to make the player fight in the arena. We can require the player to drop down, or we can close the door behind them. We could have the player enter the room through a one-way elevator, or use a teleport.

For modern games, we could play a cutscene and take the moment to develop our characters and remind the player of their goal while we gate off the previous area of the level. But, for classic first person shooters, there is an expectation for secrets and rewards for exploration. In this older context, one-way paths break conventions and deny player agency. When using this technique in this context, open new routes for backtracking or create loops in the layout.

Putting it All Together

Now that we understand the problem and have some techniques to solve it, let’s put it all together.

doorProblem_all_together.png

Without changing the number of enemies, or drastically increasing the size of the arena, I applied several of the techniques:

  • Footholds of cover to draw the player in before the enemies are alerted, and to give the player positions to control.
  • Hidden information and AI leashing to divide the arena into layers for the player to fight through.
  • Reward for risk with the super shotgun, to draw the player in, and another with ammo and health behind some cover.
  • One way path with the drop down, so the player can’t retreat to the door and has to commit to the arena.

DoorProblem_solved2.gif

Conclusion

With my example level throughout this post, this may sound like a new mapper’s problem. Of course an arena needs cover! Of course we should divide arenas into layers of hidden information!

But this door problem remains relevant. My most recent map for Quake suffered from the door problem, and it wasn’t the only one. With each new level I make, and each new combat encounter I design, I think about how I am drawing the player into the space and how I am addressing the door problem.

As a designer, I want my players to interact with the deeper game of map control. I want to offer prioritization choices and opportunities to form plans and tactics instead of reducing gameplay to a shooting gallery.

I hope this article will help you identify door problems in your own work. And I hope some of the techniques I outlined will prove useful in overcoming those problems.

Thank you for reading,
-Andrew

Footnotes and Further Reading

[1] If you want to understand the concept of map control better, I recommend watching the Rapha versus Cooller match in Quake Live: https://youtu.be/XdkDjsBiO58?t=155. What appears to be a game of reflexes, attention, and precision, becomes a game of tactics as well. Although this is a multiplayer example, the concept of map control still applies. The main difference is that we design singleplayer combat encounters to be solved, similar to what chess problems are for chess.

[2] The concept for value diagrams began with Randy Smith’s GDC 2006 talk “Level Building for Stealth Games”. I first learned about these diagrams as “valence theory” in Robert Yang’s “Dark Pasts (Part 4)” analyzing the level design of immersive sims. More recently, Aubrey Serr adapted Smith’s diagrams to action game design in his GDC 2019 talk “Radically Nonlinear Level Design”.

For more thoughts on how player perception affects their movement into an arena, check out Blake Rebouche’s GDC 2018 talk “Balancing Action and RPG in Horizon Zero Dawn Quests”. Especially of interest is about 15 minutes in, when he describes the bunker sections of the game.

[3] For more on these modern techniques for AI combat encounters, check out Matthew Gallant’s GDC 2017 talk on authored and systemic AI in Uncharted 4.

 

7 thoughts on “The Door Problem of Combat Design

  1. I’ll preface this by pointing out that what I’m about to propose is not easy to accomplish and also is not a level design issue, but:

    Could you not also solve this problem by having the enemies use better tactics?

    It’s rather foolish of them to funnel through that door one at a time to be mowed down by the player. Perhaps it would be better for them, once alerted to the player’s presence, to take cover in the room, making ready to fire on the doorway when the player enters.

    This would eliminate the problem of the player hanging back and killing them one at a time, because it wouldn’t happen. Also, it would give the player a powerful incentive to move forward into the arena: they won’t make any further progress in the game.

    I suppose in practice, this will look a lot like the “AI leashing” technique you describe.

    1. Yep! My post is mostly about classic FPS level design like Doom, Quake, and even Half-Life, which all have simple, exploitable AI. With modern games, we have more techniques available with concepts like cover nodes, defense volumes, and AI zones. These work similarly to “AI leashing”, but they’re more flexible. I’d recommend watching Gallant’s GDC talk (linked in the footnotes) for more on the modern techniques.

      We can still get a door problem even if the AI hang back in the distance, though. If the AI can shoot at the door, and the player has no foothold of cover or any other reason to move into the arena, we may still have a door problem. This all depends very much on the specific game mechanics though. I hope that clarifies things!

  2. This is a nice breakdown and I like it, I like that you used level design as a way to fix the problem. Another way to fix it is more enemy types. If you have a shielded “melee” type enemy that will always charge the player once detected you can then give some smarts to your ranged enemies to let the melee unit go first and then ranged follow close behind. this would result in the player getting pushed back into the start point unless they use the time given to break into the intended battle point as the extra room will give better chances of survival. It all depends on how frantic you want the battle.

    1. When all you have is a hammer, every problem looks like a nail :D

      You’re right that we could adjust AI and game mechanics to reduce the door problem. But keep in mind that there are versions of the door problem across a lot of different games. A game like the new God of War is very different from the classic FPS level design I referred to in my examples, but they also have to worry about the door problem in their layouts.

  3. this is a fantastic view into a map designer’s mind. I’ve been wondering how this is done and why some games feel like they have harder fights even though the enemies were “lower level”.

  4. This was one of the classic problems I encountered when designing FPS singleplayer & coop levels. This problem is particularly dangerous for coop games since you might not be able to assume that a player must stop shooting through the door (ex. reloading). The ability to continuously lay down fire through a chokepoint is highly effective and thus level designs must discourage that strongly.

    I think this is actually one of the strongest reasons why classic Doom levels are designed the way they are. You will still find areas where there’s a chokepoint that players can dance behind, and that’s ok as you don’t need to make every space a complex arena. But the majority of your main encounters will have several of these techniques in play. Doom is also pretty notorious for having objectives in a space that dramatically change the environment — Walls rise or drop, enemies are revealed, the floor falls away and now you are standing in damaging lava.

    There’s also some interesting art aspects to this design. Many of the classic SP FPS levels are designed in a way that evokes normal architecture but clearly no real space would ever be designed with so many porous connections. This is actually a big challenge if your game’s artstyle is more ‘realistic’ as well. You must communicate verisimilitude in your visual language but normal architecture of distinct rooms & corridors works against the porous design that makes for dynamic combat.

  5. I remember one time watching a playthrough of Dead Space games and basically the player would break the gameplay entering a door to spawn enemies and then staying with that door open (continously re-opening it if needed) or returning to the previous room when in trouble making the AI not following you anymore (maybe they re-enter a vent but cannot go to your room or you return back to their room because you constantly switch at the door sides. Resident Evil type games have this issue because are room based but at least with the classic titles you could have the penalty of re-entering the same room you exited with the enemies jumping at you because it remembers their last position :P
    Another interesting thing related to this i think it’s using range weapons instead of melee. You see how with Souls games they really try hard to minimize the use of ranged attacks, and how safer and powerful those can be when the player can maximize their potential (even within their constrains, even with Bloodborne firearms are not working like in shooter games).
    Another idea i’d use for the door problem is limiting the effective safety of staying there. For example instead of an opening like that i’d cover it with a wall and have two (or more) smaller exits to the large area. The user would stay on one of the openings because it’s not possible to back to having in check all of them but enemies could go through the other openings and attack from the side, or filling that place the user is in. As a fan of Heretic 3D i’d take the gargoyles idea and have holes on the top of that wall too and some enemies entering from the top. Playing that game at the hardest difficulty i see that often is better going to open areas and having at least the back covered while seeing on the ground and sky level instead of staying on cover because there’s a point when there are too many enemies coming at you and you cannot dodge every projectile (hitscan attacks would help you a bit more on cover).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s