Scaling an encounter to support different numbers of players is generally a question of resource allocation. If we have a small number of these encounters in the project, we can do most of this by hand and spend more effort on each one. World of Warcraft's old raid system where raids supported only 10 or 25 players are examples of such where tuning and mechanics were modified to specific player numbers. However, doing this for one to eight players (or, as it stands now in WoW anywhere from 10 to 30) means eight balancing passes for every encounter. That's far too much work to do in any reasonable amount of time. This means we need to think about building a system of rules to do this for us quickly and easily.
Usually when we're talking about scaling an encounter, we have a number of dials we can adjust, as you said. Here are a few of those numbers
- Enemy health
- Enemy damage per basic hit
- Enemy base attack rate
- Enemy special attack cooldown
- Number of targets an enemy's normal or special attack can hit
- Whether/when an enemy can use a particular move/mechanic
- Amount of navigable space for an encounter
- Enemy enrage timer
- Debuffs on the players
Some of these are more easily scaled, like health, damage, debuffs, etc. while others like specific attacks and cooldowns often require more careful balancing. For enemy health, we consider the amount of damage per second we expect per player and multiply by how long we want each enemy to live, then give a little extra buffer (e.g. additional time for players dodging enemy attacks). For damage per hit, we consider how much health and damage mitigation players should have and how many hits we want them to be able to take before death. For debuffs and cooldowns, we consider what percentage of the encounter time we want the players to have to deal with debuffs or cooldown abilities. It really helps to think of the players as a scalable percentage for the enemies to affect, rather than specific numbers.
If player healing is a role that needs to be handled, it makes tweaking the encounters more difficult since we cannot always expect there a healer to be present. In such situations, we can potentially provide an NPC healer or other environmental elements like interactables or consumables with cooldowns that provide enough healing for the fights. Our goal is usually to make healing and health management an additional task to be considered by the players during encounters, even while solo.
There's a lot more depth we can go into on this - tailoring action set piece raid boss fights in World of Warcraft is very different from doing a broad tuning pass for a squad with variable size in a game like Call of Duty Outbreak - but this should explain the broad strokes of how a system designer approaches this kind of thing. We have a set of different numbers we can adjust (and set up formulas for), and we have a holistic view of the players as a collective of effectiveness that we can modify on a percentage basis instead of an individual player basis. Then, if we have the time, we establish the kind of experience we want the players to have and tune toward that experience.
[Join us on Discord] and/or [Support us on Patreon]
Got a burning question you want answered?
- Short questions: Ask a Game Dev on Twitter
- Long questions: Ask a Game Dev on Tumblr
- Frequent Questions: The FAQ