Monday, February 1, 2016

Monte-Carlo Measures of Monster Levels, Pt. 1

Abstract: Recently I've been expanding my "Arena" simulator program for OD&D combat analysis (current version 1.07). In particular, I implemented special abilities for all of the monsters in the OD&D dungeon wandering monster lists (with a few exceptions). As I did, this, it became possible to run simulations against all of those monster types to get a measure of the "true" power level for all of those monsters. This, in turn, then gives some confidence for exactly how much XP should be handed out for each monster in the OD&D Vol-1 context (recalling that at that time, there was no awareness of the need to modify XP for monster special abilities). See the chart below for the output, and then I may spend some number of blog posts discussing this model, it limitations, and the results. The second column, "Equivalent Hit Dice", indicates overall power level, and is what I would generally expect to use for monster XP awards (specifically: this number × 100). Spreadsheet version here: ODS file.

The Model: The Arena program simulates one-on-one gladiatorial fights between single fighters and some other opponent in original D&D (which could be either men or monsters). The rules implemented are essentially OD&D with 5%-step smoothing applied to attacks and saves.

After trying a few different models for assessing monster power levels, here's what seemed to work the best. NPC fighters are faced off against each monster in sequence: these fighters are assumed to be in chain mail & shield (base AC 4), with a +1 magic sword (to allow attacks on gargoyles, etc.), and ability scores rolled straight-3d6 (no bonus on average, except the 1 pip from the magic sword); but they may be of any level. No other improvements for equipment, improved magic, or higher ability scores are made for advanced levels. Fighters do not ever get multiple attacks (as they did not in OD&D; even for under-1-HD types, they are likely only being compared to 1st level fighters anyway, and we want a consistent basis for comparisons here in any event). This choice seems to allow for a fair measurement of the "raw" power of each monster, gauged against an opponent of fixed AC and damage output (i.e., the fighters only vary in HD alone, so "Equivalent Hit Dice" is in fact the output).

For each monster and any suggested fighter level, we can generate a random monster and fighter of that type, and have them battle to the death in the Arena. This is repeated 10,000 times for a given suggested level, and a proportion of times that the fighter wins produced (a Monte-Carlo method). Then we run a binary search on all possible levels from 0 to 50 to find the fighter level that gives the win percent closest to 50%; and we call this the "Equivalent Hit Dice" (EHD) of the monster.

Some of the confidence that this model gives us are that the EHD's generated for all the NPC fighters in the monster list are in fact identical to their actual HD (level). Also, the brute humanoid types like orcs, gnolls, ogres, and giants, have EHD in approximate linear progression to the Hit Dice, with trolls specially being valued at about double-HD -- the same as shown in our prior analysis of monster values in Chainmail, Vol-3 Mercenary costs, and Book of War (link).

Note that these results in EHD are not the same as the level of PC fighter that would be fairly matched against a given monster. If a PC is assumed to have better equipment, more magical arms and armor, and also receives a survival benefit (filtering effect) to ability scores, then those fighters will be much more proficient in battling monsters than shown here (like, say, able to contend with a monster of EHD +50% over their own level, as a zeroth-order estimate).

The Monsters: I implemented almost all the monsters in the OD&D random dungeon monster tables, and almost all of their special abilities. Sticking with OD&D rules, Hit Dice and damage dice are still d6's in almost all cases (damage 1d6 for all attacks by default, with exceptions noted in the Vol-2 text: e.g., ogres 1d6+2, giants 2d6, earth elementals 3d6, and a maximum 4d6 suggested for the largest of sea monsters or a Tyrannosaurus).

By necessity, many interpretations must be made regarding the monster statistics. In particular, OD&D included no statistics for any of the giant animal types referenced in the random tables (giant spiders, centipedes, ants, snakes, scorpions, etc.) In some cases we can look to Sup-I which included alternate attacks and damage for some of these types, although translating back to d6-based dice was done. In other cases I looked to the AD&D Monster Manual for the intention behind giant animal Hit Dice, armor class, attacks, and special abilities (the AD&D MM is compatible with OD&D in almost every way, and was chiefly a compilation of prior material).

I'll leave that as the end of Part 1 of this analysis. Next time: Commentary on individual monsters and special ability effects. Below, two downloads: First, a data file of the exact monsters and statistics used in this simulation, if you want to inspect that. Second, the current Arena code (Java) if you want to audit or compile that yourself.

P.S.: Tell me if you would desire the Arena program being packaged up so you could run it from a command-line with needing to compile it yourself (say: to input and measure your own unique monsters, or monsters with adjusted stats, or experiments with totally different assumptions)? If more than a couple people express interest in that, I could do it.


  1. I can't see an explanation anywhere - what does the "Mult." column in that table represent?

    Looking at those numbers, it seems like it might be fairly reasonable to simply ignore smaller monster abilities (e.g., extra damage, constriction, et al.) and double the XP reward for those with major abilities (or a plethora of abilities, like the vampire). The only ones that really break the mold are the werewolf, manticore, medusa, chimera, purple worm, and hydrae with more than 6 heads.

    If you want to get more technical, it seems like in order to keep up with the PC fighter, a mid-level monster needs to either have two attacks or deal two dice of damage, while a high-level monster needs three attacks or three dice.

    A monster dealing less than this will lag behind, though save-or-die abilities short-circuit that and make the monster powerful regardless.

    On the other hand, monsters that exceed damage expectations - most notably the 10-headed hydra - have their EHD increased by roughly the same proportion by which their damage exceeds the expectation. This also explains the manticore's weird EHD value - throwing 1d6 tail spikes that deal 1d6 damage each is approximately 50% more powerful than the 2d6 expected damage for its level (in actual fact, it might even be more deadly than you give it credit for, since it can fly while doing that, forcing the fighter to drop his sword and shield and take up a bow instead).

    1. Right, I agree with that, and that's how I'd likely use this table; only implement XP adjustments for places where the value effectively doubled. The "Mult." (multiplier) column is precisely that; the number of times you should add another 100% XP bonus for the creature ("number of asterisks", if you will, hearkening to Moldvay/Cook). So the Giant Ant (poisonous warrior here) is the first, and Manticore the second, creatures to get an XP bonus by doubling. Medusa should have her XP tripled, etc. Other thing about the Manticore is it's one of the few monsters I interpret as having 3 full-dice attacks in melee; another is Giant Scorpion, who with its poison sting is one of the next double-XP examples. Good observations.

    2. Ah; I was having trouble with that because the heading put true multiplication in my mind (where a 2 would mean doubling) rather than a "number of asterisks" type system. The negative number for the werewolf really threw me for a loop!

      And yeah, I figured you might do something like that; I was pontificating more with a mind toward grabbing extra monsters from later supplements - or constructing new ones altogether - and how to valuate them without the need to run simulations. So if it boils down to "save-or-die attack is worthy of doubling XP," then determining the challenge and XP value of a bodak or catoblepas becomes easy.

    3. One thing I'm finding in the next iteration is that there's a noticeable difference between save-or-die-on-hit (like: wyvern, scorpion) and save-or-die-to-area (like: by gaze from basilisk, catoblepas, etc.) The former is more effective against a few high-level heroes, while the latter is more effective against low-level mobs -- although greatly dependent on how the DM adjudicates who has to save from the gaze when.

      That said: Yes, one 100% bump from a save-or-die ability is a pretty good first approximation.

  2. Delta, this whole series of posts is just awesome. I can't find it (although I believe you mentioned it somewhere) but are you using LBB or Greyhawk dice for the PCs? Are the FM d6+1 (for most levels) or d8 per lvl?

    1. Thanks! And good question; I do use Greyhawk dice for the PCs, that is, 1d8 per level for the Fighters (up to 9th).