This is the first essay series for Signals and Light, and it provides an overview of enemy combat design in action games. It is written from the perspective of a AAA game designer who works with enemies in action games and aims to pay it forward with what he’s learned.
The fifth part of this series explores how different kinds of action games handle simultaneous enemy attackers. It covers…
The spectrum between games with greater and fewer simultaneous attackers, dividing them between those that do and don’t have attack managers.
How games without attack managers approach making gameplay coherent.
And an explanation of simple and complex attack managers and why they are used in specific game contexts.
As established in Part 1, enemy attack cadence is divided into four pillars. The third Pillar of enemy attack cadence is CONCURRENCY, which refers to how many attackers can attack a target at the same time.
(See Part 2 for a full explanation of the enemy attack breakdown.)
Concurrency is determined before each attack actually takes place. It’s not PART of any single attack, taking place during the Assignment of Attacker Role step.
As games and game technology evolved, more opportunities arose for games to spawn more enemies performing more complex behaviors, and this was when enemy attack concurrency began to become vitally important to combat design. The term “attack tickets” defined in Part 2 of the essay helps to understand how games design their combat around this pillar. Whether or not a game even HAS an attack ticket system is vital to clarifying its identity within its subgenre.
V-A - single attacker games
If scaling from the smallest to the highest number of enemies attacking the player at once, obviously 0 is invalid, so starting with 1…
Since this essay ruled out fighting games from the discussion, there are actually not many well-known games where the player LITERALLY fights only one enemy at a time, and even the few that exist often break that rule. In these games, usually, the enemy attack cadence is distilled down to timing and proximity, with concurrency being irrelevant and direction becoming largely irrelevant as a result. The combat design is either a literal duel or some kind of interesting combat-like challenge between the player and the entity they’re dealing with.
Games focused EXCLUSIVELY on dueling are generally PvP games, and this probably says something about what most people find fun to play and create when it comes to enemy designs and player toolkits. Once developers make combat about dueling, the player expects a single enemy to be very engaging in its own right for more than just a few seconds, which implies that the enemy has to be a mini-boss or a boss in terms of development and behavior complexity. Even in games that offer this approach generally speaking, they often break the rule of only having one enemy at some point in their runtime.
V-B - dueling attacker games
There are a couple of games that basically fall into the previous category a lot of the time, but it is still possible for multiple enemies to attack the player at the same time. In these games, the focus is generally on 1v1 dueling, but other enemies can interrupt duels depending on the player’s proximity to them. Developers create cadence systems in these games to give priority to the closest proximity attacker, and the player can use this to their advantage to position themselves to manage a single enemy at a time and lower the likelihood that a second or third enemy will be able to gain the ground to interrupt the player’s current duel.
V-C - free-attacker games
The next two approaches are a bit confusing to assign terms to, as there isn’t really language that distills the differences between them. The first obtusely named category is “free-attacker games.” In these games, there are few to no higher-level systems orchestrating the rate at which multiple enemies may attack the player—the attacks are “free” because no system assigns them a “cost” to limit them. Every enemy has its own individual rules for when and why they would attack the player, usually boiling down to proximity and cooldowns between attacks. If there is a horde of enemies around the player, all of them will make decisions as to whether to attack independently from one another.
These games manage concurrency through encounter and level design. Either designers place the enemies in such a way that triggering too many active attacks against the player is basically impossible, and/or devs design the game such that the player can easily manipulate the enemy positions in order to wrangle a manageable incoming attack concurrency themselves.
V-D - attack-ticketed games
Next, “attack-ticketed games” are those in which there is some form of attack ticketing and/or other concurrency management systems. (Remember that for more information on how attack ticket systems work, refer back to Part 2.)
These games gate the total number of attacks that may be active against the player, whether by making all attacks in the game require one ticket or by making different attacks have different ticket values by attack type or by situation (such as a strong attack costing more tickets than a weak one). Sometimes ranged attackers and melee attackers don’t use tickets in the same reservation slots, allowing a fixed number of both to harry the player simultaneously.
These systems allow combat designers to author the player combat experience into something manageable, and they’re often used in games with encounters that have between six or more active enemies. Every enemy is meant to be a valid threat at all times, but if every enemy actively attacked simultaneously, the player would quickly become frustrated. This is usually because individual enemy attacks are varied, complicated, and, most importantly, dangerous and able to interrupt the player.
In descending the pillars of enemy attack cadence in order of importance, this essay also ASCENDS them in order of how difficult it is to know exactly what a game is doing to manage them. A designer can learn about attack tickets working in the game industry, but developers don’t even use the same terminology within the industry to account for what is now a widely employed concept. Even knowing how attack tickets work, it’s impossible to know how a specific game actually uses them without the developers explaining them outside of the game. Some games make it easier to notice the obvious ticketing that’s happening, and some make it clear through their difficulty options that more frequent attacks from more enemies become scaled with difficulty, but some games that probably use ticket systems might not seem to be doing so because the player is getting attacked very often regardless.
V-E - horde attacker games
The last approach is games where the player is fighting hordes of enemies. In these games, there is likely also a ticketing system along with other cadence systems to control the number and frequency of incoming attacks. The difference is that horde attacker games do not intend for the player to parse INDIVIDUAL enemy attacks often, as the assumption is that there will be a large number of concurrent attackers at any given high-stress moment.
A popular topic in AI development that some gamers have heard of is the “AI Director” used for the encounter design of Left 4 Dead 2. Valve created this system to dynamically handle the pacing of missions in a way that makes every replay of a level feel fresh. Based on explanations of it, it appears that the AI Director includes concurrency and timing systems that manage what enemies can attack each player based on a level of “stress” the player is experiencing.
Even in games where the combat intention is for a group of players to become overwhelmed by literal armies of enemies, the most refined games of this type have systems to make that experience easier to understand. Another tool these games use is making basic enemies incredibly simplistic and predictable, only raising the complexity and challenge with regards to special enemies that have clear call-outs and ease of discovery amongst the larger mobs and take precedence as an active threat.
V-F - concurrency and level design
The number of enemies that can attack the player at once creates specific expectations for how the player approaches individual enemies and groups of enemies, which in turn impacts how the player moves through the level. Of course, the number of enemies per square meter of combat arena also has a pretty large impact on how developers design levels, and encounter size is correlated with attack concurrency. After all, if the game spawned forty enemies and only three of them could attack at a time, it would look pretty strange. Therefore, devs have to drive a stake in the sand relatively early in development regarding how many enemies are even going to be in a single arena, and if there are reinforcements, where those enemies will come from.1 These decisions have impacts on the types of level designs created to support combat.
V-G - discussion: an army of possible approaches
THIS ESSAY PROPOSES…that of all four pillars, concurrency is the most complex and varied in its own right. The systems that manage it can change enormously across subgenres of action games, and a player can find different concurrency systems at play even within similar products. Whether or not a game has any concurrency management systems at all not only massively influences the feel of gameplay, but this also changes the balance of the game by quite literally gating the overall damage per second of the enemy characters.
Concurrency management happens in the layer of AI where the tools are completely different across dev teams, and the nuances of specific tools can change what elements of the gameplay the designers can tune and how much control they have over the final experience. For instance, a concurrency system can be so complex that it has attack tickets as well as a priority-driven attacker-assignment system, where the latter system determines which specific ranged and melee enemies can attack the player based on distance, camera angle, the damage between enemy and player, the amount of time an enemy has been in a hit reaction, and more. Then, of all of the enemies who are allowed to attack based on those rules, they still won’t all attack at once because they still require attack tickets to do so.
On the opposite end of the spectrum, the less the designers control the concurrency cadence of combat, the more immediate combat can feel. In such games, when executed well, the player can have a MUCH clearer intuitive sense of the rules under which the enemies are going to attack, and there is likely fundamentally less chaos in the arena in terms of multiple attackers juggling their attempts to attack, which can make everything cleaner to parse. The best examples of this are in Fromsoft Souls games, where, at times, a game will throw a dozen enemies at the player, but players rarely call these encounters out as the most difficult to manage or understand (reserving those concerns for boss fights).
The last interesting point here regards dueling versus group combat. When games simplify concurrency down to 1v1 dueling, this becomes a great lens through which to distill the fundamental combat loop to its most essential form. However, 1v1 combat is always a VERY different game feel—boss encounters aim to highlight a contrast between fighting one immensely strong enemy versus many weaker enemies. For games that feature both, the ability to balance these two ends of the spectrum may be one of the largest signals of mastery, revealing whether the developers tightly and cohesively designed the player and enemy toolkits or whether they lost or forgot something in the equation of the overall combat design.
This also has to be done early because modern AI systems can easily get so computationally expensive that the game must limit the number of enemy AI running simultaneously, and some teams don’t have the resources to figure out how to pare things down.