Let’s create a simple wargame to aid us in refereeing a conflict between two factions—the Lizardman Tribes (LT) vs. the Human Kingdoms (HK).
We’ll accomplish this in three steps:
Build the basic design
Perform simple tests
Reflect on the results of testing to refine the design
Along the way, we will inevitably encounter the setup and motivations for solving the scaling problem inherent in building a wargame.
The Basic Design
Each faction commands two varieties of fighter. LT have Poison-slingers that deal area damage with exploding gas projectiles and Skirmishers who shift between throwing and thrusting spears. HK have Archers who are trained bowmen and Knights who are armored swordsmen.
We’ll track the following relevant scores:
ATK: result required on D20 to hit
RNG: range of the attack (1 = close, 5 = throwing-range, 10 = far)
DMG: damage that a successful hit can deal
DEF: result required on D20 to successfully defend against incoming damage
Troop ATK RNG DMG DEF
POI 15+ 1-5 3 17+
SKR 15+ 1-5 1 15+
ARC 12+ 3-10 1 12+
KNI 9+ 1 2 9+
In our resolution system we’re envisioning that each combatant can only take one strike; any damage that gets through a defense roll will result in a casualty. Being within the range 1 envelope enables melee attacks.
Controller Perspective
This is a purpose-built wargame—it’s a resolution tool to help us game out scenarios. We have a player for LT and for HK. The LT player might look at the wargame rules and come up with the following analysis:
Our Skirmishers are weak in meeting their Knight forces, but Poison-slingers can potentially deal massive damage. There is little to be done about HK’s Archers except to rush them down.
Our overall strategy should be to get Poison-slingers within attack range of the most dangerous foes, protecting them with a screen of Skirmishers.
The HK player will naturally have their own analysis, and both players must inevitably account for factors like terrain, initiative, manpower, and so on throughout the course of the many battles they’ll eventually fight.
Gameplay Testing
Imagine a few extra game mechanics:
combatants are organized into (rectangular) formations, or blocks, of 20
rules conspire to make an optimal front-line of 10 fighters
formations on the battlefield can advance forward up to 1 (in whatever our length measure) per round
instead of moving, a formation can reform and face its front in any direction
initiative, when unclear, is a simple roll-off and is by side (faction)
For the purposes of this overview, we have left out a huge library of typical game mechanics (morale, terrain, day-night, weather etc.) to focus on how the basic gameplay operates.
In the course of this war, observers are likely to see a wide mixture of assorted force sizes and dispositions. Let’s see a few example scenarios to get a feel for running this system.
Example 1
In this first battle, we have an engagement between a formation of Skirmishers and a (half) formation of Knights.
The front-lines are a distance over 2 from one another. LT has a tactical advantage here: Skirmishers can throw spears up to range 5, and spear thrusts can attack from the back-line.
Round 1
Knights declare advance. Skirms declare spear-throw. Initiative irrelevant.
Knights advance 1, bringing the front lines to a distance just over 1
Skirms attack: 20 dice (needing 15+) → 7 hits
Knights defend: 7 dice (needing 9+) → 6 blocked → 1 damage
Knights: 9 (1 casualty) [+1]
Skirmishers: 20 (0 casualties) [+0]
Round 2
Knights declare advance. Skirms declare spear-throw. LT wins initiative.
Skirms attack: 20 dice → 5 hits
Knights defend: 5 dice → 3 blocked → 2 damage
Knights advance 1, closing to a distance within 1 of the enemy front-line.
Knights: 7 (3 casualties) [+2]
Skirmishers: 20 (0 casualties) [+0]
Round 3
Knights and Skirms declare attack. HK wins initiative.
Knights attack: 7 dice (needing 9+) → 5 hits
Skirms defend: 10 dice (needing 15+) → 1 blocked → 9 damage
Skirms attack: 11 dice → 3 hits
Knights defend: 3 dice → 1 blocked → 2 damage
Knights: 5 (5 casualties) [+2]
Skirmishers: 11 (9 casualties) [+9]
Round 4
Knights and Skirms declare attack. HK wins initiative.
Knights attack: 5 dice → 4 hits
Skirms defend: 8 dice → 3 blocked → 5 damage
Skirms attack: 6 dice → 1 hit
Knights defend: 1 die → 1 blocked → 0 damage
Knights: 5 (5 casualties) [+0]
Skirmishers: 6 (14 casualties) [+5]
After Action Look
It’s pretty clear what will happen if we keep going. With four rounds of a simple scenario, we see some of the challenges both factions face if strategically poised against one another.
How long did this process take? This is a basic scenario without any complexities—just a lot of turning the crank of game mechanics. We can use the number of dice rolled as an indirect measure of time.
For each of the rounds:
20 + 7 [27]
20 + 5 [25]
7 + 10, 11 + 3 [31]
5 + 8, 6 + 1 [20]
This totals to 103 dice rolled or about 25 dice rolled per round.
Example 2
In this example, we have a simple but non-trivial engagement with three blocks on both sides. LT has 40 Poison-slingers in two blocks and a formation of 20 Skirmishers. HK has their 10 Knights half-block but with an additional full block of Knights and another full block of Archers.
Round 1
Both Knights declare advance. Archers, Skirmishers, and Poison-slingers declare ranged attacks. HK wins initiative.
Knights(D) advance.
Knights(E) advance. Now both Knights are within range 2 of the Skirmishers.
Archers attack: 20 dice (needing 12+) → 12 hits
Poisoners(A) defend: 12 dice (needing 17+) → 0 blocked → 12 damage
Poisoners(A) attack: 8 dice (needing 15+) → 5 hits
Knights(E) defend: 15 dice (needing 9+) → 9 blocked → 6 damage
Poisoners(B) attack: 20 dice → 5 hits
Knights(E) defend: 15 dice → 6 blocked → 9 damage
Skirmishers attack: 20 dice (needing 15+) → 9 hits
Knights(D) defend: 9 dice → 7 blocked → 2 damage
Poisoners(A): 8 (12 casualties) [+12]
Poisoners(B): 20 (0 casualties) [+0]
Skirmishers: 20 (0 casualties) [+0]
Knights(D): 8 (2 casualties) [+2]
Knights(E): 5 (15 casualties) [+15]
Archers: 20 (0 casualties) [+0]
Round 2
Both Knights declare advance. Archers, Skirmishers, and Poison-slingers declare ranged attacks. HK wins initiative once more.
Knights(D) advance.
Knights(E) advance. Now both Knights are within close range of the Skirmishers.
Archers attack: 20 dice → 6 hits
Poisoners(A) defend: 6 dice → 0 blocked → 6 damage
Poisoners(A) attack: 2 dice → 0 hits
Poisoners(B) attack: 20 dice → 9 hits
Knights(E) defend: 18 dice → 11 blocked → 7 damage [ELIMINATED]
Skirmishers attack: 20 dice (needing 15+) → 8 hits
Knights(D) defend: 8 dice → 5 blocked → 3 damage
Poisoners(A): 2 (18 casualties) [+6]
Poisoners(B): 20 (0 casualties) [+0]
Skirmishers: 20 (0 casualties) [+0]
Knights(D): 5 (5 casualties) [+3]
Knights(E): 0 (20 casualties) [+5]
Archers: 20 (0 casualties) [+0]
Round 3
Knights(D) and Skirmishers declare attack. Archers and Poison-slingers declare ranged attacks. HK wins initiative for a third consecutive round.
Knights(D) attack: 5 dice → 5 hits
Skirmishers defend: 10 dice (needing 15+) → 4 blocked → 6 damage
Archers attack: 20 dice → 9 hits
Poisoners(B) defend: 9 dice → 2 blocked → 7 damage
Poisoners(A) attack: 2 dice → 0 hits
Poisoners(B) attack: 13 dice → 1 hit
Knights defend: 3 dice → 3 blocked → 0 damage
Skirmishers attack: 14 dice (needing 15+) → 3 hits
Knights(D) defend: 3 dice → 3 blocked → 0 damage
Poisoners(A): 2 (18 casualties) [+0]
Poisoners(B): 13 (7 casualties) [+7]
Skirmishers: 14 (6 casualties) [+6]
Knights(D): 5 (5 casualties) [+0]Knights(E): 0 (20 casualties) [+0]
Archers: 20 (0 casualties) [+0]
Round 4
Knights(D) and Skirmishers declare attack. Archers and Poison-slingers declare ranged attacks. HK wins initiative again! Rigged!
Knights(D) attack: 5 dice → 2 hits
Skirmishers defend: 4 dice → 1 blocked → 3 damage
Archers attack: 20 dice → 9 hits
Poisoners(B) defend: 9 dice → 2 blocked → 7 damage
Poisoners(A) attack: 2 dice → 0 hits
Poisoners(B) attack: 6 dice → 2 hit
Knights defend: 6 dice → 4 blocked → 2 damage
Skirmishers attack: 11 dice (needing 15+) → 2 hits
Knights(D) defend: 2 dice → 2 blocked → 0 damage
Poisoners(A): 2 (18 casualties) [+0]
Poisoners(B): 6 (14 casualties) [+7]
Skirmishers: 11 (9 casualties) [+3]
Knights(D): 5 (5 casualties) [+2]Knights(E): 0 (20 casualties) [+0]
Archers: 20 (0 casualties) [+0]
After Action Look
The battle is not over, and it is not yet clear which side will take the field, but those Archers are ominous. We can see how this combat, despite the simplicity of its setup, was substantially more involved in every respect.
Mostly, we should highlight how long the process took. Using the same method as in the previous example, we count out 315 dice rolled in four rounds of combat—about 79 dice per round.
Reflections
On a fundamental level, our game seems sound. Formations are constructed from simple multiples of individual combatants. But the dice-throwing gets out of control rapidly.
The second example battle isn’t even that big—it’s just a skirmish between two small forces. A decisive battle between two well-supported armies would be a painful slog. When we increase the available complexity in the rules, that will also naturally extend the time it takes to resolve these dice.
At individual scale our combat system is simple, clear, and easily executed. But if we have 100 combatants, then we are looking at throwing something like 100 dice per round. This is demanding too much time and accounting from players while also diluting the impact of dice-rolling.
Even though we created an identifiably distinct design, we can see that this is going to be a problem for almost any wargame constructed by considering individuals. The full analysis of this problem relies on understanding what happens when the scope of considerations change—mechanically, mathematically, and philosophically.
Scaling
How many dice should we aim for? There is no logically necessary answer, but we know we want to condense dice rolls. A full block is made up of two rows of 10 combatants. What if the dice were attached to front-line and back-line?
If we consider a block of Skirmishers against a half-block of Knights, the Skirms will have 2 dice and the Knights 1 die. But what are the actual mechanics behind the dice?
The flow of combat resolution has been
hits → defense → casualties
which is defined by the production of hits (attacks) and subsequent reduction of damage from those hits (defense) to arrive at a number of casualties.
Recall the table of troop statistics:
Troop ATK RNG DMG DEF
POI 15+ 1-5 3 17+
SKR 15+ 1-5 1 15+
ARC 12+ 3-10 1 12+
KNI 9+ 1 2 9+
In the combatant-scale (C-scale) representation, a half-block of Skirmishers is a row of 10 actual Skirmisher combatants. An attack by this row would be 10 dice needing 15+ to hit with spear-throws. In row-scale (R-scale), it becomes a single die with 15+ producing a hit.
But what about defense? In C-scale, our Knights would roll a number of dice equal to the hits produced, attempting 9+ rolls to reduce incoming damage. It is in this reduction step that we find the design complications.
Hit Scaling
Firstly, it is clear that we no longer will have an unspecified number of hits leading to an unspecified (and reduced) number of casualties. If an attacking row produces a hit, the defending formation will either block that hit or have a row eliminated.
How do we deal with combatants that translate 1 hit into more than 1 damage? This applies to Knights and Poison-slingers in our design.
One solution is to change the number of hits—we use the DMG score as a hit multiplier. When a Knight row scores a hit, the target formation must make two Defense rolls instead of one. Poison-slinger hits demand three Defense rolls. And for each failed Defense roll, the targeted formation loses a row.
H hits → [DMG × H] Defense rolls → up to [DMG × H] rows eliminated
This seems like the perfect solution; everything just works out, even the worrying damage multiples we’ve naively sprinkled throughout our character system. It’s enough to make us suspicious.
Hit Scaling = Downsizing
A row of Poison-slingers attack and land a hit on a half-block of Knights—now those Knights must make 3 Defense rolls or be eliminated. This is exactly the same as if a single Poison-slinger successfully hit a single Knight. A Poison-slinger’s hit causes 3 damage, and the single Knight must defend against all 3 or die.
All we’ve done is turn 20-combatant blocks into 2-combatant blocks! This is equivalent to a simple 10:1 fighter scaling. We could use any other numerical scaling as long as the X in X:1 divides 20 evenly; the results would be correspondingly similar.
Success?
After all that design work developing a method to scale up for mass combat, we’ve run into the solution “pretend there’s not as many combatants.” As strange as it sounds, this is a strong solution! Other games, including AD&D and Chainmail, already successfully use this form of scaling.
It won’t always be possible to use—but when it is possible, it’s guaranteed to work. If a combat system correctly operates in 1:1, it will necessarily work in X:1. Restrictions on X come down to particulars in the game.
Nevertheless, there are reasons that this method will not always be satisfactory even if it is mathematically consistent.
Scope Mismatch
Using 10:1 scaling in our game to make every row a “combatant,” we move from 20 dice per formation down to 2. Thus if we have a combat where HK has 500 men and LT has 1000 lizards, HK will be handling 25 formations (50 total dice) while LT has 50 formations (100 total dice). That’s pretty manageable for such a large battle!
But what if these kingdoms are really immense? Historical battles can number tens of thousands of participants. If the LT player has to manage 10,000 lizards, that’s 500 formations or 1,000 total dice—decidedly less manageable.
With our HK vs. LT game design, it is actually the “formation = 20 combatants” rule that is holding us up from scaling to infinity. Wargames will naturally have such design anchors that don’t want to be abstracted away. The formation in our game is the thing that gets moved around and has attacks declared against it and so on—it’s a fundamental object!
If we are trying to make a game where the anticipated scope is battles with tens of thousands of combatants, our formation is a bad design! Fundamental objects in the game rules should be enabling and supporting the expected scope of gameplay. In cases like this, simple hit scaling is not going to solve the problem.
Granularity and Investment
Since “our game objects are poorly designed” has an obvious fix, let’s move to considering more subtle issues at the heart of the game.
Some of us will naturally see the 20-man formation and immediately think, “why not just roll 1 die per formation?” Formations already attack as one, move as one, and so on. Why not just take the extra leap?
And there are strong arguments behind this inclination. The rich interaction between ATK and DEF scores in our game means that 20 attackers can take out 0 defenders or 5 defenders or an entire formation or anything in between! We lose many possible outcomes when we scale hits to either wipe out whole rows or have no effect. But we are also shedding an enormous accounting burden.
See the orange casualty marks? Imagine keeping track of this for 20 or 50 formations instead of just 3! All that “richness” in the ATK vs. DEF interaction could be argued as being superfluous and distracting.
On the other hand, when does the scaling stop? If we scale to “infinity,” we will roll 1 die per army and call it a day. If we weren’t invested in the outcome of the battle, this is a fine—even good—solution. But if we want to characterize the outcome of the battle in any way (crushing defeat? miraculous victory? route? expert dominance or overwhelming rabble?), it is necessary to identify and provide the right degree of granularity.
Zeroing in on formations perhaps betrays a fascination with game mechanics. Because formations move, attack, defend etc. as a single object, someone motivated to master the game mechanics (hopefully, that’s most people reading this) will naturally think in terms of the game’s fundamental objects.
But in the gameworld, the formations are made up of world denizens. What if the players want to know whether that guy lived or died? The combatant might be a hated foe or a beloved commander or a player character. In some cases, wiping out a whole row of a formation and saying “he didn’t make it” might not capture the right level of information about the outcome of the fight.
Aesthetics
Rolling one or two dice to establish a previously uncertain outcome is a strong tool. But if we are playing in the HK vs. LT world, it might simply feel unsatisfying to someone that the 20 men they scraped together and trained are behaving, in a game mechanics sense, like they’re walking up to an enemy formation and collectively swinging a giant sword which will either miss or slay the whole group.
Fighting as a group is characteristically different from individual bouts. In the same way, piloting a giant spaceship is different from zooming around in an interceptor. They are the same idea applied to different scales, but the nature of the action becomes fundamentally changed with the scale. It can be useful and satisfying if different scales of gameplay have a distinct feel and behavior.
This can serve to both conceptually separate larger and smaller scopes while reinforcing the game’s themes through different styles of resolution. It’s not necessary, and it can be overdone (and overwrought), but the instinct to seek a merging of game mechanics and aesthetics is fundamentally sound.
Further Resolutions
More than just being a classic solution (AD&D wins again), hit scaling—which we’ve seen is equivalent to force downsizing—is both simple and guaranteed to work as long as no game-specific restrictions are holding it back. If we are constructing a wargame and need a quick resolution to a big battle, hit scaling is going to solve our problem.
But just as surely as hit scaling works, it does not add anything new to our game. It will not provide an adjusted perspective to highlight differences in scope or gameplay. This also means that hit scaling can not be a starting point of design—it needs some kind of anchor point as a launch pad.
How do we achieve the right granularity? How do we juggle the scope of gameplay, the burden on the players, and the aesthetic wishes of the designer? We’ll have to revisit these complications in a future look at alternative scaling solutions.
Thanks for reading! I have plenty to say about TTRPG design, and I am developing BMD, a proper wargame-infused TTRPG where we mass-slaughter aliens and take back a conquered Terran empire. See more here: