Time for some math. This is an abstraction and a bit more goes into it, but creating a combat system is fundamentally the solving of this formula:
0 = [(Enemy Hit Points – (((21 - Ave Target Defense + Attack)/20) x (Base damage + damage modifiers) x # combat rounds x Average # attacks per turn) / # PCs] -- [(PC Hit Points – (((21 - Ave Target Defense + Attack)/20) x (Base damage + damage modifiers) x # combat rounds x Average # attacks per turn) / # Monsters]
So let’s parse that apart. The formula is “zero equals the subtraction of” this formula doubled; once for the PCs and once for the monsters:
[(Enemy Hit Points – (((21 - Ave Target Defense + Attack)/20) x (Base damage + damage modifiers) x # combat rounds x Average # attacks per turn) / # PCs]
Which is really just hit points less expected hit rate x total average damage x number of rounds x number of attacks per round discounted across the number of PCs. Then we do the same for monsters, subtract the two, and look at the result. If the result is zero, then combat is equally matched. If the result is positive, the PCs have the mathematical advantage. If it is negative, the monsters have the advantage. Simple as that.
It is pretty hard to reliably hit the zero target for balance, so you sort of have to take a design stance: which side do you lean towards. I actually lean towards negative side or giving the monsters the edge. I lean this way for a number of reasons including (a) combat should be dangerous, (b) the formula doesn’t take into consideration tactics or cooperation, (c) players will make sum positive tradeoffs (like reducing attack for an increase to damage that that has a sum positive impact), (d) power creep will emerge, and (e) the favorable system assumption here is to make monsters more powerful and let the GM find equilibrium by either changing monsters or empowering characters. If combat is made too easy by default, toughening it up requires the GM to be the “bad guy.”
There are a lot of other neat things hidden away in the formula that emerge when you start working with it. For instance, the system has to be agnostic with regards to the # PCs part of the formula because the system has to accommodate any group. The easiest solution is to set the number of monsters equal to the number of PCs and remove both terms from the equation.
We also see that number of combat rounds is a hugely influential design decision. In 3e we routinely had combats that varied in length dramatically. Some were over in two rounds, others took 20. That was sort of just the way things were. Fourth edition has a tighter expectation and I think that is better design. It is easier to make determinations about combat resources when you know how many rounds those resources will be stretched over. Of course, the formula really only focuses on typical rounds of combat, so it is possible to have longer combats where rounds are dedicated to other things like movement (climbing, jumping) or defeating some other thing outside the traditional combat scope (like solving a trap or puzzle).
Finally, and this will sound dumb, we see that some things are harder to change than others. That was actually sort of a big discovery because it revealed an order of operations for designing the game. A change to target defense has a lot of ramifications based on average attack, damage, damage bonuses, how often you attack, and so on. This statement is sort of true for all variables in the formula, but some are more fundamental than others. For instance, hit points stand relatively independent in the formula and so they are a useful place to balance or accommodate other design goals. As a result, hit points are sort of set aside and you only make decisions on them once you are fairly confident about other parts of the game.
A quick example helps explain. Technically any variable can progress at any rate desired. But some rates of progression are better than others. With regards to monsters, nice round numbers like “+1 per level” make developing monsters really simple. We want that simplicity. When that simplicity trickles through the formula, there is less simplicity left over for the other variables. All of the sudden you need damage to increase at 1.36545/level to stay balanced. But, what the hell, “+2 damage per level” is simpler and so we put it in. Suddenly there is less simplicity left for the other variables. All the constraints you put on other variables is left for the end.
Finally, we get to hit points, who, like a champ, are this really small incremental variable in the game. By the time we get to hit points, all of that rounding has compounded into reasonably large-ish integer like numbers. And while we needed other things to be like “+1 per level”, hit points work just fine at “+6 per level” or some less round number.
But there is one final piece to the puzzle and that is healing.
The formula is actually really constraining; it doesn’t give us that many variables. Far fewer variables, in fact, than a game demands. Players want each class to feel different and play differently and the formula just doesn’t introduce that much variability. The solution was to let each variable be fulfilled by multiple different routes and hit points are a great example of that. You can meet the formula’s expectations of hit points by just having a lot of hit points, or you can have less but easily heal the difference, or you can have less but generate temporary hit points each turn, or you can have less but reduce damage taken. It also works to combine those various mechanisms in different ratios.
They also play a lot differently than you might initially think. Obviously, just having a lot of hit points means you show up ready to take hits, but it also means your bloodied value is much higher than other character’s values. This has a visible impact. The ability to easily heal means you get bloodied quicker, but it also means that in combats where you aren’t hit you have more resources (that you didn’t have to spend towards healing) to be more effective in different places. Generating temporary hit points each round means you actually have incentive to be hit each round. Someone who generates temporary hit points and also invests in a high defense is diluting the value of those temp hit points. Of course, they only want to be hit once per round, which means they prefer head-to-head style matchups. This is distinct from the character that reduces damage, because they prefer to be hit multiple times per round (ideally by foes that deal small amounts of damage).
These strategies and differences work both ways. A character who deals bit hits might prefer to go against a target that easily heals with the hope that they can take them out before they have time to heal. A character that makes multiple attacks will avoid the damage reduction target, and so on.
Each strategy gets us to “a number” but by very different routes that look, feel, and play very differently. When you start to think about all of the different ways all of the different variables can be achieved, we start to see that a very balanced game can emerge with a lot of options to carve out your particular play style and vision.