Writing RPGs is Hard, Part 2: Combat Rounds and the M x N Problem

2019-09-13

As I write rules for an ever-expanding number of notional role-playing games, I repeatedly crash into the M x N problem1.

In a classic situation, Our Heroes, the Player Characters, have just gotten into a fight with some less heroic fellows, run by the GM. Let’s say there are M player characters and a total of N ruffians involved in this scrap. In each round2 of combat, each player decides what their one (1) character does, and plays out the consequences. During that same round, the GM has to decide what N ruffians are doing, and play out the consequences of each of their actions.

Now, when N = 1, the GM just has to decide for one Big Bad, say a dragon or property tax assessor. When N = M, the GM can decide for all N ne’er-do-wells, and then sneakily offload all the work onto the players. But in the remaining cases, especially when N > M, the GM has a problem. So do the Player Characters, usually, but in many modern games as in many modern action movies the PCs can mow down NPCs with ease. As far as I know, these are the classical solutions to the problem.

“I Go, You Go”

Typically RPGs have explicit rules to decide the order in which things happen in a game round. The oldest and most common technique is the “initiative roll”: each player and the GM rolls a die, adding their character’s “initiative” bonus if any, and act in the order of highest total to lowest. Some earlier rules implied that one should roll for initiative every round. These days most rules and most players roll once at the start of combat and keep the same order until that combat ends.

In some games initiative is more determinisitic, sometimes wholly so. In RuneQuest‘s original system each attack has a Strike Rank from 1 to 12. Strike Rank attacks 1 goes first, 12 goes last. An attack’s strike rank depends on the relative length of a character’s weapon, the character’s reach (implied by SIZ, a rough score for height and weight), and the character’s speed (refected in their DEX). Simpler variations proceed from highest DEX to lowest.

RuneQuest and its descendents complicate order of actions even further by giving characters multiple turns per round. In simpler variations, every character has exactly one Attack and one Parry; when a character is attacked the player rolls the Parry score for their weapon (or shield) to block some if not all damage. Shields are good at parrying, rapiers and daggers less so. (What if a character’s attacked twice? They try to duck3.) More complicated variations give them two actions, or between 1 and 3 (or more?) based on their DEX, which they can reserve to parry twice or take an action after their normal place in the Initiative order, which could be half their DEX or after everyone’s first actions or … well, you see my problem here.

Magic opens up a whole new cavern of krarshtkids. Versions that use traditional Strike Ranks compute a spells SR from caster’s DEX, Magic Points spent, and spell Intensity. Simpler versions assume all spells require one or more full combat rounds. Any interruption during that preceding round, such as being impaled with a spear, prevents a magician from completing that spell. The spell takes effect at the end of the (last) round or at the top of the next one. If order matters casters with a higher INT go first.

“(tick) … I Go … (tock) … You Go …”

While most RPGs state combat rounds typically take “a few seconds” of in-universe time, a GURPS combat round takes exactly a second of in-universe time. One can only do so much in a second: in GURPS that’s jog a few steps or take a step and swing a ready weapon or optionally take a step and ready an unready4 weapon, or take a single step5 away from combat, or … well you get the idea. Still, they need a rule that says characters with the higher Speed act before those with lower Speed6.

Aces & Eights divides combats into “counts” of 1/10 of a second. When bullet combat time starts, every character, player and non-player, adds the result of a 1d10 roll to their Speed. The result is the first Count on which that character can act. (They should rename Speed to Delay.) Then the GM starts counting up from 1. When the Count gets up to a character’s current Count, the player/GM decides an action, looks up how many counts it takes to complete that action, then adds that number to their current Count to decide when it happens. On the scheduled Count, if the character in question hasn’t been shot, stabbed, eaten by a grue, etc., the player or GM resolves that character’s action – firing a weapon, reloading a weapon, moving a yard – and in the case of attacks makes the “to hit” roll. Once that action is complete the character is free to decide a new one, schedule that, and the count continues. Maybe at the table it’s easier to show and do than subscribe, especially if there’s a way to tell at a glance which characters do what when, but it’s a long, slow march for the sake of realism.

“I Go For You”

As I alluded to earlier, One Neat Trick(tm) to offload all the die-rolling is the Player Rolls All Dice principle. Oh, sure, GMs say it’s to give players a feeling of agency. But it’s really because our arms would get tired in large battles.

In Players Roll All Dice games like Cypher System and the Buffy the Vampire Slayer RPG7, when an NPC attacks, the player makes a roll against a target number to defend. If a Slayer is battling a nest of vampires, first her player rolls to attack one vamp, then rolls to defend against two more, then rolls to dust a third, and so on. With a few algebraic tricks, all probabilities works out the same.

The only real downside, apart from Players and GMs still working out who goes first one of the hard ways, is that the GM’s side of the battle can seem a little … passive. Particularly in games like RuneQuest, where the defender rolls to Parry the first attack they can see, and has options for subsequent attacks like shield-work or dodging, the GM has to work a bit to narrate battles in a way that makes them sound exciting. The dice no longer speak for the GM.

Also, rolling one die (d6, d10, d20, or d100) creates a flat distribution, whereas rolling two dice creates a pyramid that makes “median” results more likely and extreme results less likely.

“Let Us Both Go Together”

A player and GM rolling dice simultaneously seems to have the same qualitiative benefits as Players Roll All Dice, while making the opposition feel more dynamic and turning flat distributions into bell curves. For example, in HeroQuest (the Moon Design RPG, not the old board game), the GM and player each roll a d20 in every contest. Likewise in ICONS 2nd edition when two superbeings clash, a player or GM adds d6 to the character’s relevant ability, higher total wins. Mathematically this is equivalent to rolling 2d6, but NPC abilities can use the same rating scale as PCs’.

In Advanced Fighting Fantasy 2nd Edition all characters in the fight roll 2d6 + Skill. If a character’s total is higher than their designated target’s, the character hits. This sounds nice and fast, and the total 4d6 makes a much better bell curve. Except … we’re back to the original M x N problem. Even if order doesn’t matter, the GM would still have to roll N sets of 2d6.

AFF partly solves this with monsters that can attack multiple targets at once, although not the same target more than once in a round. If the PCs are facing a horde of weaker opponents instead of one big one, a GM could treat the fraction of the Horde attacking a particular character as a single character, The GM would then go clockwise around the table (or counterclockwise, in alphabetical order, by height, whatever) and make one roll per player. Which might still be too many. And what about some sort of advantage when one side outnumbers the other?

We’ll return to this later.

“You Get To Go! Then You Get To Go!”

On the opposite end of the spectrum, one can decide who goes next by pulling numbers out of a hat. Or colored dice out of a bag. Or funky-looking cards off the deck.

The author of Troika! which yes I mention a lot got sick of what he literally called the “I go, you go” sequence. Instead, every player gets two cubes8 in the color of their choice (out of, say, red, yellow, blue, green, pink, and purple) to put in a bag, plus one to remember what color they chose. The GM adds a number of cubes of a different color (say, white) for every NPC hireling, plus a number of cubes of yet another color (say, gray) equal to the sum of the Initiative9 scores of all hostile NPCs, and one die of a final color (say, black).

During a round, someone (the GM or a player) would draw a cube out of the bag. Depending on the color, here’s what would happen:

red, yellow, blue, green, pink, purple
the player whose color came up chooses an action, probably to hit something.
white
the NPC decides what one of the random hirelings does, probably to run away.
gray
the GM decides what one of the hostile NPC does, probably hit a PC; the GM should try to make sure every NPC acts no more than Initiative times, but sometimes things get crazy.
black
the combat round ends, all cubes go back in the bag, and everyone starts over.

One can do the same with playing cards. Melsonian Arts Council had a Kickstarter for a specialized deck with hipster Planescape art, but one can do the same with regular playing cards: face cards represent the players, the other red cards the hostiles, the black cards henchpersons (if any) and a Joker represent End of Round.

In a playtest earlier this year, this system did not go over well. Partly it was because Our Heroes were facing ranged weapons, which at the time I ruled kept them from striking back. Troika! uses opposed 2d6 rolls (like AFF above), and usually if the defender wins they inflict damage on their attacker. If I ever use Troika! or something like it again, I’ll rule that if a defender wins but is far away or under cover, they can close the gap between them and their defender to attack next time.

The other problem, though, is that the randomness makes strategy difficult. The “End of Round” card keeps the end less predictable, and compensates for Hostile cubes/cards staying in even when the hostiles themselves die. But, especially with a small number of PCs or a smalller number of PC tokens and NPC tokens in the bag/deck, a PC could conceivably never get a turn in a round. Troika!‘s author insists real world fights also work like that, but who wants realism in a hipster Planescape game?

“All of Us, Then All Of You”

Some games abandon the whole notion of characters acting in sequence and simply put players ahead of NPCs. Shadow of the Demon Lord, for example, has all players act before all NPCs in “short turns” and “long turns”. First all PCs who can take a “short turn”, i.e. act immediately, perform their actions, then NPCs who are right next to their targets. Next PCs forced into a “long turn” by having to take a full move or other extended action first take their actions, followed by remaining NPCs.

Barbarians of Lemuria, Mythic Edition, has a slightly more complicated scheme which usually works out about the same way. At the beginning of combat, players make a pass/fail Initiative roll for their characters. Those who “pass” act before all NPCs; those who fail act after major villains but before “toughs”, i.e. less capable fighters with lower combat traits, and before “rabble”, i.e. undifferentiated crowds who do minimal damage and are more of a nuisance than a real threat. The full rules take into account higher levels of Initiative success, Hero Points, Villain Points, and special abilities, but that’s the gist.

“We All Go Together When We Go”

Some rules manage to resolve every action in a round at the same time.

In Tunnels & Trolls, for example, instead of each player making a “To Hit” roll, all players roll the damage of their (melee) weapons at the same time, and add up their dice and “personal adds” (damage bonuses for high characteristics). Meanwhile the GM rolls damage dice for all their characters. Each side then totals the damage they do; the ones who score more inflict the difference on the losers. The losers distribute the damage any way they want, including (within limits) giving it all to the guy whose armor absorbs it all.

As an aid to the M x N problem and GM sanity, most NPCs in T&T have a Monster Rating (MR) rather than the full set of characteristics that PCs have. A monster’s HP is equal to its MR, the GM rolls MR/10 dice for it, and its “adds” are half its current HP (or MR, depending how you look at it). So four monsters at 20 MR apiece are effectively one 80 MR monster.

There are a few more quirks in the rules, e.g. Spite damage, spell damage, and ranged weapon damage which does require a To Hit roll, but again that’s the gist.

As I mentioned previously, an RPG.NET reviewer called this “the worst I’ve ever read”. If your goal is blow-by-blow skirmish warfare, then yeah I guess it is. If you just want to roll lots of dice and find out what happens, then it’s not so bad.

“Where Do We Go From Here?”

After this whirlwind yet extraordinarily long introduction to my problem and a bunch of solutions, I was planning offer solutions for these RPGs I’m supposed to be writing. Howver, this article is already too long, so I’ll save that for a future installment.


  1. Not just that one, but it’s enough for one blog post. ↩︎

  2. Some games, especially D&D, use “round” and “turn” somewhat confusingly. I use “round” as a period of real-world time during which everyone goes a-round the table and takes their turn to play out what happens in a segment of game-world time. ↩︎

  3. See, because the defender would test their Dodge skill but also in RuneQuest one can play a Duck because someone was a fan of Howard the Duck and, eh, OK it’s not that funny. ↩︎

  4. In GURPS, any melee weapon but a sword, knife, or short club becomes unready after one strikes with it, whether one hits or not. ↩︎

  5. Also in GURPS it’s impossible to take more than a step away from an armed and dangerous character; this is their solution to the Attack of Opportunity problem, about twenty years before D&D 3.x “solved” it. ↩︎

  6. Also also in GURPS, Speed is half the average of DX and HT, only dropping fractions to calculate movement rate and the like; Speed 5.25 is a thing. ↩︎

  7. Part of Eden Games’ “Cinematic Unisystem” line, along with RPGs for Angel, Ghosts of Albion, and Army of Darkness. No, really. ↩︎

  8. Actually dice, because they’re bigger than those little wooden cubes. ↩︎

  9. Most creatures have an Initiative of 2, just like PCs; some slow and cowardly ones have Initiative 1, and a few fast or aggressive ones have 3, 4, or terrifyingly more. ↩︎