Monday, May 23, 2016

Book of War Compatibility Mark

Ever since I released the Book of War mass-combat rules for miniatures, compatible with classic versions most versions of D&D, in 2011, I've had numerous people contact me and ask if they could use/incorporate those rules in various supplements, books, and RPG adventures that they planned to write. Unfortunately, I had a embarrassingly hard time figuring out a proper response to that. The main thing is that I wanted to say "yes", and provide a clear-cut way to indicate that for people, without getting too legalistic about the whole thing.

So finally I have, I think, a good answer for when people ask me about that in the future. On this page you can see the new Book of War Compatibility Mark that you can use to signal that your product makes use of the rules, if you want to do that. There's no fee or license, and strictly speaking it's not even necessary (game mechanics aren't subject to copyright, after all, according to current law). But it's a great way to highlight to people that you're using a simple and streamlined way of doing mass combat that a lot of people have found of benefit to their games.

Also it's appreciated if you include a line of thanks to me, "Daniel 'Delta' Collins (www.oedgames.com)", and drop me an email so I know about it. If you want to reference an OGL version of the core rules, that's available, too (again: at your option, not required). See more at the official OED Games website.

Thanks immensely to my partner Isabelle for drafting the compatibility mark. I think it rocks!


Monday, May 16, 2016

Arena v1.11: Man vs. Monster, Pt. 2

Last time we convinced ourselves that the Monster Level Matrix given in OD&D Vol-3 is, to be honest, irreparably broken and in need of a fix. Here we search for a revised table to use in its place. Previously I'd contrasted the alternatives that followed, as in Holmes' Basic D&D and Gygax's AD&D Dungeon Master's Guide (link). My impression at that time was that Gygax's AD&D table was such an incredibly radical swing in a direction away from OD&D, and the Holmes' table appeared to be a balanced medium between them, that the latter seemed to be the better choice.

Here I'll consider the AD&D table more closely, partly because it has the Gygax imprimatur on it (and also I want to avoid any psychological Framing Effect). First, recall the OD&D matrix:


Compare to the equivalent table in the AD&D DMG:


This latter table is much more forgiving. Of course, it's stretched the monster levels out from 6 to 10, and it uses a d20 instead of a d6, but that's not what really interests us here. On the 1st dungeon level, where OD&D includes 2/3 of the possible monster levels, AD&D covers less than 1/3 (equivalent to permitting only monster levels 1 or 2 in OD&D; so the danger level is approximately half or less). In OD&D, the danger level rapidly ramps up, because of the way dungeon levels are batched up starting at the 4-5 tier and so forth; in AD&D, levels are kept distinct up until level 10, so a much more gradual increase can be drawn (except for the completely bizarre joint step at dungeon level 2-3, which skips having a 20 in the monster level IV column; Odin only knows how that came about). And while OD&D ends up with the only possibility being top-level encounters by the end of the table, AD&D always keeps at least a 1-pip chance for any lower-level encounters down to level I (including the possibility of maybe very large collections of goblins, skeletons, or giant ants, say).

So what I decided to do was linearly translate this AD&D table back into the OD&D format. The process was like this: (1) Interpolate a distinct row for dungeon level 2 in the AD&D table. (2) Separate the AD&D table out into "pips" value difference in each cell. (3) Transform the pips in the 10 columns of AD&D into 6 columns for OD&D (e.g., OD&D monster level 1 gets the pips from AD&D column 1, plus 2/3 the value of column 2; OD&D column 2 gets pips from AD&D as 1/3 column 2, all of column 3, and 1/3 column 4; etc.). (4) Scale the pips from d20 to d6 with a 6/20 multiplication in each cell. (5) Sum the values back up sequentially on each row for d6 roll ranges. You can see all the details in an ODS spreadsheet at the end of this post, but the end result of the translated AD&D table looks like this:


Dungeon levels 1 & 2 end up looking identically, by which I'm not hugely offended. Due to the lower granularity of the d6, we don't have space to maintain every single possible monster level on the deeper rows of the table, but that's not a huge tragedy, either. In general this sort of looks like the inverse of the original OD&D table (just a few options in the top-right, with most of the level possibilities covered on the bottommost row).

Now, let's load this as a data file into the Arena simulator, in place of the original OD&D Monster Level Matrix, and see what the resulting population of Man-vs-Monster gladiator combats produces. This is done with 10,000 fighting men in the list, over 100 years, fighting 24 times/year (biweekly), with age effects implemented, and the standard 5% chance for a magical boost on each level-up:



Now, that looks like a more reasonable population (i.e., a game that's not entirely suicidal to play). It's still a significantly more risky path than the Man-Vs-Man game we looked at two weeks ago. No one here has reached Name Level, and most fighters do not survive to the age of 30 years. But at least it covers most of the D&D span of levels, Superheroes are at least possible, and at least one figure did see 34 years. I think we can conclude that Gygax's table in AD&D is not too generous; it's still a very highly risky path to fame and fortune; if anything, one might argue that it should be softened some more to actual produce a Lord or two over the course of a century. But it's not completely the holocaust that the OD&D table was.

One thing you might notice here in the chart is the drop-step at fighter level 2. This isn't because level 2 is too dangerous, but rather just the opposite; it's an unusually easy level to survive and graduate, so most members have quickly moved on to level 3 at this point. This is because of two reasons here: (1) Although the fighters are about twice as durable as when they were 1st-level, they are still rolling on the same row of our Revised Monster Level Matrix, and (2) The way the geometric XP tables are constructed in OD&D Vol-1, it doesn't take any more XP to graduate 2nd level than it did 1st (2,000 XP in each case).

In conclusion: This is something I can live with for my game. My plan is to paste this into my custom print of the OD&D ruleset and use it in place of the original Monster Level Matrix. Be cognizant that while this game is at least conceivably survivable (for a time), it is still too risky to reflect the demographics of groups of Men in the upper world; for that, we will continue to look at the Man-vs-Man results from earlier (and as in the Marshal application, etc.).

Below, the software package you can use to play with this yourself. As before, if you have Java installed, you can download and unzip the first file, which includes Arena.jar and associated data files. You'll need to run it with several command-line parameters to get useful output, for example the command

java -jar Arena.jar -n=1000 -m -a -rys 

will run the simulator respectively with 1,000 men in the list, fighting man-vs-monster (instead of man-vs-man), with aging effects applied, and reporting yearly updates and summary statistics at the end. To switch from the original (brutal) OD&D monster level matrix to the revised one, rename the included data file MonsterLevelMatrixRev.csv to MonsterLevelMatrix.csv and run it again (or modify the data file to whatever format you prefer). A complete listing of all the available command-line parameters is as follows:


Usage: Arena [options]
  where options include:
        -a apply aging effects
        -b base type of armor (=0-3, default 3)
        -f fights per year (default =24)
        -m man-vs-monster (default man-vs-man)
        -n number of men fighting (default =100)
        -p percent chance of magic per level (default =5)
        -r reporting types
                s summary statistics    y year-end info
                d detailed data         k monster kills
        -s start level for fighters (default =0)
        -x use revised XP award table (from Sup-I)
        -y number of years to simulate (default =100)



Have fun! And tell me if you find any other interesting discoveries that I've overlooked.




Friday, May 13, 2016

ChicagoWiz's Caravan Woes

ChicagoWiz wrote on his blog a few weeks back of an entertaining encounter that his wife confronted while leading a caravan through the wilderness and being attacked by a large group of giant spiders. How did he deal with this off-the-cuff as DM? Well, by grabbing Book of War and his own custom rules for lower-level heroes, inducting his wife on it on the fly, and playing things out quickly and easily (and somewhat brutally). Very cool! And very gratifying, because that kind of action that happens in classic D&D is exactly what motivated Book of War -- possible large groups of random encounters in the wilderness (esp. hundreds of men or humanoids), and wanting to resolve those fights efficiently, using the same stats that you already have in front of you for D&D without messy conversions. Glad ChicagoWiz's significant player came out on top -- this time.



Monday, May 9, 2016

Arena v1.11: Man vs. Monster, Pt. 1

Last week we looked at the state-of-the-art Arena gladiator simulator in its Man-to-Man mode, including aging effects over the years, and found that it generated a very reasonable population of fighters of various levels.

Here we'll look at the Man-to-Monster mode, and find that we get a much more problematic set of data. In the current version, there are not one but two updates since we last run the simulator that work punishingly against our simulated gladiators:
  1. Previously we weren't including aging effects (here assessed s both ability-score penalties and level-loss after middle age, as per Gygax's Conan writeup in Dragon #36). And:

  2. Previously we weren't including any of the monster special abilities in the monster roster; that only got implemented at the time of the MonsterMetrics program in the last few months. Now our population of fighters will have to deal with poison, paralysis, petrification, level loss, dragon breath, swallowing, etc., for the first time.
Before we even get into the results of that, we should look back again at the very intimidating Level of Monster Matrix which is present in OD&D Vol-3:


Even at the 1st dungeon level, a character can easily encounter a 3rd or 4th level monster (on the 6-level scale), including such types as giant scorpions, wraiths, lycanthropes, gargoyles (with no expectation of having any magic weapons), etc. By the 3rd dungeon level, these types are the most commonly encountered, and any monster in the game is likely to now show up: dragons, vampires, hydra, balrogs, purple worms, etc. By my estimate, if a stock level of a megadungeon has around 30 encounters, then we would expect to find around 5 such top-level terrors on the 3rd level of your dungeon. Think about that for a second, a guess what you think the results might be, before reading further.


Okay: Let's combine the original by-the-book encounter table, the implementation of monster special abilities, and the effects of aging for the first time and see what the end result is. We consider a gladiatorial system that allows recruits so it has 10,000 fighters at any time, running for 100 years, with 24 fights each year. Monsters are matched against each fighter by rolling on the table above at a "dungeon level" equal to each fighter's level (or for 0-level recruits, the 1st level beneath the surface). The result is this:


The highest level in our population of 10,000 fighters are just a few Heroes of 4th level. Looking at the average age column we see: No one ever survives a single year! Even tracking everyone who ever lived and died for the entire century (what I call SupMaxAge here), no one ever lived past the age of 19. Even this is a bit deceptive: most of the population you see here was likely hired at age 18, one week before the turn of the year, which bumps up the age value to 19 almost immediately. So likely the longest that anyone lives is maybe just a number of weeks. And no one ever, ever reaches a level above 4th regardless of how high their ability scores are, or how lucky the get with magic items or opponent matchups or attack rolls -- even after possibly centuries of throwing 10,000 fighters at a time, on a biweekly basis, at the Monster Level Matrix shown above. It's a nightmare scenario.

I've tried a few tinkerings around that table to develop something more reasonable; for example, I've tried applying a modifier to the d6 roll on that table, perhaps on the order of −2 or −3 or so. Below I'll go whole-hog and apply a −5 modifier; that is to say, assume that every roll on the Monster Matrix is always a 1, and produce the lowest-level monster permitted in every case. Here we get:


That starts to look at little more reasonable, but: Still no one ever reaches Superhero or Name level, even after a century of biweekly adventuring. Over the course of the century, we found one Conan-analog who lived to the age of 28, but no one ever survives to their 30's, and on average most fighters only live about 3 years at most. For this, we've already really abandoned the Monster Matrix, by effectively ignoring the roll entirely, and looking only at those cells that have the "1" result in each row.

I've also tried other more sophisticated techniques in conjunction to this modifier, like assuming that the fighters in question can "choose a lower level of the dungeon" on which to adventure, to some optimal level (like, one that accrues maximal XP before they start losing levels due to age). I'll spare you that series of searches and charts, and just say this: The optimal choice is always to stick to the 1st dungeon level forever. Anything else is just too dangerous.

Let's call a spade a spade: The OD&D Level of Monster Matrix is undeniably, clearly broken. For a playable game it absolutely needs to be fixed. This is highlighted by the fact that no one ever used it again in that format; all later editions of D&D provide some different take on the monster encounter table. In the next installment we'll look at using one of those to inspire a revised mechanic for our OD&D games.


Monday, May 2, 2016

Arena v1.11: Man vs. Man

Returning to the Arena simulator one more time; recall that the initial motivation for this project was to analyze exactly what kind of demographics emerge out of actual D&D play -- in particular, frequency at each level, and average ability scores, hit points, etc. (See various prior posts.) This software module was then used as the kernel of the supplemental applications, MonsterMetrics and the Marshal (last few weeks). In particular, the observation that the natural Arena man-vs-man simulation produces demographics quite similar to the units of Men in Vol-1 (bandits and the like) allowed us to use it as a nice platform for that application. Let's return to that original usage here.

One thing that slightly bothered me about prior versions of the man-vs-man Arena is that I could discern the following phenomenon: There tended to be a character with halfway-decent ability scores who started out, got a slight advantage over the other fighters in the list, and then basically cruised from then on by beating up on all of the lower-level fighters they were matched against (which was necessarily everyone, because the initial run starts with a list of all 0-level fighters). They could reach an arbitrarily high level by just letting the simulation run long enough and wiping up the floor with enough 0-level fighters one was matched against. But does that reflect a reasonable campaign milieu? Would the highest-level fighter always be someone who would not have succeeded, if only they had entered the list at a later, more fully developed stage (with higher-level figures in the population)? Were we biasing the top-character's abilities downwards due to giving them a head start in this way?

The solution would be to implement character aging over time in the simulator. Even if one "Adam" like character rose to prominence early on, they should fade later, and let the population naturally achieve some kind of equilibrium, where successful fighters all have to fight their way up a ladder of already-present higher-level NPCs. This would then present a more realistic demographic distribution and ability score averages. I chose to implement the aging parameters for ability scores from the AD&D DMG, and also impose a loss of fighters levels every 2 years once one reaches Middle Age, similar to Gygax's writeup on Conan over the years in Dragon #36 (see last week's post). The results were ultimately quite satisfying.

In doing this, I had to explicate an explicit "clock" on the characters for the first time. When I first created the Arena, I had in mind something like the gladiatorial system in ancient Rome; that is, perhaps 10,000 gladiator in the entire country, battling seasonally; that is: maybe 4 times a year. It turns out in D&D terms that this is not frequent enough combat to generate high levels. With minimal combats, the NPC earns only a small amount of XP, before the aging process kicks in and the sink back down in levels. So I started increasing the fights per year, with the following results generated in terms of highest level attained in the population:
  • 4 fights per year: max level 6.
  • 6 fights per year: max level 7.
  • 12 fights per year: max level 8.
  • 24 fights per year: max level 9.
  • 50 fights per year: max level 12.
Perhaps we might say that in "real life" (the first data point), the highest level achieved really is something like 6th level. But the 24 fights/year level does a better job of using the entire D&D level range, in particular the top levels for NPCs mentioned in OD&D (9th level Lords are reference as leaders for groups of Men in Vol-1, and Castles in Vol-3). That's a fight every two weeks, which starts to cast doubt on my assumption that everyone heals up between fights. On the other hand; if a high-level NPC smacks down a dozen or so 0-level mooks in a single encounter, that would fill their quota for a good part of the year.

Another thing I had to realize/adjust was this: Previously I'd used a lazy algorithm for level loss (as by undead), in which the XP was set to just 1 point below that necessary for the lost level (using the same code that would cap XP to prevent jumping levels on the upward climb). But here, that would result in an aging NPC apparently not ever losing a level, since they'd go down and then instantaneously back up again on the next fight. Therefore I also switched that code to match Gygax's rule in the AD&D DMG; XP now goes to the midpoint of the prior level after a level loss. Glad to be convinced of the necessity of that later rule.

Here's the results of the modified Arena man-vs-man program after those changes, letting it run for 500 "years". All fighters start out at age 18 and 0-level. Columns after "Num" all show averages for the given level:


I think that's a pretty attractive resulting population. Ability scores at the top level are broadly in line with what came before (not markedly higher or lower). As far as age goes, most low-level fighters are in their 20's, but the highest-level fighters are likely to be in their 30's or 40's. On this run of 500 years, there was one fighter who actually and kept fighting until he was killed at 76 years old; an outlier, but without historical precedent on Earth (one time on these simulations I've seen some grizzled warrior last until the age of 103, in line with Gygax's expectation that Conan would live until that age). All of this simply emerges organically from the mechanics involved, which I think is very nice; there is no enforcement of any maximum-age cutoff in the simulator.

A few other comments: Without the aging effect, obviously the NPCs involved can live arbitrarily long (hundreds of years), and so reach arbitrarily high levels (high teens and whatnot). Likewise, if we implement only the AD&D DMG ability score modifiers for age, we find that they make minimal to no impact on the overall demographics (again, NPCs wind up hundreds of years old and effectively of unbeatably high level). Only if we include the level-loss mechanism of Gygax's Conan does a realistic-looking population emerge. Generally what I see happening is that older high-level fighters sink from 8th to 9th level down to around 6th, at which point the earned XP sustains them against the next level loss, until at some point they get matched against a 7th-9th level opponent and they finally die by the sword. (Gygax suggested that Conan be reduced no further than 9th level, but this 6th-level point for an extremely venerable fighter doesn't seem bad to me.)

We might also consider classes other than the fighters used here. The Arena code also includes a slower level-loss factor for Thieves of one level every 4 years (again, similar to Conan's thieving ability at old age, per Gygax). I would assume that Wizards would not lose levels in the same way; we're all familiar with the trope of the bent-over, "wizened" figure, being in fact the most powerful/dangerous; although in this emergent system that would imply that they could live to any advanced age without limitation. Perhaps that's not a bad accident for our campaign.

Next time: The far more troublesome Man-vs-Monster case.

Friday, April 29, 2016

Yet More Monster Metrics

Hopefully you recall our simulation work to generate our MonsterMetrics results from a few weeks ago (link). Today you'll see a few iterations on that concept, based on some recurring comments from the discussion here that followed. Things you'll see below:
  • Monsters assessed with 8-sided hit dice as a default. Knowledgeable readers will know that I personally run my games still using the 6-sided hit dice for monsters as they appeared in Original D&D (Vol-2; while using 8-sided dice for fighter hit dice, as per Sup-I Greyhawk). Granted that most people use 8-sided dice, it seemed warranted to run an assessment on that more common configuration. This, then mostly matches the stats as in Moldvay B/X or the AD&D Monster Manual. (Notes: While skeletons & zombies were boosted to 1HD and 2HD respectively, I kept other undead as in OD&D/BX, not the +1 HD boost for other undead as in AD&D. Normal men are therein uniquely 1d6; NPC fighters 1d8.) This will give most monsters a bit more power against the men.

  • Fighters assessed with advanced equipment. To measure a raw "equivalent hit dice" value (EHD), the initial assessment program kept fighter equipment constant (chain mail, shield, +1 sword), with the emphasis on correct XP awards. Here, for the purpose of balancing encounters, we may also simulate more expected gear for high-level fighters; plate-mail, shield, sword, and a 20%/level chance of boosting any of those by a +1 bonus (swords still start at +1 by default). Counter to the preceding, this may give the men quite a bit more power against the monsters.

Let's see what happens. First, simply switching from d6 monster hit dice to d8's (men still in chain and shield; no added magic per level):



This makes a fairly small difference in most cases. Previously our toughest monster, the Vampire was measured at EHD 36; now it is EHD 39 (in both cases, equal to 4 12th-level Lords). Hill Giants were EHD 8 and are now EHD 9 (previously worth 5 0-level men and now worth 6). New EHD values are given above if this matches how you run your game; but the differences are not great, and I don't see any need to change XP "boosts" (asterisks) as shown previously.

Now, the case of monsters with 8-sided hit dice against fighters more fully equipped (plate, shield, 20%/level to boost any of their armaments):



Now, that's quite a different story. I've removed the appearance of the EHD column, because these measurements are totally not comparable (and I don't want any readers to be confused by that; again, I suggest using this table for balancing encounters but not XP awards). We see that a fully-equipped Lord of the 12th level can fend off much larger numbers of low-level types: 40 orcs, 45 bandits, 65 kobolds or giant rats, etc. One such Lord has about an equal chances to defeat 2 giants or trolls single-handedly; and 2 or 3 Lords may be victorious over a vampire or purple worm. Note that this is still without any extra attacks by the Fighters (which is more fodder for my frowning against AD&D-style mega-attack counts; surely fending off a half-hundred normal men is sufficient, and we need not further boost that by an order of magnitude!). Also: Fighter stats are on average just straight 3d6; if we dialed that upwards due to expected survival bias, the men would be at even more of an advantage.


Finally, let's include the case as in my games where monsters have 6-sided dice, and men have arms and magic as expected above:



Again, the change in monster hit dice from d6 to d8 or back is not very great. The 12th-level Lord is now only worth 44 orcs instead of 40. Numbers against the upper-level monsters are mostly unchanged. Not a big deal either way.

That said: I would highly encourage any DM's playing with post-Greyhawk 8-sided monster hit dice to try switching back to the original, and rolling d6's for hit dice instead. It's so much easier to find, keep, and use a batch of that die type; as we can see here, the effect in battle is practically negligible; and my players have never noticed the difference.

Want to run these assessments according to your own custom parameters? Here's MonsterMetrics v.1.01 which lets you do that. As usual, download and unzip the first file, and from the command line type java -jar MonsterMetrics.zip to get it running. Now, you can add a command-line switch like -b=3 to indicate the base armor type for your fighters (3=plate, 2=chain, 1=lather, 0=none). Also now included is the switch -p=20 to set the percent chance per level for a magic boost to any item (default is zero if none specified). Finally, changing monsters stats requires editing the monsters data file; included below is the alternate file Monsters-d8.csv with 8-sided hit dice for the monsters (rename this as Monsters.csv to get the program to use it as input). Any interesting new discoveries?