Wednesday, August 3, 2022

Anti-THAC0 Attack Mattrices

Anti-THAC0 Attack Matrices

The Path of THAC0

Before it was D&D, it was called Braunstein, and was a miniature wargame (like Warhammer) but with special focus on individual hero units who gained special equipment and levels of experience as the war campaign progressed.


In these days, the word "dice" meant normal, cubical six-sided d6 dice. So when Dave Arneson, the first DM, needed a mechanic to resolve hand-to-hand single solider combat, he needed a way to compactify all of the complicated reality of damage done by a man with a heavy piece of metal in his hand trying to strike another man bound in metal plates, and he had to use six-sided dice to do it.

Single-soldier war games

Fortunately, Gygax and Perren had recently published their Chainmail fantasy battle rules, which included a very handy table for single combat. War games were played with painted miniatures. Each miniature clearly held a weapon, and clearly wore a form of armor. The Chainmail man-to-man matrix relates the odds to hit each class of armor (mail, plate, etc) for each class of weapon (pole arm, axe, etc.), based on a roll of 2d6.

So look at the particular weapon the figurine is swinging, the particular class of armor the other figurine is wearing, find the intersection on the matrix, then roll 2d6 and beat that number to hit.

from Chainmail, 1971

If you look at the matrix, you'll notice some things. One, it should now be clear where "studded" armor came from -- it's a visual description of a figurine wearing brigandine. Two, either there is a typo in the pole arms row, or they are impossibly (and ahistorically) bad at hurting plate armor. Three, some weapons are better at some armor but worse at others, and this is nonuniform. Notice the easy time daggers have against unarmored persons but impossible odds against plate; and compare to the flail, which does not strike the unarmored as easily, but is otherwise adept at hitting everything. Four, there are no numbers given to armor class, but a name -- it's the class of armor the figurine is wearing. The weapon class does have a number, which is a rough rank-order of length from shortest to longest.

There is also a section of the rules in Chainmail describing combat procedures. Defenders with a significantly higher weapon class (meaning longer weapon) always get to strike first on the first combat round, but after that the benefit is always to the lower-class weapons. A dagger wielder, for instance, gets to make three attacks against the pikeman's single attack -- and each dagger strike is equally as lethal as the pikeman's attack.

None of this is terribly accurate, but it's a first step to include man-to-man combat into a war game.

From war games to roleplaying games

When it was turned into D&D, the game began using a d20 to resolve hits, and weapon classes vanished. Armor classes stayed, where again armor class is a category: plate; plate+shield; leather+shield; etc. Instead of weapon being essential, your character level was important. All weapons were basically identical; hit the same, did the same damage, etc. Magic swords struck as though by the next level tier. Pole arms were slower... but had identical to
-hit odds and damage, raising the same obvious question of why using pole arms at all when daggers are clearly superior.

OD&D rules, taken from tametick

It is clear the matrix has been made more uniform, in that armor types have a clean linear progression from no armor up to plate and shield in each of the level tiers, with the target number going up by 1 as class decreases (better armor). From one level tier to the next, all numbers uniformly drop by 2 until the minimum of 1 is reached. The exception is for level 16+ (close to godhood), where a 1 is sufficient to hit most ACs.

By the time of AD&D it was even more uniform, with AC a true abstract numerical value divorced from armor category, spanning from 10 to -10. The only non-uniformities are the "repeating 20s" on the sides. All notion of grit and granularity has been abstracted away. This is the fighter to-hit matrix. Wizards have their own matrix, equally as uniform but all the numbers are higher; it is this matrix but all rows shifted down.

1E attack matrices, as in original DMG

From tables to equations

The wizard and fighter matrices match up by just shifting the matrices up or down. Similarly, the distinct rows in the fighter matrix all map to each other by just shifting up or down.

Shifting the rows up or down is the same as adding some amount to the AC.

Some intelligent person realized this means you only need a single row in this matrix. If you know what number you need to hit some AC, then to hit the next best AC, you just add one to that number. To make the math somewhat easier, memorize just the row for AC zero. If you need an X to hit AC 0, then you need a roll X-Y to hit AC Y.

The roll you need To Hit AC 0. This is the infamous THAC0.

You can just learn the single number, your THAC0 at current level, and completely drop the attack matrices. Now you only need the equation.

Your THAC0 decreases as you level, which means it becomes easier to hit things. Lower AC is better, just as lower THAC0 is better. But that's confusing, and requires subtraction. Why not use addition and let higher be better?

The Core Mechanic

Believe it or not, it took two decades for D&D to finally adopt ascending AC (so higher AC is better armor) and replace THAC0 with an attack bonus (so higher bonus is better chance to hit). By the time they did, it was 3rd edition, and the game now coalesced around the Core Mechanic we know today: roll 1d20, add any modifiers, and meet or beat the AC.

The success of every task, from battle to lock-picking to song-playing, is expressed in the form

Pr(success) = 5%*(20 + bonus - DC).

That is all we can ever have.

What began as a chaotic, fluctuating matrix turned into a uniform matrix, then turned into a simple linear equation, then into the Core Mechanic. And that is basically where RPGs are today. We no longer use the word, but the d20 mechanic is along the path of THAC0.

Smoothing, simplifying, unifying led us down this path. We are now in a place where it is difficult to imagine deviating from the d20 Core Mechanic. Even Indie RPGs trying to snub their noses at 5e end up essentially reproducing its gameplay.

To truly escape the monotony of the Core Mechanic, let us walk back up the path we took, and try another path.

The Path of Anti-THAC0

We begin again with the single combat melee matrix from Chainmail, reproduced here:

AC unarmored leather shield only leahter+shield mail mail+shield plate plate+shield
dagger 6 7 8 8 9 10 12 12
hand axe 7 7 8 8 9 10 11 12
mace 8 8 8 9 8 8 7 8
sword 7 8 8 9 8 9 10 11
battle axe 8 8 8 8 7 7 9 10
morning star 6 6 7 7 6 7 8 8
flail 7 7 7 7 6 7 6 7
spear 8 8 9 9 10 10 11 12
pole arms 6 6 6 7 7 8 9 10
halberd 8 8 8 7 6 6 7 8
2-handed sword 6 6 6 6 5 5 6 7
mounted lance 5 5 5 5 6 7 8 9
pike 8 8 8 8 8 8 9 10

This matrix isn't the one we want to use (flails are absolutely not God's gift to fighters), but we want to use a matrix like this.

Using a matrix allows us to express any kind of relation between armor and weapon and level --- not merely simple linear equations, but quadratic, exponential, sinusoidal, whatever. Rather than smoothing and simplifying the table, let's build off the philosophy of it, and accept unpredictable relations between to-hit odds, armor, and weapon class.

In D&D, the characters gain experience. We expect more experienced fighters to be more effective at hitting. So the simple matrix of Chainmail might work well for the level 1 soldiers it originally represented, but needs to expand beyond this.

The level 2 matrix will have different numbers, but is otherwise similar. Now imagine stacking level 2 on top of level 1, then level 3 on top of level 2, etc. We end up forming a 3D cube of numbers.

Then different slices of the cube would give:
  • for a given level, target roll for each weapon to hit against each armor
  • for a given weapon, target roll for each level to hit each armor
  • for a given armor, target roll needed for each weapon at each level to hit it
I think the first two are the most useful. The player character sheet can retain a matrix of weapon class vs armor class for the PC's current level. Whenever the PC gains a level, update the matrix. In addition, unique or magical weapons can be printed onto index cards, listing the name, properties, and also including the level vs. armor matrix for this particular weapon.

Scaling in attack effectiveness seems like a fighter thing. I don't know why a wizard, cleric, or thief should get better at fighting. Let's say only fighting men and dwarves (maybe hobbits) get new attack matrices. It is a class feature specific to fighters.

In principle, fighting men and dwarves could even have their own attack matrices, so that e.g.. dwarves are more effective with hammers and less effective with daggers. But this is becoming overkill. We will use the same attack matrices for humans and demihumans.

Matrices remove crunch

THAC0 is crunch. Matrices remove crunch. The anti-THAC0 core mechanic is: roll 2d6, look on the table, compare to the table. You do not need to track STR and level bonuses, DEX bonuses, damage type vulnerabilities, or any of that. You roll, you look.

The only mental effort involved is looking for the row/cell intersection. Is this really more mental effort then addition/subtraction and bonus tracking?

Matrices can express varying weapon difficulty

Fighters won't necessarily progress with all weapons uniformly with level. For instance, a pitchfork isn't the sort of weapon one improves with much. You stick 'em with the pointy end, and that's about it. A peasant can use them about as well as a knight. That doesn't mean pitchforks are particularly great in the hands of peasants or knights.

The weapon matrix for a pitchfork might look like this:
AC unarmored leather shield only leahter+shield mail mail+shield plate plate+shield
level 1-3 8910105101313
level 4-5 7999591212
level 6-7 7989581212
level 8-9 6878571112
level 10 6866561010
The logic of the table:
  • very high levels might get better at jabbing than others, but overall progression is slow
  • defeating a guy with only a shield does sound like something a more experienced fighter would be able to handle better
  • mail has tiny gaps, and piercing weapons can often penetrate these gaps, so mail is susceptible to a pitchfork
  • mail and shield can't be worse than just shield by itself
  • plate is impervious to a pitchfork, unless you are skilled enough to hit exactly right
We could compare this to a weapon like a two-handed sword, which in the hands of a peasant is little better than a sharpened stick, but in the hands of a knight is a powerful weapon. The weapon matrix for a two-handed sword might look like this:
AC unarmored leather shield only leahter+shield mail mail+shield plate plate+shield
level 1-3 578910111313
level 4-5 4678891212
level 6-7 3456681212
level 8-9 3334451012
level 10 2223341010
The logic is as follows:
  • anyone swinging a sword at an unarmored man is probably going to kill him
  • at extreme levels, cutting flesh and cutting animal hide are basically the same, and are very easy
  • mail is effective at blocking slashes, but experienced swordsmen can learn to exploit weaknesses
  • shields are no match for an experienced swordsman
  • plate is essentially impervious to swords, except to the very skilled

This shows how matrices could be used to give non-linear, non-uniform level progression stats for different weapons.

Matrices can express weapon specialties

I've been treating plate as somehow impossible to hit, but now consider a weapon like a warhammer, which is specifically meant to damage plate:
AC unarmored leather shield only leahter+shield mail mail+shield plate plate+shield
level 1-3 881010810911
level 4-5 779989810
level 6-7 66886879
level 8-9 55775768
level 10 44663467
The logic here:
  • a warhammer is meant to pierce armor, and views hide or plate or mail as equally piercible
  • a warhammer is not meant to pierce a shield, so shields are effective defenses
  • plate is more difficult to pierce than mail
To go completely crazy, consider a magic sword, which cuts through all materials and can only be stopped by catching it on a shield first:
AC unarmored leather shield only leahter+shield mail mail+shield plate plate+shield
level 1-3 11551515
level 4-5 11551515
level 6-7 11551515
level 8-9 11551515
level 10 11551515
The logic here:
  • anyone swinging this swings it just as well, with or without skill
  • armor is irrelevant
  • only a shield can catch it, and even then odds are high the shield is negated anyway
(I do not recommend giving this sword to any characters in a game.)

Matrices create strategy

In D&D, there is very little difference between a maul and a battle axe. Attack bonuses are the same, damage die are the same, damage bonuses are the same. The maul might do double damage against a stone golem and the axe double damage against a flesh golem, but overall the difference is so rare that it is not worth lugging both a maul and an axe around everywhere.

Real medieval combatants carried several arms. A pole arm for charges, a sword for up-close battle, a warhammer for damaging armored foes, a dagger for grappling. They carried these because some weapons were efficient, others weren't, depending on how the enemy was armed.

Real medieval combatants took time to strap many peices of weighty metal plating all over their body. Metal gloves, metal greaves, metal shoes, metal skirting, metal breastplates, metal arm covers, all of which needed to be strapped in place by someone assisting. They did this because, covered in armored plating, they became nearly impervious to all but specialized weapons or incredibly well-aimed blows.

Matrices, which can easily capture the different effectiveness of weapons, helps recapture this notion of strategic choice of arms.

The downsides of matrices, and solutions

Attack matrices have downsides. Obviously, or we'd never have left them.

Matrices can't exist in your head

The simple linear equations of the Core Mechanic can be computed on the fly in your head in almost no time, requiring memorizing only a single number (your total bonus with this weapon). Tables require space (either physical space, or monitor and hard drive space), they require look-up (looking up the table and then looking up the correct cell), and they can't be predicted. Even the single, simple table of OD&D was pushed down the path of THAC0 to make gameplay faster and simpler.

The matrices could be memorized, but that's unrealistic.

Only one row of the matrix is needed at a time, the one corresponding to the PC's current level. To avoid the mental energy of lookup, the needed row of the attack matrix should be printed on a character sheet or other clearly visible, central location.

Proliferation of matrices

Proposing a distinct to-hit matrix for every weapon, with varying level progression and varying damage per armor class quickly leads to too many tables. It is also a burnout for DMs, who have more work to do just to give out a new weapon or suit of armor.

Special to-hit matrices then should be for special weapons. For all normal, mundane weapons, have a single matrix. Below is my version, adapted form Chainmail but with some variation:
AC unarmored leather shield only leahter+shield mail mail+shield plate plate+shield
dagger 7 8 7 8 9 9 12 13
hand axe 6 7 8 8 9 10 11 12
club 5 6 9 9 8 9 13 13
mace 8 8 10 10 8 10 9 11
sword 5 8 9 10 11 11 13 13
2-handed sword 5 7 8 9 10 11 13 13
battle axe 8 8 8 8 9 10 11 12
spear 8 8 9 9 10 11 11 12
poleaxe 7 7 8 8 8 9 8 9
pole arms 8 8 8 9 9 10 11 12
pike 8 8 8 8 9 10 11 12
mounted lance 5 5 5 5 6 7 8 9
I'm not proposing these as the set of numbers, just as an example.

On this table, fighters add a simple level bonus to their roll. A little bonus goes a long way on 2d6, so I recommend being sparing with any bonus. Perhaps fighters should roll:
  • 2d6
  • d6+d7
  • 2d7
  • d7+d8
  • 2d8
increasing with level.

All classes except Fighter (and possibly Dwarf) roll on this matrix with no bonus. On weapon-specific tables, they either roll on the level 1 column, or possibly even just roll on the standard table for the same weapon type.

Rather than mace and morning star categories, they are club and mace. A club is any purely blunt bluedgeoning instrument, while a mace is any blunt weapon with spikes or flanges affixed, intended for piercing or destroying armor. This category includes morning stars. Flails have been removed; medieval flails, if they existed, were mostly bludgeoning implements, as clubs; but if you want spikes on yours, use the mace row. The category of pole arms includes halberds, along with war scythes, billhooks, etc. Separate categories are listed for spears, pikes, and poleaxes, due to their importance in different aspects of medieval warfare. A battle axe is a Dane axe, bearded axe, or other such implement requiring two hands but with a haft shorter than a poleaxe.

Pikes are really intended to battle against cavalry, and the mounted figure columns aren't shown here. This is perhaps an oversight on my part, as it is certainly reasonable to consider certian classes of monsters (and not only centaurs) as roughly equivalent to fighting an armored man on horseback. For instance, Chainmail counted a Balrog as two heavy horse. You would imagine pikes would serve a similar usefulness against such monsters.

You will notice that plate is incredibly hard to strike. That's because it is. They wore it for a reason. This should be taken into account in armor prices and availability. Plate requires specific tailoring to an individual, which should be extremely expensive, requirng a professional armorer and apprentices working for several weeks. Even if found in a dungeon, it needs to be fit by an armorer, or else it counts as mail.

A future addition might be a distinction between suits of plate, and mere plate pieces as armor, such as only a breastplate. It is really only a suit of plate that deserves such impossible odds of damage.

Not represented by these tables are considerations such as weapon range and differing weapon damage dice. A weapon might have a harder time striking, but make up for it by carrying a larger damage die.

These are the anti-THAC0 attack matrices. Instead of simplifying mechanics, they deliberate invoke more complexity through tables. They do not require mental math, but do require table lookups. They allow for strategic weapon and armor choice, and give fighters an additional combat advantage over other classes. Not only do fighters have more choices for strategy, they also become more proficient, using new tables, as they increase in level.

No comments: