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.

17 comments:

  1. So, without the aging effect, how often (% of population) are those 70+ year old fighters appearing? 1 or 2 of those types per millennium seems pretty cool, even for mundane classes.
    4 attacks per year for "normal" folks leading to 6th level seem right. You figure a few goblinoid attacks for the militia to fight off each spring and fall. But maybe I have become too enamored of 3rd edition "E6" playstyle.

    ReplyDelete
    Replies
    1. I think without the aging effects, then it could be indefinite/almost the entire surviving population at arbitrarily high levels.

      I agree that the E6 sensibility is very attractive. :-)

      Delete
  2. Wasn't Gygax an actuary or similar at some point? It's interesting to note that he managed to intuit a lot of this, despite (I suspect) not having access to all the programming and statistical tests that you have at your disposal.

    ReplyDelete
    Replies
    1. The programming and simulation, not so much, but Delta actually hasn't used any statistical tests that weren't available back then. The foundations of modern hypothesis testing was laid at the beginning of the 20th century, and by the mid-1950s was quite solidified and mature. That's not to discount the continued research still going on today, by any means; but for a good comparison of a field that has been a formal discipline for approximately the same number of years as statistics has, consider aeronautics in the early 1970s versus today.

      As for Gygax, IIRC he was an underwriter, not an actuary - though he could certainly have picked up some stats from his actuary coworkers, from his university courses, or some combination of the two.

      Delete
    2. Yes, sorry, I meant the simulations rather than the actual statistics (the 1970s weren't that far in the past!).

      I do a lot of modelling, and some of the methods I use were described back in the 1950s, although back then it was often easier to solve it by hand than actually get the computer to do it!

      Delete
    3. Right, and even now, for any individual case it probably would have taken less work for Delta to calculate the exact expected values than the amount of work it took to create his simulator program. Where the program shines is in saving effort across multiple simulations - Delta can change details without having to exhaustively recalculate the whole thing.

      Delete
    4. I must say, there's so many moving complex pieces in the simulation (special abilities and whatnot) that I'm not sure how one would go computing these statistics in a formal fashion. The "Monte Carlo" simulations are the only way I can personally see how to do it. (I think Gygax's early circle did have a university statistics professor at the time, but I'm not sure if he had any input on this end of things).

      Delete
  3. Well, that's way cool. I wonder how it would play out if it were just hit point loss with ageing, not level loss per se. I noticed int he Conan example, he lost an average of 2.1 hp per year representing about .0125% of his total. I was thinking of applying that % as a rule in my campaign.

    ReplyDelete
    Replies
    1. Good idea! At the moment, I don't know.

      Delete
  4. Alternatively, just like how AD&D assigns different starting ages for fighters and wizards, you could assign different 'decline' ages for them. Maybe after reaching Old age, you have to check for mental decline with an increasing chance for every ten additional years. Perhaps something like the following (for humans):

    At 60 years, a 10% chance of decline
    At 70 years, a 20% chance of decline
    At 80 years, a 30% chance of decline
    Et cetera

    When mental degeneration is indicated by the dice, roll a d10 to find out which year during the decade the decline begins. Beginning at that point, lose one wizard level per year, and corresponding amounts of History/Knowledge skills if you're using a skill or proficiency system, as your memory fails you.

    ReplyDelete
    Replies
    1. That's not bad, I could totally see that.

      Delete
  5. One possibility might be to give each fighter a chance of a fight in each week, maybe with a subsequent chance of additional fights in a given week (perhaps we can theorize that if a fight happens in a week, then it is more likely that more than one will occur in that week; this could represent a fighter becoming involved in "an adventure").

    Just throwing out ideas to fine-tune this simulation to more closely approach what might happen in a D&D world.

    ReplyDelete
  6. So...just to be clear: the fighters in this sim are losing one level of experience for every two years after reaching middle age?

    Just making sure I've got it.

    ReplyDelete
  7. Won't higher level Fighters push their limits and go after higher level threats? And wouldn't that tend to reduce their numbers?

    ReplyDelete
    Replies
    1. I believe this is assuming that the PCs are PCs by virtue of being the ones who push their limits, while NPCs will by and large play it safe.

      Delete
    2. Right, Daniel has it above. If you have a finite population of men-types, and the highest-level fighters face of to the death in a round robin, the end result is that there's only one fighter above 1st level who survives.

      Delete