Dark Alliance has numerous enemies and bosses that are based on D&D lore, many with their own strengths and weaknesses. How do you approach designing them for the game?Tremblay: The design process starts with the selection of the monster itself. This is done with the team, as the monster must fulfill artistic needs, design needs, as well as fit in our production budget. 

Once we’ve agreed on the monster and what the lore says it looks like, we, in the design team, dissect what the attributes of that monster are. For instance, if the monster was going to be a giant wasp, we would probably think of stings or poison. A large monster like a Verbeeg immediately screams “tremor attacks” or “squishing the player” because its main attributes are its size and mass. So, unsurprisingly we’d give Verbeegs those types of attacks. Then, we look at the other attributes that are not immediately as visible. Verbeegs are holding large harpoons, which they use for hunting. We design all possible ways that a Verbeeg could attack with a harpoon and pick the ones that best fit our design needs.

When we speak of design needs, we really mean challenge. The reason for the monster’s existence is to challenge the player, and that challenge’s goal is to enforce the mechanics that the game proposes. Dark Alliance proposes a block, a parry (if you time your block properly) or an evade, which includes I-frames. Each of these options balances risk-taking versus cost. Block and evade cost stamina in accordance with the risk it entails to pull them off. Parry, on the other hand, has a null stamina cost, but it costs the player in skill and in risk-taking, and in willingness to gamble health, which is another resource players must manage. Blocking is the safest option, and that’s why it also depletes your stamina the most. 

A monster’s attacks are designed to entice a player into making those second-to-second micro choices throughout combat. As such, the Verbeeg has an array of attacks that challenges the player in every way. For some of these attacks, the dominant strategy is to evade, while for others, the block is better. For some, parrying is the most rewarding, while some attacks (such as when the Verbeeg has already planted the spear into the ground) are unavoidable. For those, players need to respect the area-denial ability of the spear and use their ranged attacks to damage it from afar. 

We design other attacks much later in production, when after playtesting when we realize a monster’s move set is incomplete. If we leave glaring vulnerabilities in a monster, that might make it easily exploitable. As an example, this happened with the Verbeeg. It walked slowly, which made heroes able to run circles around him (quite literally) and the only option the Verbeeg had from afar was its harpoon throw, which isn’t all that difficult to dodge. 

So, we added attacks that displace the Verbeeg a great distance to the player (the flying elbow drop that the Binger Verbeeg uses). This is really a quick displacement disguised as an attack that the Verbeeg can use to close the distance and remain a threat. It serves the dual function of requiring a dodge and keeping the players on their toes, and to re-enter its optimal threat range, where the Verbeeg can resume using the rest of its attack set upon landing.

The same consideration goes into making every archetype. Archetypes that we want threatening at any range will tend to always have a few AOEs (area of effects) in its attack set. This is because we must be mindful of player behaviors, where they might be tempted to stay 100% behind the enemy, which either causes monsters to not be able to attack or need to slide very quickly 180 degrees or use instant pivots. Another patch can be to give large enemies AOEs so that regardless of where the hero is, the attack applies relevant pressure to alter the behavior and close the potential exploit. 

Once monsters are done and have their complete move set, we apply weaknesses and strengths to them in accordance with their design. For example, we might make a poisonous snake immune to poison, or an ice-spewing dragon very resistant to ice.

But there are other mechanics that we need to design that challenge and/or reward the player beyond simply damage affinities. Is the monster overall resistant to this or that status ailment? Can that monster be stunned? For example, should wraiths be able to run out of stamina and be vulnerable to exhaustion? If the notion of a ghost being cardio-ed out in combat might be funny to entertain, it’s something we need to carefully consider in the design. There are tons of exceptions that each require a clever (or oftentimes, not-so-clever) workaround.

Source: Unreal Engine Blog