Balancing Defender's Quest 2's "minion" classes

We just added 8 new characters to Defender's Quest 2. How do we keep all this stuff balanced?

Balancing Defender's Quest 2's "minion" classes

Let's talk about balance.

I wrote an article about this way the heck back in 2011 called Upgrades, Equipment, and Skill Trees. In that article, I said the following:

I like upgrade systems where you have to pick between a few different things and can't have them all. Generally, an interesting choice is a set of options that are different, balanced, clear, and limited.

Different and Balanced
Options should be qualitatively different from one another. Here's an example from space shooters - missiles or lasers? A laser fires instantaneously, but its damage decreases with range. A missile travels slowly, but deals full damage when it reaches its target. Each of these will require a different play style.
Options should be balanced, which means that no option is strictly better than another. If one stands out above the rest, players will always pick it - there's no real choice there.

Picking between two or three equally good but very different things creates an enjoyable tension.

If options are not balanced and different, then the choice is not interesting. Without balance, the best option is obvious, so the lesser ones are never explored. If the options are too similar, it doesn't matter what the player picks.

Limited and Clear

Choices should consists of limited options. If there's too many to pick from, choice paralysis sets in. It's like shopping for soap - if you're like me, you don't really care what brand you get, but being faced with 36 different choices stops you in your tracks anyway. This doesn't mean there shouldn't be a lot of options - just not too many options at once. The ideal number varies with context, but generally speaking - the fewer, the better.

Rough Balance

In the last major content drops, we added a total of 8 new defender units to the game. Since then it's been my job to roughly hammer them into shape so I can start developing levels around them. To briefly summarize, these 8 new units are "minion" units, which are mostly-optional units that player can fill out their ranks with. Each one is unique, but are meant to complement the 8 main hero characters rather than steal the show themselves. They help you fill out map position and serve as money sinks for long battles without adding too much additional cognitive overload.

So today we're going to go through how I balance these sorts of things. What we're talking about today is "Rough Balance" – just hammering things into general shape to start with, because there'll be further adjustment after playtesting.

Skill Layout

Before I touch any stats, I try to nail down each unit's concept and role within the party. This mostly comes in the form of laying out their skill tree and making sure it tells a coherent story. That part has mostly been covered in previous posts for each minion category.

The next step is to define some goals and make sure that they're enforced.

Here we have the skill tree for the "Machine" minions, who have only 2 boost skills, and an explode-on-death trigger (the 8 normal "hero" defenders have 5 boost skills and no explode-on-death trigger).

All three of  these skills have four bonuses each, which can have up to 8 points invested, with the last point invested in any bonus counting triple (so it's effectively 10 points).

The player's choices in investing points are:

  • What part of the battle should I focus on?

    • Early? (Boost 1, cheap)
    • Late? (Boost 2, expensive)
    • "Save my butt if something goes wrong?" (On death explosion)
  • What should I specialize in?

    • All-around usefulness (the first bonus is typically "more attack power / DPS")
    • Situational usefulness (all other bonuses, pick a situation), e.g:
      • do more damage vs. an enemy archetype
      • projectile continues past first target (must line up several)
      • attack penetrates armor
      • attack applies some status effect

This leads to several rules for balancing the Machine minions:

  • Boost 1 cost should be fairly cheap ("early battle")
  • Boost 2 cost should be fairly expensive, akin to a hero defender's boost 3/4 cost ("late battle")
  • The death effect should be sufficiently dramatic to make it worth investing in at the expense of an active skill

The minion shown above is code-named the "Penetrator" for now. Their entire schtick is their attack radius is a a cross rather a circular radius, and they fire unguided projectiles in a straight line. This means they are best used when positioned on long straightaways, but you can specialize them in various ways – maximize damage, increase their damage against enemies with lots of HP, add strike-through to their projectiles so they can skewer multiple enemies, or penetrate armor.

The general layout feels good to me for this class. This unit's identity is fairly solid, and there's multiple ways to express them along the standard axes – early battle, late battle, general purpose, situational purpose, and all of their skills generally line up with a general "stick something pointy in you in a linear way" theme.

Skill Stats

Now we move on to how to balance actual numbers and stats. There's a couple of guarantees I want to make here:

  • The more situational a bonus, the higher its power
  • The higher a boost level of a skill, the higher its power (and that of its bonuses)

These are really important guarantees to make or else the fundamental choices of the game just won't work. For instance, should I put a point into extra damage for the Boost 1 skill or the Boost 2 skill?

There's a bunch of nerdy numbers there laying it out, but I can immediately see that the marginal increase (shown in green) in damage per second is greater if I invest in the more expensive skill. Now, the second skill is actually a bit more situational since it fires in all four directions at once, and so only a few of those projectiles might hit. This might indicate I actually need to make it a little more powerful, because the presented DPS is theoretical and assumes all the projectiles will hit.

Okay, next question, should I invest in general purpose damage or in situational damage?

I can immediately see that I get twice the marginal benefit from investing in the situational bonus (extra damage vs. high-HP foes), but obviously that's only going to pay off if I strategize around it. Point is, if there wasn't a significant bonus to the situation bonus relative to the general bonus, you would just pick the general bonus every time.

Then you have things where it's not possible to directly quantify the benefit. This requires me to rough balance based on designer's intuition and adjust accordingly after playtesting:

Adding strike-through literally increases potential damage by 100% for each extra target, and investing all 8 points will give you a whopping +6 targets, for a full 7X max potential damage. Sounds pretty good! But, how often will you be able to realize that potential? That's much harder to calculate than "this attack does X% more damage if the enemy is type X."

To realize the full benefit you have to encounter a bunch of enemies bunched up in a row, and you have to also consider what benefit you are giving up for the rest of the battle when that situation doesn't present itself. And honestly in a single player game I don't really mind this feeling a little overpowered if it takes some thinking to set up the proper situation to pull it off.

Armor pierce is even harder to quantify. Not all levels will have enemies with armor in them, and just investing in more damage helps you with armored enemies as well. So I made it so that investing all 8 points will make the attack completely ignore armor. I find a lot of status effects in games err on the side of being too weak, so I'm starting off with this and I'll adjust if playtesting finds it necessary.

Machine Stats

Another key difference between machine minions and defenders is that the machines have no regeneration and no defense but overall high health, and they explode dramatically on death. This makes working out their base stats pretty easy – regen, evade, and defense all get set to zero regardless of level! I'm keeping their attack speed and attack power about the same for the rough balancing phase to make it easier to directly compare them, and once that's sorted out I'll adjust those stats and their relative boosting costs as well.

Balancing Parasites

Whereas Machine minions are pretty similar to "hero" defenders with a few tweaks, Parasites are intentionally super weird and play by their own set of rules.

Here's a typical parasite skill tree:

The way parasites work is that when you place a parasite, you also pair them with a previously placed defender from the "black hat" party. Each parasite has a single basic attack, but what that attack is will mutate slightly depending on who you pair them with – pair with jumper to get an attack that hits twice, pair with Eliminator to get a boost to negative status effects, and so on. Furthermore, the parasite has no health of its own but is life-linked to the host, with all damage the parasite takes transferred to the host until the host dies, which kills both it and the parasite. This makes the parasite a sort of "extension" of the host.

For reasons explained before, it doesn't make sense to give parasite skill trees individual points to invest in. So instead you can pick a specific bonus per pairing, which you can change at any time.

Since there's no points involved, and no multiple boost skills, balance is more of a question of trying to avoid one particular pairing being hands-down better than another.

In the current design nothing stops you from attaching multiple parasites to the same defender, but that will be an obvious restriction to add if we have a lot of balance trouble here. Since pairing multiple parasites to a single unit massively increases their exposure to damage, it seems like a safe risk/reward tradeoff for now.

Anyways, let's look at a concrete example. "Parasite 1", which is melee-themed.

Each of the situational bonuses are drawn from the host's own skills, so the parasite becomes a natural extension of themselves. But which of the host skills should I choose to express in the parasite? I like to make a natural contrast where possible.

For instance, you can specialize this parasite in damage-over-time, and you have the three main flavors to choose from based on who the host is – eliminator grants poison, which does the most damage overall but takes the longest time to inflict, collector grants fire, which has the highest damage per second but burns out the quickest, and ultimate grants acid, which is the weakest in terms of damage but also removes armor.

Parasite Stats

These are even easier to balance – since parasites just transfer all damage taken to their host, they have no defensive stats, let alone HP! Apart from figuring out sensible ranges, I am starting off with making all of their attack power and attack speeds identical, and then I will adjust them from there. Given that parasites are supposed to take on the characteristics of their host, it might make the most sense to keep baseline stats equal and just rely on the skills themselves to buff things up or down based on who the host is.

Balancing Cost

This is the last big thing I will need to do to complete the rough balance, and it's still in flux. How much should these units cost to summon and boost, and also given that minions are "purchased" in towns/rest-areas, how much should they cost to acquire in money?

This post is long enough already so I'll save the spreadsheets for next time, but basically what this amounts to is plugging all of the stats into a big google doc spreadsheet where I can run a bunch of tests and see the results in front of me. This makes it easy to catch failures like: "it's always a way better use of your money to summon this class rather than this one" or, "this class is about as powerful as this other one but it costs twice as much."

So the next step is to account for all of that, and then start building levels around our 8 new little critters. And then start feeding playtesting results back in on themselves, lather, rinse, repeat.