Monday, April 18, 2016

The Marshal: Utility for Units of Men

In Original D&D, most of the monster listings in Vol-2 are only a single, short paragraph long. But there are two obvious, far more complex outliers that run several pages each: one is Dragons (running about 3½ pages), and the other, the very first monster listed, is Men (spanning about 2½ pages). In each case, part of the complication is that there many sub-types to choose from (for Dragons: the different colors and ages; for Men: various vocations and terrain-types), and each of them also have numerous sub-categorizations, with many details to work out. We dealt with an assessment for Dragons here last week. But personally, I find that one of most complicated things I can be called upon to handle as DM is a spur-of-the-moment, random encounter with a group of Men in the wilderness -- with figures numbering in the hundreds, several different units types, and possibly a dozen or more high-level NPC leaders.

So here's a computer utility to make the generation of groups of D&D Men a bit more manageable, which I call the Marshal. It's written as a Java program which you run on the command-line (and hence should work on any computing platform where you've got Java). Just ask it for a particular unit type of Men, and it outputs the listing for all the various soldier units (footmen, archers, cavalry, etc.), as well as all the high-level Fighter leaders in complete detail (including abilities, hit points, magic arms and armor, and compiled combat statistics).

Here's why this is a bit different from similar tools you've probably seen before: All of the NPC leaders have the entirety of their active careers actually played out in a simulation. This was motivated by the prior Arena project, as noted in the last blog post; we take a group of Men of the indicated size, insert them into the Arena and have them fight a whole career's worth of gladiatorial matches, simply reporting the top performers at the end. The Marshal'd NPCs aren't simply blank slates; they all actually started as 0-level normal men, with abilities rolled 3d6 in order, and had to battle their way to the top, one fight at a time. Those who were lucky in terms of ability scores, hit dice, match selections, and magic arms acquisition, rise to the top. As an example of Darwinian natural selection, the leaders will tend to have higher ability scores, hit points, and magical equipment -- without any arbitrary munging or guesswork by the DM. I find this to produce far more organic and believable results; in theory, we could name and identify every individual man our leaders ever crossed swords with to gain their current positions.

Here's how you can get and run the Marshal: (1) See the bottom of this post. (2) Download and unzip the first file, Marshal.zip into a location of your choosing (this includes the executable Marshal.jar and required data files). (3) Open a command prompt in this location and type java -jar Marshal.jar bandits (or whatever type of Men you need). It will simulate the careers of all the soldiers and leaders involved, and write the results to standard output. Then you can pipe or copy this output to a document of your choosing and easily compile your own "Rogues Gallery" for use at the table (or else keep the program itself handy on a laptop or tablet and run it live during play). Here's an example of the output:


D:\Prog\Java\Arena>java -jar Marshal.jar brigands

Brigands, Chaotic, 110 Total

- 60 Light Foot (AC 6, MV 12, HD 1)
- 20 Short Bow (AC 7, MV 12, HD 1)
- 20 Light Horse (AC 6, MV 24, HD 1)
- 10 Medium Horse (AC 4, MV 18, HD 1)

Walther, Human Ftr8 (AC 0, MV 6, HD 8, hp 53, Atk Sword +9 (1d8+1); Str 14, Int 14, Wis 7, Dex 7, Con 17, Cha 10; Plate +1, Shield +2, Sword, Dagger)

Falco, Human Ftr7 (AC 0, MV 6, HD 7, hp 47, Atk Two-handed sword +8 (1d10+1); Str 13, Int 15, Wis 13, Dex 17, Con 13, Cha 15; Plate +1, Two-handed sword, Hammer)

Hugo, Human Ftr5 (AC 0, MV 6, HD 5, hp 27, Atk Morning star +6 (1d8+1); Str 13, Int 13, Wis 10, Dex 16, Con 11, Cha 12; Plate, Shield, Morning star, Dagger)

Friedhelm, Human Ftr4 (AC -2, MV 6, HD 4, hp 15, Atk Morning star +4 (1d8); Str 9, Int 13, Wis 10, Dex 16, Con 13, Cha 10; Plate +1, Shield +1, Morning star, Dagger)

Johannes, Human Ftr4 (AC 3, MV 6, HD 4, hp 27, Atk Halberd +5 (1d10+1); Str 13, Int 14, Wis 11, Dex 10, Con 16, Cha 9; Plate, Halberd, Spear)

Notes: Leaders on heavy barded horses; morale +1.



I've tried to keep the output as brief as possible, to make it immediately readable and playable in a live game (granted that there's already so many moving parts, and these groups of Men are likely to show up by random rolls without any advance preparation by the DM). Keeping that in mind, here are some things that it simplifies or won't do (yet):
  • The various heterogeneous-composition units (e.g., light foot, short bow, etc.) are rounded to blocks of 10 for readability and possible utility in a 1:10 scale mass wargame. For very small groups, some of the heavier unit types may not appear (see previously here). 
  • You are guaranteed to get at least as many leaders of the top level as dictated in the OD&D text. Levels below that may not perfectly match up with the official rules, because of natural variation in the Arena simulator. For example: By the Vol-2 rules, the group of Brigands above should have one leader of 8th-9th level (which they do), two fighters of 5th-6th level (where they got one 5th and one 7th), and three fighters of 4th level (where in this case they only have two). Personally, I prefer this bit of organic variation and unpredictability; but as you can see, the results are naturally very close to the book rule anyway. 
  • These fighters all have one 8-sided hit die per level up to 9th, and then add +3 hit points for any levels after that (which you're pretty unlikely to see here). So, the output is fundamentally compatible with Original D&D (using Sup-I for hits), or any of the Basic D&D line (like Moldvay/Cook B/X, Mentzer BXCMI, Allston Rules Cyclopedia, etc.)
  • The only magic items included are those with a straight bonus-to-hit. I think this makes it easier to use at a glance, and were the only indicated items for Fighters which would make any difference in the career-simulator, anyway. If you want to go through and add more exotic types (like: intelligent swords, etc.), you can roll for that manually. The items shown were developed by rolling a 5% chance at each level-up to get an added point on any piece of equipment.
  • Armor will be fixed for a particular type of Men (e.g., plate for Bandit leaders, chain for Nomads, etc.); primary melee weapons are randomized among the obvious options (which I wanted for some variety); while missile weapons are not included (which I usually find are not important for leaders anyway). Technically, the OD&D rules specify that leaders of Men will only have magic "Armor, Shield, Sword". If you want to enforce that last stricture, use the switch -s on the command line, and then everyone will be armed with Swords.
  • Spellcasters, who have a chance of occasionally showing up for groups of size 200+, are outside the scope of this program, as they really don't fit into the model of simulating careers through man-to-man martial combat (also, they tend to be more variable by campaign in terms of identity, spell list, etc.; and are really quite rare in any case). You'll have to roll those members on your own, or make use of a separate single-character simulator (one possibility is here, although it doesn't naturally produce higher ability scores).
  • Boats for the Buccaneers and Pirates are also not specified. Personally, I go through and select  a Longship or Sailed Warship for about every 75 Men, assigning the top leaders as the captain of each.
And more command-line options to consider:
  • If you know how many Men you want in advance, just append that to the command, for example: java -jar Marshal.jar cavemen 50 gives you exactly 50 Cavemen. This also allows you to generate higher-than-normal group sizes (beyond the normal range of 30-300), although it might take a while to generate all the leaders, and as a side-effect some may come out at a higher level (I've seen 10th-14th level on occasion doing this).
  • If you want to include my OED House Rule Fighter Feats, then the command switch -f will add one every 4 levels (first published in Fight On #9, and detailed here; includes things like exceptional Strength, Weapon Specialization, Two-Weapon-Fighting, Tracking, multiple attacks, etc.).
  • If you want to force all the leaders strictly to have swords as in the Vol-2 text, then the switch -s does that (as noted above). 
  • If instead of the default XP-award rule in OD&D Vol-1 (100 XP per hit die), you want to use the alternate XP table from Sup-I/BX (included in data file XPTable.csv), then the switch -x does that. You're unlikely to see much difference from that in this program (maybe marginally longer to generate the leaders).
Also, a Java source code archive and documentation are available if you want to dig into that (normal users can just ignore everything except the first link below). Hope this adds to your game, enjoy!


27 comments:

  1. Wow! Thanks for putting the time into this, what a useful tool! Downloading and playing around with it now :)

    ReplyDelete
  2. Awesome, I have to mess with this later.

    Inspired by your recent posts, this weekend I rolled up a bandit group by hand with full stats for any leveled types, etc. Yikes, hand cramps just from rolling!

    ReplyDelete
  3. I've actually been mulling over an idea what with the slaughter or millions of 0-level men in your simulators lately. As background, I was never fond of the NPC classes in 3rd Edition. It always struck me as weird that this one 3rd-level melee guy is slightly better than these others because he has the fighter PC class, whereas they belong to the warrior NPC class. I also disliked how a world-renowned pastry chef had as many hit points as a powerful archmage.

    Despite my misgivings about their implementation, though, I've begun to think that maybe they were onto something with their PC exceptionalism, as well as with the ability for NPCs to gain some kind of mechanical advancement. Maybe the "0-level men" SHOULD be a different class from what the player characters can be, with its own progression and benefits. So perhaps out of a unit of 100 soldiers, only one has the adventurous spirit and heroic will to advance as a fighter, and the rest should advance along a different track.

    As mentioned, though, IMO the guys writing 3rd really overdid it. What I'm suggesting is something like this:

    * Every non-adventurer starts as a Level 1 NPC. This comes with 1d6 hit points and proficiency with the dagger and club.
    * There is no 2nd level of NPC; each individual has two pools of experience, which they fill by doing relevant activities and tasks - a civilian pool and a warrior pool
    * Gaining a level of civilian grants skill/proficiency ranks/slots/points or whatever you use, but no combat-related bonuses; this also includes knowledge of how to use the tools of a trade, if applicable
    * Gaining a level of warrior improves your to-hit chance as if you were a fighter (in those editions where it varies by class) and one hit point (NOT one hit die); also grants proficiency with one weapon and/or one armor type that the NPC has been training with

    This way a grizzled veteran mercenary who's fought in a dozen battles gets a leg up on the fresh peasant levy - even if both of them are equipped with the same pike and short sword - but without letting him step on the toes of low- to mid-level PC fighters.

    Plus, there's already some precedent for giving "better" NPC soldiers an extra 1 hit point - dervishes, berserkers, dwarfs, elves, and hobgoblins, for example.

    ReplyDelete
    Replies
    1. I agree with your first instinct that the 3E NPC classes were a misfire. It's so much complication for so little benefit. I'd rather have the issue wrapped into a more succinct system.

      In Original D&D, you had normal men with 1d6 hit points, and 1st-level fighters at 1d6+1. So all those "+1" cases (dervishes, et. al.) are essentially just the residue of intending them as simply 1st level fighters.

      I treat it that way in the simulator code. Everyone starts out at 0-level with 1d6 hit points, and on getting 1st level get the +1 hp bump. While on average that's the same as a 1d8 hit die, if you squint real hard, you may realize that in my model it's impossible for a 1st-level fighter to actually have 8 hp (or 1), prior to Con adjustment.

      Delete
    2. Yeah, I get that's how you're treating it. What I was really getting at is having an alternative advancement for 'common' NPCs to allow for differing troop qualities while avoiding having millions of members of the fighter class extant in the game world.

      Delete
  4. Amazing. Just... watch out that you don't end up recreating Dwarf Fortress. :p

    ReplyDelete
  5. This looks totally awesome. So much in fact that I decided to download the package to play with it, but unfortunately I get an error message.

    I have hardly any experience with java (I am more a python person myself), but google told me that the error is due to a version conflict.

    My version is 1.7.0_95 and I presume you have version 1.8? Now, I can manually install 1.8 but Debian recommends to stick to 1.7. So, I am a bit hesitant to upgrade. Would it be possible for you to create a package with version 1.7?

    ReplyDelete
    Replies
    1. Hmmm, well that's interesting feedback. The problem is, there's one point where I did a bit of fancy coding ju-jitsu, using a functional interface (lamba expression), which is only supported in Java 1.8 and later. Although now that I say that, it's actually in the MonsterMetrics module, not included in the Marshal code -- but I had to delete the 1.7 package from my system because it was giving me problems. Any chance you can take the Marshal code and compile it yourself? (biting lip)

      Delete
    2. I will try, but possibly I need some help. In that case I will drop you an email.

      Delete
    3. Do you have a Makefile? That would probably put me on track how to compile the thing properly ...

      Delete
    4. Unfortunately, I don't (normally I use the free jGRASP IDE, and did include a .GPJ project file with the code). I think makefiles are a bit uncommon with Java? Basically you can "javac *.java" all of the .java code files, and then the run-time environment knows how to stitch them all together. Thus you could run sans jar file with the simpler command "java Marshal bandits".

      jGRASP is available for Linux/UNIX, but I don't think it's necessary that you use that (http://www.jgrasp.org/).

      Delete
    5. Meanwhile, I got a bit further. In principle I can compile the files, but I run into some undefined things.

      Please, check your email at superdan.net account.

      Thanks for thinking along.

      Delete
    6. Huh, weird. (You might have to re-send your email, because I'm not seeing it at this time?)

      Delete
  6. Awesome Dan! Now, a couple thoughts and questions.

    Hit Dice - you used d8 for fighters, but I use the straight d6 of the 3lbb's in my games. Is there any way to adjust for that?

    Magic Items: I'm not certain, but when a magic item appears I think you are giving a 1/3 chance to each category (sword, shield, armor)? U&WA p19 guidelines for NPC fighters gives the frequency of magic items possessed by fighters as swords 50%, shields 25%, armor 25%. Any chance of adjusting the program to reflect these percentages?

    Sword Bonuses - In your example, these are uncharacteristically high for OD&D. Instead of adding the bonus each time the sword comes up, perhaps you could have a 1-4 bonus range, always discarding a lower bonus already in the fighters' possession. The value of the previous discarded sword (1000 per bonus) could be added to the fighters XP score.

    Names - I don't know how you generate the names, but perhaps for more OD&D flavor you could use a syllable generator like the Holmes one or the Magira one I did based on the Zenopus method? Here's the link for that: http://boggswood.blogspot.com/2013/09/random-names-magira-style.html

    Bandits and nomads: The entries for these in Men & Monsters is based on the write ups Dave Arneson did that you can find in the FFC. Instead of 1 hero per 30 men, etc. the leader types there are specified as a 10% chance per 10 men of 1 hero, and a 10% chance per 100 men of 1 superhero. I don't know if that is of any use to you but I thought you might find it interesting.

    Lastly, I just wrote a 'blogpost about garrisons as described in Supplement II. Is there any chance you could add an option to the program to generate those? I think it is a bit less involved than generating bandits. The link for that is here: http://boggswood.blogspot.com/2016/04/sergeants-officers-and-temple-of-frog.html

    ReplyDelete
    Replies
    1. Thanks for the thoughtful words! I'll keep in mind the possibility of a switch for Vol-1 hit dice, and castle garrisons (good ideas). That might be more work than first expected, because the system currently expects a Sup-I type hit die model (flat one-die with no bonus per level up to name), and the stronghold garrisons don't use the same leadership specifications.

      Names I just grabbed from a list of German names, which work well for my purposes. It's possible to just modify the Names.csv data file if you wished (possibly pre-populated with some other program's name generator output).

      On magic items: I'm looking at Vol-2 p. 5, under Men, where it says "5% chance for Fighting-Men for each level, roll for... Armor Shield Sword". So I'm making a 5% check at each level bump to add a bump to each piece of equipment (3 separate checks per level).

      And I might have confused you with the OED-style attack output. When it says, e.g., "Sword +9" that's a total attack bonus, i.e., I'd roll d20+9+AC >= 20 to check for a hit (in this case, inclusive of fighter level 8 and +1 Strength modifier). If the weapon is magical that only shows up in the equipment listing at the end. You may notice that NONE of the fighters in this example have ANY magic weapons, so feel free to critique that as uncharacteristically low, perhaps. :-)

      Delete
    2. Magic Items:
      Ah! I was confused by that +9 bit. Got it. So, if I'm understanding correctly magical equipment bonuses are not considered in the combat calculation? Dan, intuitively I suspect that leaving out magical bonuses may be skewing your results in comparison to the design expectations of D&D. The magic items tables - weapons and armor in particular were literally a hard wired aspect of fighter progression. In OD&D, arms and armor make up a minimum of fully 1/3 of all magic items in treasure (Vol 2, p23), and some treasure types guarantee magical arms and armor will be present if there is anything at all.

      I know you have observed that certain ability score bonuses - especially constitution - have had a significant impact on survival probability. It seems quite likely to me that randomly getting a magical sword or bit of armor will have a similarly important effect on character survivability and character level distribution.

      Now for something completely different.. So the program makes a 5% check at each level, once for each piece of equipment. Okay, what I wonder is; could it be adjusted (without too much trouble) to check the 5% three times per level but giving simply an yes or no result not tied to the specific equipment type. IOW, instead of a 5% per level check for "shield" have a 5% three times per level for "is there an item" Each positive "yes" result then being checked by a subtable to see if it's a sword (50%), sheild (25%) or armor (25%)? This is how I do it when I roll up NPC's manually. (5% x level, three times - roll to find equipment type on any positives).

      I think if the program did that it would go a long way to "fixing" the "uncharacteristically low" count of magic swords. :)

      Delete
    3. Magic is taken into account; it's just that coincidentally in this run no one had a magic weapon. Case study of armor would be the first fighter above (Walther): Plate +1, Shield +2, with a Dex -1 mod: Base AC 2 - 1 - 2 + 1 = 0. For contrast, here's a bandit leader from another random run of the program:

      Helge, Human Ftr8 (AC 0, MV 6, HD 8, hp 40, Atk Morning star +11 (1d8+3); Str 13, Int 11, Wis 14, Dex 15, Con 13, Cha 10; Plate +1, Shield, Morning star +2, Hand axe)

      Notice that he has a magic morning star +2. Attack bonus is computed as +8 (level) + 1 (Strength) + 2 (magic) = +11. Also damage roll of 1d8+3 includes the strength & magic modifiers. (Perhaps I should have scanned more closely to make sure that all of the interesting bits showed up in the initial example.)

      In theory, we could certainly change the code for generating magic items to whatever we want. I think the effect of that specific suggestion would be kind of small. (It would change an expected weapon boost of +0.050/level to +0.075/level.)

      Delete
    4. Ah, cool. Thanks for explaining. My math may be wrong but I think .05 to .075 means an additional 2.5 swords per 100 characters. Maybe that's a reasonably workable figure to adjust results manually if I was so inclined?

      Delete
    5. I think that's a good observation.

      Delete
  7. Very nice, and thank-you for the link!

    I've been toying around with a more table-driven version for my tools page; I'd been trying to get at least orcs working (since they have such interestingly idiosyncratic leaders) in addition, which is where I got bogged down. I really must get back to that.

    ReplyDelete
    Replies
    1. I did get Bandits working (except for treasure) and added them to the "Experimental" section.

      Delete
  8. One significant difference in the equipment model is that RAW, the bulk of the magical items from encounters with men in 0e are from the leaders' equipment. Some low-quality random sampling on my tools page gives about a 50/50 shot of at least one intelligent blade with a significant array of powers per bandit group.

    One consequence I hadn't considered before is that a substantial number of bandit groups (maybe 25%?) have a leader that is more-or-less controlled by their sword.

    Not to say I disagree with your model; those swords can get out of hand very quickly and the game is probably better with a few less of them.

    ReplyDelete
    Replies
    1. Ha, good point! But I agree, brevity of the listing was, as usual, one of my main concerns. I'd rather have people adding intelligent swords where desired than having to go in and routinely delete a big block of text they don't want (as I've had to with other people's generators). I think it's at least minimally playable as-is, whereas when I run into a giant stat block these days (as for swords with lots of exotic abilities), my ability to parse it comes to a screeching halt. Same for spell-casters in that regard.

      Delete