
Recently, I, along with designers Mike Barclay and Sam Howels, spoke at GDC Europe 2016 with the report “Creating conflict: battle design for AAA action games.” The report itself is available only to the participants of the GDC Vault, so I decided to share my part in the article.
I will consider our approach to level geometry due to how the environment conveys its
complexity for the player. We know that the standard and easiest way to change complexity is to add and combine different types of enemies. These are changes at the macro level: the more, the more difficult, and this is noticeable to the player. But what about micro-complexity rather than major changes? How can you balance the complexity without relying on the number of opponents or types of characters? In addition, sometimes a narrative can impose restrictions on certain types of characters.

')
This problem can be solved with the help of the environment that
influences the behavior of AI and the methods of the player’s combat with opponents. This option is good because complexity increases with the player's skill increase and allows you to follow him. So we can guarantee that the levels will remain interesting and will not lose their novelty until the appearance of new types of characters.

This goal is achieved by repeating the mantra “form follows function”: the form of a building or object should be primarily used for its
intended purpose . In our case, the level geometry should support the
AI behavior and influence it. At the same time, various schemes lead to different results. In this article we will consider the following questions:
- How you can create an environment that stimulates or restricts movement, and how movement affects complexity.
- How the manipulation of shelters can affect complexity without artificially changing the behavior of AI.
- How the geometry of the arena can influence the location of the enemy, and what it means for the level of difficulty.
How to create an environment that stimulates or restricts movement, and how movement affects the complexity
First, let us ask ourselves:
why should we need to influence the movement of enemies? In short, “it’s harder to get into a mobile enemy.” In our case, it is much easier to hit a static enemy than running around in a scene. Restricting the movement of enemies is useful for creating easier battles. For example, at the beginning of the game, when the player gets used to the game mechanics. On the other hand, if the opponents move a lot, this means that the difficulty increases for the player, which is useful if the narrative should be overloaded.
So why not limit AI artificially so that enemies do not move? It is better not to do this in order not to get strange behavior that is different from the one that the player has already learned. It is important not to
destroy the patterns of behavior of AI, so that the player is easier to calculate them and plan their actions.

For example, you have created a protected area filled with enemies. Let's say they guard the exit, or you don't want the player to leave without a fight. If you do not allow them to leave the zone, then you risk making it difficult for the player to understand the combat situation. For example, a player has a “go there” mechanic (a player with a throw of a stone or other object can force the enemy to explore the right place), or NPCs can explore the areas in which they saw the enemy. If AI does not react in the expected way, then it destroys the gameplay pattern (and the use of the mechanics itself).

In this situation, the player may feel deceived. In extreme cases, there may be situations when AI is not able to run away from grenades or dangerous zones, which destroys the illusion of artificial "intelligence".

How can you limit or stimulate movement with the help of the environment? We need to set up environments in such a way that they support the character classes used by the AI. For example, attackers in a
Killzone that are in a state of combat move between cover positions and select other positions only within the maximum set distance. They are also trying to maintain a certain distance to the player in order to be able to fight at medium distances. This corresponds to the type of their class, in contrast to the enemy with a shotgun (melee) or a long-range sniper. They enter melee only if the player comes close enough to them, otherwise they always try to move away for a medium range fight, if possible. Therefore, if you want enemies to move smoothly, then place shelters in the area of their movement.

If you want to
restrict movement, do not place any shelters. Then the attack aircraft will be forced to occupy one area of shelter. However, in the case of a player approaching a melee attack or throwing a grenade, they will react in the usual way, in accordance with their standard behavior. Therefore, they will not destroy any
patterns of behavior . The level map and the location of the shelters will depend on the AI
metrics in
your game.

Another way to
limit movement and advancement, both for the player and for the enemy, is to use the
“neutral zone” . This is an open space without shelter, which is dangerous to cross to the player and enemies, because they will be a completely open and easy target.

Psychologically, this cautions players from moving until the area is clean and safe. When using AI classes hiding behind shelters, their neutral zones are far from the distances to the shelters. This is a way to prevent a player from moving quickly around the level without artificial limitation and noticeable retention. For example, in the first battle of the
Killzone Mercenary introductory mission, the player’s primary goal is a pipe at the end of the zone to climb. So that the player could not run there directly, I placed a small neutral zone between the player and the front of enemies. The depth of this area was greater than the distance at which the attack aircraft was
looking for a new position for cover . This encouraged the player to remain in the original position of the shelters until the enemies are defeated. This ensured that at the end of the battle the player would look in the direction of the pipe for the positions of the enemies. The pipe was the next part of the training.

The movement of attack aircraft was limited to prevent them from
moving along the flanks , which provided the player with a simple battle at the beginning of the game. If we allowed them to go around the flanks and hide within the distance determined by the metrics, this would encourage the attackers to move more (and it would be more difficult to get them compared to static targets). In addition, they could take a more advantageous position, from which they could potentially unpleasantly surprise the player with a sudden attack. If enemies approach the player, it is assumed that their accuracy and damage increase (of course, it depends on the weapon).
An enemy entering a player from the flank is more complicated than staying in one position. An even more difficult case is the shelling of a player with longitudinal fire. “Longitudinal fire” is a military term meaning entering the enemy from the flanks, so that he doesn’t have any shelter on the side, which makes him open and vulnerable. If a player is subjected to a longitudinal fire, it forces him to leave the current position and find a safer one from which he can defend. Players often rush to a new position without the necessary prior planning, so this situation may cause them to panic. Meeting fire in combination with openness becomes a very difficult test for the player. It is necessary to encourage the player to move on, so that he does not spend the entire fight in one position, as this can be boring. Changing roles makes this case easier for the player: he has the ability to enter from the flanks, from where he can fire the enemy with longitudinal fire. This is a simple case, bringing the player pleasure, if you can cut off enemies who have no opportunity to defend themselves.
Longitudinal fireHow the manipulation of shelters can affect complexity without artificially changing the behavior of AI
One of the fundamental principles when creating shelters is the principle of
"knowledge - power .
" If you, as a player, know about the movements and position of the enemy, then you have an advantage. For example, low shelters allow the player to
track enemies at a level, because they usually move between full-height islets of shelters.

In one of the initial episodes of
Gears of War, enemies rush into the arena from the side, where they have to pass intentionally low cover. This allows the player to
track them all while they cross the zone in order to reach their shelter positions. The player knows where all enemies will be, and can
strategically plan an attack: “knowledge is power”.
Hiding behind low cover, enemies are usually at such a height that the player can see
their heads when they move. This means that when enemies move to a new position,
while still being behind cover, the player is able to see them and track their movements. In this way, you can avoid a situation in which the player does not know the position of the enemies and can be left off the flanks or taken unawares by an attack. When a player hides behind a low cover, in the form of the first and third person, he can watch over the cover and track the enemy. At the same time he is safe and, if it is taken into account by the rules of the game, a hidden position.

It is more difficult to hit enemies behind low cover, because when they attack,
a smaller part of the body is usually
open . When they look behind cover, fire blindly, or rise to their full height to make a more accurate shot, they only open half of the body. The lower half is covered with shelter. The advantage here is that such a battle for a player is not too complicated: he can see the head of the opponent, which is traditionally considered to be a single-shot kill.

On the other hand, high cover
completely hides enemies from the player - he does not even see their heads. This means that the player must either move to another point in order to enter them from a better angle, or wait until the enemy leans out from behind the cover to shoot at the player. This is, in fact, more risky, because the player must
open himself to shoot at the enemy when the enemy shoots him. However, unlike the case with a low cover, when the enemy leans out from the side of a high cover, it opens to its full height. It can also completely exit the shelter, opening fully. So it is easier to get into it than taking aim at the head. The balance here is that although the enemy is hidden when he does not shoot, he is
fully open when attacking and is a bigger target. High cover is also useful for types of non-cover enemies: they can safely move behind them and the player can lose them.

These principles also apply to the player and his location. For example, the battlements of the castle wall provide a low cover next to a high cover, creating a much more secure cover for the player. He does not have to either leave the high cover, fully opening, or use only the low cover that protects not so much, especially in first-person shooters.

The degree of openness of the enemy behind the shelter depends on the
height of the player. When fighting from above, the enemy is more open, which makes
it easier to get into it . In addition, the smaller part of the player’s body is open to the shooting enemy. From this high position, the player can also see and better understand the layout of the arena. If a player sees more, he has an advantage in battle: we return to the principle “knowledge is power”.
How arena geometry can affect the location of the enemy, and what does this mean for the level of difficulty
One of the fundamental principles of the positioning of enemies is “one cannot see into that which is not visible”. Therefore, in games, the lack of visibility of enemies means that the player can not shoot at them, and therefore, to defeat them.
The presence of obstructions in the arena not only means that the player will need more
effort to track down enemies. They can completely
interfere with tracking. Enemies will be easier to get closer to the player (and he represents an easier target for them), or move to more advantageous positions, becoming more complex goals for the player (for example, bypassing him from the flank).

After a hunting ambush in Pittsburgh in
The Last of Us, the enemy runs from right to left along the entrance to the store. The enemy belongs to the class of melee enemies and is armed with a wooden stick. He is trying to get close to the player to hit. High shelter on the left side, consisting of a car and columns, along with obstruction of visibility along the windows, prevent the player from tracking the enemy, which allows him to
approach the player and strike from the flank.

When a player is busy shooting enemies, which he sees because of low cover, even if there is a radar (which is replaced in the game with the mechanics of "listening", revealing the
positions of enemies), interference of visibility does not allow him to shoot at enemies in order to prevent them from getting closer.
If visibility interference directs enemies into a bottleneck, then this is a simple case for determining position. Imagine one corridor, even if it uses a more complex type of shelter: high shelter is combined with low shelter, revealing the minimum body area of the enemy. With regard to the "moving target" it will still be quite a simple case. This is because the player sees everything directly in front of him and he does not need to move the camera much to defeat the enemies.

When developing the
Killzone Mercenary, we created arenas, and did not make it a “corridor” shooter. So we had to add fire passes. Imagine a situation with enemies
separated in such a way that the fire passes are at a distance more than the width of the screen. Separating enemies can be a wall in the center (obstruction of visibility) or the presence of spawn points behind each of the doors (as in the example below). It is much more difficult to cope with such a situation, because the player must divide his attention and balance it between two fights. This allows the "invisible" enemy to do anything, for example, to shoot at a player without hindrance, or to move forward imperceptibly for him. Enemies can even completely change the position: turning again, the player can see that they are gone. Having lost focus on the enemy, the player can start shooting at the empty space, while the enemies change positions and freely shoot at him.



In addition, enemies off the screen are especially difficult if they are above the player. And what will be the most difficult situation? If you want real difficulties, spawn enemies behind the player! But use this trick sparingly, otherwise it may seem dishonest. Consider - the further the fire passes are placed, the greater the complexity.
Conclusion An example of a gray arena.
Summing up, let's consider an example of setting up a simple battle arena using the principles discussed above.
For example, in the story, a player must hunt an enemy unit, take advantage of him and make a surprise attack. In this case, you can use the following factors:
- Limit the movement of enemies so that they move less and it is easier to get into them.

- Create a neutral zone around the area with the enemies that impedes their movement.

- Allow the player to conduct longitudinal fire.

- Use small fire passes that allow the player to keep track of all enemies and aim at them without losing sight of them.

- Position the enemies below the player so that he can shoot down and the enemies are more open.

- Arrange visibility interference in favor of the player so that he can "disappear", hiding from the view of enemies.

- Create only one spawn point at the back (in sight), where you can track down enemies entering the arena.

In this approach, it is convenient that the
inversion of the game simplification techniques complicates it for the player. For example, a difficult case would be the following situation:
- The presence of multiple possibilities of moving the enemy. At the same time it is more difficult to get into it.
- The use of a neutral zone around the player that impedes his movement.
- The possibility of enemy longitudinal fire, forcing the player to move to the neutral zone.
- The presence of several spawn points of enemies on opposite sides of the map. The points are not within the width of the screen.
- Several fire passes that force the player to balance the focus points.
- Advantage of the enemy before the player in height.
- Visibility disturbances are arranged in such a way that they impede seeing the enemy and allow him to disappear from view.