The Battle For Control in Shooters (Part 1)
Added 2022-03-22 00:58:42 +0000 UTCOne core challenge level designers often face is getting the player and their enemies to move through a space in the way they intended. Maybe the player is running right at the enemies and mowing them down rather than methodically sneaking around and making use of side paths, maybe enemies are bum rushing the player rather than intelligently holding their ground in good locations. While some of this is obviously going to come down to how the game itself is designed, a lot of it can also be influenced by simple decisions in the level itself.
When creating a combat space, one thing I've learned to really understand is how much of the space is useful to the player and NPCs as the fight progresses. Borrowing some ideas from Andrew Yoder's great work on combat arenas, fights in shooters can be thought of as essentially a battle to control space. As the player moves through a linear level, they essentially gain more and more control of the arena. The space where the player and enemies fight then becomes the new frontline of the sight, or contested space as I'm going to call it.
The nature of the contested space at any point in a fight is what will essentially drive the pacing and overall feel of a fight. Line of sight blockers are huge, especially if the game is more cover based with hitscan damage, in driving where the player and enemies can be expected to position themselves. Taking an example from Inhuman, where both the player and enemies are very cover focused, I can generally map out where you'd expect enemies to want to be depending on the player's position.

Green - Player's Position
Yellow - Contested Space
Red - Enemy Controlled Space
In this example I'm intentionally creating a fight that's very player friendly with this large empty space in the contested region. With a lack of cover to occupy, enemies are more likely to stay back behind obvious cover and wait on the player. Once the player has disposed of them, they can move forward and now confidently have control over the majority of what's been in their field of view at the start of the fight. As they do this, the contested space moves up to another section with quite a bit of emptiness between the player and their enemies. (Rotated my view here for a better overview of the fight)

However, the enemy side has quite a bit more cover, allowing them to move around a bit more and hold onto control more effectively which should bump up the difficulty just a tad from the start of the arena.
Going over the size of the space, I can also determine a few other things that should aid in smooth gameplay. Enemy count here is largely driven by the amount of available cover. At any point I generally want soldiers to have a minimum of 2-3 pieces of cover they can use so each enemy on screen has some way to either run away from or advance towards their enemy. To ensure this, the fight only starts with 2 soldiers located near the start of the arena.
As the player kills them and moves up, reinforcements spawn and occupy the new front line created from the player's progress. It's a simple and fairly easy encounter, but it took some legitimate work to get it to a place that feels smooth. In the next article I'd like to go over how I'm using these lessons to improve some of my older arenas, and more examples of how you can shape npc behavior with some simple level geometry.