D20 Source

Updated whenever


Stray Thoughts on Mass Combat

posted Saturday, July 28th 2007 by Jonathan Drain
None of the Above

I’ve been playing Rome: Total War lately and it’s got me thinking on the topic of mass combat in D&D. I don’t doubt that there must be a half-dozen mass-combat systems for the game, but several of them have to be rubbish, overcomplicated, or both. Your average Dungeon Master will probably only run the occasional large-scale combat, and so any solution must be quick and simple.

Combat systems involving entire armies (e.g., Warhammer) have traditionally made squads of troops the smallest division handled in the game, and it wasn’t until computer games that complex systems going down to the individual soldier were able to be made simple. In a D20 system, modelling combats between hundreds of soldiers on an individual level is ridiculous, so the solution is to effectively treat each unit as its own creature, not unlike the swarm template.

What I’m thinking, then, is that a unit of troops is considered to have the offensive ability of an individual member, but has hit points equal to the total hit points among the unit. A unit of twenty kobolds would thus have an AC of 15 and a melee attack bonus of +1, but 80 hit points. Should a player character decide to attack a unit of kobolds solo, he is effectively fighting one kobold with eighty hit points – at least, until the unit takes enough losses that it loses morale and flees, requiring a basic morale system.

This simple method has two limitations. First, there’s no penalty in place for being outnumbered. If we suppose they don’t break formation the kobold unit can make three melee attacks against the human. What about twenty kobolds fighting twenty humans, or thirty humans? Logically, each member of one row of a unit can attack his opposing counterpart once, but even five attacks per unit begins to get silly. Units tend to fight other units rather than individuals, and a row of people attacking each other twenty times a round is going to wind up dealing fistfuls of dice in damage.

Ideally, then, you might want to abstract this even further, by declaring each unit to have one attack or set of attacks each round, and simply granting attack bonuses or penalties depending on the relative size of each unit. This would probably require some tweaking to get just right. Here, there are two issues. Since each unit’s attack represents the attacks of several individuals, we must work out how the damage dealt translates into attacks. Secondly, we have the perhaps unlikely situation where a unit can fail to cause any injuries in one round, but slay several soldiers the next. It seems the situation needs more work.

Alright, that’s my rambling done.

Comments

  1. Alex Schroeder

    July 28th, 2007

    I like MassCombatMadeEasy by Greywulf. It even has a few sample combats, so it should be easy to decide whether you like it or not.

  2. Darkfire

    July 31st, 2007

    A single d100 roll can be used to resolve the number of hits that a unit achieves in a round against it’s opposing unit by calculating the appropriate binomial distribution ahead of time.

    Assuming that the attack bonuses of our attack unit (A) are identical (as are any modifiers due to terrain, spells, equipment, etc), that the AC (plus modifiers) of the opposing unit (B) are also identical and that all members of unit A can make one attack per round. Assume that unit A has n members. The probability of single member of A hitting a member of B is p (which, thanks to D20 rules is always a minimum of 5% and a max of 95%) and the probability of a miss is 1-p.

    The probability of unit A achieving r hits against unit B is:
    nCr * p^r * (1-p)^(n-r)
    where nCr | n! ÷ r!*(n-r)!

    Example: unit of 5 people with a +3 modified attack bonus vs a unit with AC 12. Probability to hit is 55%.
    Probability of unit achieving 3 hits:

    5C3 * 0.55^3 * 0.45^2
    =
    ((1×2×3×4×5)÷(1×2×3 × 1×2))*0.55*0.55*0.55*0.45*0.45
    =
    33.69%

    From these figures you can put together a cumulative probability table to work out what you need to roll on a d100 in order to achieve any number of hits (dead easy to do in MS Excel or OpenOffice Calc. Apologies for the crappy ASCII table. I'll edit/repost it if necessary):

    | n | r | nCr | p | 1-p | P(r hits)* | Cumu. Prob.** | Roll |
    | 5 | 0 | 1 | 0.55| 0.45| 0.02 | 0.02 | 1-2 |
    | 5 | 1 | 5 | 0.55| 0.45| 0.11 | 0.13 | 3-13 |
    | 5 | 2 | 10 | 0.55| 0.45| 0.28 | 0.41 | 14-41 |
    | 5 | 3 | 10 | 0.55| 0.45| 0.34 | 0.74 | 42-74 |
    | 5 | 4 | 5 | 0.55| 0.45| 0.21 | 0.95 | 75-95 |
    | 5 | 5 | 1 | 0.55| 0.45| 0.05 | 1.00 | 96-100 |

    Excel formulae (for Calc exhange commas in POWER(a,b) with semi-colons):
    row A | 5 | 0 | =FACT(A1)/(FACT(A2)*FACT(A1-A2)) | 0.55| =1-A4| =A3*POWER(A4,A2)*POWER(A5,A1-A2) | =A7 |
    row B | =A1 | =A2+1 | =FACT(B1)/(FACT(B2)*FACT(B1-B2)) | =A4 | =A5 | =B3*POWER(B4,B2)*POWER(B5,B1-B2) | =A8+B7 |


    copy and paste row b until the result in the second column matches that in the first.
    *to 2 d.p so cumulative probability won’t always look right.

    A table for the full range of value for p (you only actually need 5% – 50% in 5% increments (because at higher probabilities you can use the same table to work out the number of misses instead of hits) but you can go up to 95% if you like) can easily be put together. Here in the UK you’re actually given a booklet with these tables (amongst others) in to take into A-level Maths exams (YMMV – I’ve only sat papers from one exam board (AQA) so have no idea whether this is typical for others). From my copy (which was roughly 20 years old when I got it – we did get given new versions but had to hand those

    back in) with probabilities converted to ranges (rounding to nearest whole number):

    Unit of 5:
    | no. of | prob of (hit) |
    | hits | 5% | 10 % | 15% | 20% | 25% | 30% | 35% | 40% | 45% | 50% |
    | 0 |1-77 |1-59 |1-44 |1-33 |1-24 |1-17 |1-12 |1-8 |1-5 |1-3 |
    | 1 |78-98|60-92 |45-84|34-74|25-63|18-53|13-43|9-34 |6-26 |4-19 |
    | 2 |99 |93-99 |85-97|75-94|84-90|54-84|44-77|35-68|27-59|20-50|
    | 3 |100 |100 |98-99|95-99|91-98|85-97|78-95|69-91|60-87|51-81|
    | 4 | | |100 |100 |99 |98-99|96-99|92-99|88-98|82-97|
    | 5 | | | | |100 |100 |100 |100 | 99+ | 98+ |

    Anyway, once you’ve got the number of hits, damage can be rolled normally (assuming same strength bonus to damage and same weapons) or you can come up with similar tables for each dice and add the appropriate extra damage on afterwards. Alternatively, you can assume average damage on a hit and round the total.

    If you’ve got a unit larger than the table you’ve got handy, just roll on it multiple times so, for a unit of 30 you’d roll on the above table 6 times. Depending on the size of your units, you may find having tables for 5, 10 and 20 convenient or you can just multiply up the result of a roll on a smaller table. Obviously, at the extremes of probabilities and size of units, certain numbers of hits cannot be achieved using a d100. As a result, you may have to compromise on the size of table used or start rolling d1,000s, d10,000s or resort to a calculator/computer’s random number generator but you’ll have to create more accurate tables with the appropriate ranges.

    Criticals can easily be taken into account. Say for a unit of 20 where you have five successful hits with a weapon with a threat range of 20, you can just roll a d100 and compare it against the 5% column in the table above, longsword would be the
    10% column (assuming that a roll of 19 would hit otherwise use the 5%), rapier the 15% . Any threats can then be rolled individually as, for the most part, they’re going to be a 1 in 400 chance you shouldn’t get all that many or just use an appropriate size version of the table (again!) if you do randomly get a lot.

    To keep things simple, assume that a unit retains it’s number of attacks regardless of it’s current hit points, ignore criticals and use average damage per hit. Best case, 100 attacks can be resolved with 5 rolls of a d100 whilst retaining the fundamentals of the d20 ruleset and a truely random number of hits.

  3. Artemel

    February 13th, 2009

    Actually, I believe it’s the DMG2 (3.5) that talks about making things into ‘swarms.’

    A ‘swarm’ of beggars make a nice mob for instance. A ‘swarm’ of horses makes a nice stampede. These rather simple rules could be used to make ‘swarms’ of warrior level 1s into ‘squads.’

    …dang… thanks for sparking this idea.

    ~runs off to flesh it out~

  4. matt

    March 23rd, 2010

    My preffered way is to divide them into units and then roll for each soldier in the unit using an online dice roller this speeds up the process. As for your idea of makin a division essentially one creature i think this is smart but i don ot do ti because my character LOVES greatcleave

  5. Ronny

    December 30th, 2012

    I just posted my version of D&D mass combat rules here:
    http://olddungeonmaster.wordpress.com/2012/12/30/dd-wars-mass-combat-rules/
    I would appreceate any comments.
    Thanks,
    Ronny

Comments for this article are closed.