Monday, April 30, 2018

An analysis of combat resolution in Rommel

Recently we played our first games of Rommel (see my regular wargaming blog), a WW2 ruleset published by Honour.

The procedure for resolving combat felt a bit unusual to me, so I decided to analyze the procedure from a mathematical point of view. Note that this post is not a review of the ruleset as a whole - which I like very much for some its original concepts and clever ideas.  But I am always interested in analyzing specific procedures, how they work, and whether we can gain some additional insights from running through the numbers ;-)

Combat resolution in Rommel

First, let's take a look at how combat resolution in Rommel works. Rommel is a grid-based ruleset, and when resolving combat, the combat factor of all the units that end up in the same gridcell are added together. A D6 is then rolled, and cross-indexed on the table shown below. One then has to count how many "yellow boxes" have a number equal or lower compared to the total combat factor, resulting in the number of hits on the opposing units.


E.g., suppose we have a total combat strength of 15, and I roll a 3. Looking at the "3" column, I count 2 yellow boxes (7 and 11), whose value is less or equal than 15. Thus, I inflict 2 hits on the enemy.

Note that since 3 units can occupy a single gridcell, and the combat factor per unit is typically 3, 4 or 5, we might have a combat factor in the 9-15 range. This can be modified due to tactical factors, artillery support, etc., but those are typical numbers (at least in the scenarios we played).

When I first played Rommel, I felt this "user interface" for determining the number of hits was a bit strange, and as a good DIY wargamer, I always wonder whether I can replace it with something more to my own liking, without compromising the initial outcomes too much.

Expected number of hits per combat factor

Counting numbered boxes seemed a bit non-transparant to me. It is difficult to judge whether the number of hits we can expect for a given combat factor in a gridcell goes up linearly, whether there are certain "clicks" that suddenly give an advantage, etc.

So the first thing to do is to compute the expected number of hits per combat factor. The expected value of a random process is simply the average value one can expect when repeating the process an infinite number of times, and is computed by averaging all outcomes, weighted by the probability that each outcome occurs. For our procedure, we have 6 outcomes per combat factor, and each has an equal likelihood of occuring.
E.g., let's compute the expected number of hits for combat factor 15. We could roll a 1 on the die, resulting in 1 hit, or we could roll a 6, resulting in 4 hits. Averaging over all possible outcomes we get:

expected hits = (1+2+2+3+3+4)/6 = 15/6 = 2.5 hits.

 Or course, we will never score exactly 2.5 hits, but this is an average taken over all possible rolls for combat factor 15.

In order to compute the expected value for all combat factors for 1 up to 40, I simply made a spreadsheet, listing the possible outcomes per combat factor as given in the original resolution table, and simply let the spreadsheet compute the average. Since the minimum and maximum number of hits could also be of interest, I plotted these in additional columns as well.



Hits on Die roll






Combat Factor 1 2 3 4 5 6 Expected Min Max
0 0 0 0 0 0 0 0.00 0 0
1 0 0 0 0 0 1 0.17 0 1
2 0 0 0 0 0 1 0.17 0 1
3 0 0 0 0 1 1 0.33 0 1
4 0 0 0 0 1 2 0.50 0 2
5 0 0 0 1 2 2 0.83 0 2
6 0 0 0 1 2 2 0.83 0 2
7 0 0 1 1 2 2 1.00 0 2
8 0 0 1 1 2 3 1.17 0 3
9 0 1 1 2 2 3 1.50 0 3
10 0 1 1 2 2 3 1.50 0 3
11 0 1 2 2 3 3 1.83 0 3
12 1 1 2 2 3 3 2.00 1 3
13 1 1 2 2 3 3 2.00 1 3
14 1 2 2 2 3 4 2.33 1 4
15 1 2 2 3 3 4 2.50 1 4
16 2 2 2 3 3 4 2.67 2 4
17 2 2 2 3 4 4 2.83 2 4
18 2 2 2 3 4 5 3.00 2 5
19 2 2 3 3 4 5 3.17 2 5
20 2 2 3 3 4 5 3.17 2 5
21 2 2 3 4 4 5 3.33 2 5
22 2 2 3 4 5 5 3.50 2 5
23 2 3 3 4 5 5 3.67 2 5
24 2 3 3 4 5 5 3.67 2 5
25 2 3 4 4 5 5 3.83 2 5
26 3 3 4 5 5 6 4.33 3 6
27 3 3 4 5 5 6 4.33 3 6
28 3 4 4 5 5 6 4.50 3 6
29 3 4 4 5 5 6 4.50 3 6
30 3 4 4 5 6 6 4.67 3 6
31 3 4 5 5 6 6 4.83 3 6
32 3 4 5 5 6 6 4.83 3 6
33 4 4 5 5 6 6 5.00 4 6
34 4 4 5 5 6 6 5.00 4 6
35 4 4 5 5 6 6 5.00 4 6
36 4 5 5 6 6 6 5.33 4 6
37 4 5 5 6 6 6 5.33 4 6
38 4 5 5 6 6 6 5.33 4 6
39 4 5 5 6 6 6 5.33 4 6
40 5 6 6 6 6 6 5.83 5 6

The number of expected hits goes up by combat factor (as we might expect), and the minimum and maximum number of hits go up as well. Note that these are the "raw results" before applying any modifiers after the roll, which in Rommel depends on tactical cards being played by one or both players.

To better understand this table, I also plotted these results in a graph:


As you can see, the expected number of hits goes up pretty much linearly, but there are a few places where the line could have been made smoother. E.g. there's a sudden jump for combat factor 26, which can be "smoothed out" by adjusting the table above if desired (see also appendix 1 below).

The dotted blue line is the linear "trend", as computed by the spreadsheet. You can observe that our expected value follows this trend fairly well, except near high combat factors. This is due to the maximum number of hits being 6. If 7 hits would be allowed near the end of the table, the expected value would increase slightly for those higher combat factors. However, since such large combat factors do not regularly occur in the game, we will not consider this effect any further.

The graph below shows an additional line, plotting the 0.15 times the combat factor. You can see that the blue trend line matches this 0.15*combatfactor very closely, except for a little offset near the origin.


A different combat resolution mechanic?

The interesting observation about the 0.15 line, is that it is very close to a slope of 0.1666... which is exactly 1/6. This number is promising, because 1/6 is exactly a single "chunk" of a probability step on a D6. Thus, can we design a procedure that produces as its expected value a number that is exactly 1/6 of the combat factor?

There are any number of different mechanics that can do this. A very simple straightforward one is to take as many D6 as the combat factor (thus, roll 15 dice for combat factor 15), and count any 6's as a hit. This produces an expected value equal to 1/6th of the initial combat factor. However, its variance is also very high. The number of hits could range from 0 to 15. See also Buckets of Dice mechanics for further exploring such a procedure.

So let us look at another procedure, and I suggest the following: Take as a fixed number of hits the multiple of 6 just below the combat factor, and any remainder left is used as the target number on a D6 to score an additional hit. E.g., for a combat factor of 15, we would score 2 hits (2*6 = 12); 15-12 = 3, so we need a 1,2,3 on a D6 for an additional 3rd hit. If our combat factor is 11, we would score 1 hit, and we roll a D6 with a 1,2,3,4, or 5 scoring another hit. If our combat factor is 19, we score 3 hits, and we score an additional hit of we roll 1 on a D6, and so on.

It is rather obvious that the spread for any given combat factor is 1 hit , but the chance for this additional hit goes gradually up for each additional unit of combat factor. The graph below plots the expected value for this new procedure, along with the minimum and maximum number of hits.


So, what can we see on this graph?
  • The blue line is the expected result for our new procedure, which follows pretty close the expected value for the original procedure.
  • The dotted blue lines show the minimum and maximum number of hits, which define a much more narrow interval compared to the original minimum and maximum values. I don't think there's a "right" or "wrong" aspect about this, it does depend what you like better: a higher  variability in results (a difference of up to 3 hits between die rolls) or a more narrow variability, with results being only 1 hit apart.
  • The "leveling off" of the blue line for high combat factors is due to the maximum number of hits being set at 6, as per the original procedure. Otherwise, a combat factor of 37 or over could possibly result in 7 hits according to our new procedure. But since such high combat factors do not show up in the game, we ignore this effect.
  • Our new procedure might be more user-friendly to resolve. The players can simply work out the number of hits without having to consult a table.
Other alternatives are possible as well, keeping the same expected value, but altering the minimum and maximum outcomes. E.g. if you like a Bucket of Dice mechanism, you could also divide the combat factor by 3, roll that many dice, and count any 4,5,6 as a hit. Or you could use a variation of what I suggested above, using D12's, etc. There are many possibilities, and in the end, it strongly depends on your personal preferences.

Appendix 1: Adjusting the original combat table

In hindsight, it isn't that surprising that the slope of the expected value is very close to 1/6. After all, this implies one additional hit for one die roll result when the combat factor goes up by 1. You can also see this in the original graph, when the slope of the expected value runs exactly parallel to the 1/6 line, e.g. in the range 14-19.

It is therefore rather easy to play around with the number of hits a little bit, to get an expected value line that runs exactly along this 1/6 slope. All it requires is to have the number of hits go up by 1 for one die roll result when the combat factor goes up by 1. There are different degrees of freedom to do this. E.g., if we start from the current line for combat factor 7, we have for die rolls 1-6: 0, 0, 1, 1, 2, 2 hits respectively. When we go to combat factor 8, the current table indicates 0, 0, 1, 1, 2, 3 hits (the number of hits for a die roll of 6 have gone up from 2 to 3). But you could also put it at 0, 1, 1, 1, 2, 2, which would result in the same expected value for combat factor 8, although with a slighter lower variation in results.

Actually, you could alter the table in such a way that it produces exactly the same outcomes as our modified mechanic. But I'll leave that as an exercise to the interested reader. You can play around with the combat results table yourself by downloading my original excel file.

Appendix 2: Fantasy Warlord

When I was doing the analysis for the new suggested procedure, I remembered I had seen a similar mechanic before. The fantasy wargaming ruleset Fantasy Warlord (Folio Works, 1990) uses % numbers for one figure hitting another figure. E.g. an Orc would have a 40% probability of hitting an Elf. If you have a unit of 8 orcs attacking, that would result in 8*40% = 320%, meaning 3 hits and a 20% chance of inflicting another hit.

Tuesday, April 24, 2018

Weather in Wargames

All battles in wargames are usually played in "neutral weather". It never rains, the field is never muddy, there is no fog, and it's not too hot. However, there are plenty historical examples showing that weather did play an important role on the battlefield. Waterloo is a notorious example.

If weather effects are included in a wargame, there are different things to consider:
  1. Determining the type of weather, and any changes in the weather during the wargaming day;
  2. The effects of the weather on movement, firing, visibility, etc.;
  3. For miniature wargames, how weather can be represented visually. But perhaps this is pushing things a bit too far?
Although waether is often ignored in games, it has always been a part of wargaming. The classic board wargame Tactics II (1958) has a weather table, along with effects on movement and combat. The idea is that every turn one rolls a D6 for the weather. Since one turn is supposed to represent one month, it is seasonal weather rather than day-to-day weather, and a different table is used for each season. The chart below is the actual weather table from Tactics II, along with its effects on movement and combat.


Very much the same approach can be found in many miniature wargaming rulesets, in which the weather is rolled for - perhaps depending on season and location - and the resulting weather has an effect on movement, combat etc.

However, suppose we want to include changing weather during the wargaming day? Surely we want a continuous change, i.e. we do not want to have a bright and sunny day on turn 1, a snowstorm on day 2, to turn to cloudy and foggy the turn after.

In the classic book "Practical Wargaming" (1974), Charlie Wesencraft proposed an interesting mechanic to ensure we have this continuous change. The idea is to represent all weather conditions on a linear scale, and roll each turn for a step "up" or "down" on this weather gauge. The actual device could be simply a marker that is put on the weather gauge, or a little pin that is put in drilled holes, etc. The relevant 2 pages from the book are shown below, but the ideas was published a few years earlier in Wargamer's Newsletter, April 1971.


A particular useful variation might be to allow players to move the weather gauge up or down one step (instead of it being a random outcome), depending on some exceptional die roll during the game (e.g. rolling a 12 on a 2D6 during a command roll), much in the same way as we would allow a player to control the length of the game (see our blogpost about The Last Turn in the Game). Thus, a player might want to move the weather to conditions that favour him more on the battlefield for a given scenario or tactical situation.

Apart from a gradual shift each turn, one still has to determine the "starting weather" for the game. A useful tool for this is a "weather die", which has various weather symbols. Since the various outcomes can vary wildly (sun to snow), perhaps a second D6 can be used to indicate variations within the main weather rolled for.



If you don't like rolling for weather at all, but still want to include weather and weather effects during the game, a very useful alternative is to look at historical weather records. These days, many weather records can be consulted online - actual websites may vary from country to country.
Now, suppose we want the weather record for the 18th of June, 1815, near Waterloo. Of course, this pre-dates the actual archived and recorded weather measurements, but we could take the 18th of June in a year for which measurements are available, thus using a plausible weather pattern for our wargame.

Let's say we would like to have the weather at Waterloo, on the 18th of June. We use Brussels as a close enough location, so let's try to find the weather for June 18 in different years. (I used http://www.eurometeo.com/english/ for generating these reports, but there are a number of similar sites available).

This is the weather pattern for June 18, 2012 in Brussels:


And this is the weather pattern for June 18, 2016, again in Brussels:

These seem like interesting weather records, and you can imagine using the sky conditions or the "significant weather" column as the weather pattern for the wargaming day.

So, use weather in your wargames as you see fit! And I am definitely interested in hearing about different weather systems that people have used in their own games ...

Monday, April 09, 2018

Last turn in the game

When playing a scenario, it is often convenient to set a number of turns within which one or both sides need to achieve their objectives. However, how many turns are appropriate for a given scenario? This clearly depends on the ruleset in use, but there are some rules of thumb I have used over the years, and a neat little mechanic to make the number of turns a variable factor in the game.

Number of turns

In my gaming group, we have a running joke that says that a given scenario ends "at the end of the wargaming day". This is a phrase often used by Charles Grant in his famous scenario books, without any further explanation. We always are/were confused whether he meant the end of the wargaming day for the players, or the end of the simulated wargaming day for the armies on the table. Hence, we often refer to it jokingly whenever someone asks about the end of the scenario. It's always "the end of the wargaming day".

However, that does not mean the length of a scenario cannot be set in advance. Clearly, this depends on a number of factors:
  1. How far do troops move per turn, versus the projected total movement distance?
    A typical example is an attack/defence scenario. Suppose the attacker starts at his own baseline, and needs to take a number of objectives (hills, towns, ...) roughly situated at the defender's baseline. Let us further assume that the table is 120cm in width, and that an average move is 15cm (6") per turn. This then translates to 8 turns needed to cross the width of the table. Thus, if you put the scenario length to shorter than 8 turns, the defender will have a hard time - or an impossible time - of reaching the objective.
    However, troops will not move at full speed in a straight line. You need to give some allowance for the attacker to manoeuvre across and around the battlefield. Hence, I often multiply the minimum number of turns needed by 1.5, resulting in 12 turns for the scenario above.
  2. Can troops move and fire, or only move during the turn?
    The above result of 12 turns assumes that units can move every single turn. But suppose your ruleset only allows movement or fire. Sure we want the attacker to fire at the defender as well, and any turn in which firing happens, movement will not happen for a firing unit. In the case of a static defender, the defender does not need to move and can fire every turn. In a typical attack-defence scenario using a move-or-fire ruleset, we might want to give the attacker at least the same firepower as the defender. The attacker therefore needs twice the amounts of units, half of which will/can  fire during a turn, while the other half is moving. Thus, if we want to give every unit the opportunity to reach the objective, we need to double the number of turns, resulting in 24 turns.
  3. Do we have an activation mechanism?
    Some rulesets do not allow every unit to do something. A system using cards or command rolls might restrict the number of units that can be activated during the turn. Suppose any given unit will have a 50% probability of getting activated. That means we have to double the number of turns, in order for our unit to reach the objective. Doubling our 24 turns from above, we now have a 48-turn long scenario.
The calculations above are only here to illustrate the process. If you use different assumptions, or put different restrictions on how many units need to reach the objective or move over a certain total distance, the multipliers will vary, and you will end up with a different total number of turns.

Variable number of turns

Computing how many turns we need is one thing, but should that imply the number of turns is this fixed number?

Most gamers are probably familiar with the last-turn-all-out-attack syndrome. If a player knows it's the last turn, he will risk anything to reach the objectives, because he knows there's no risk for the enemy to take advantage of it if all goes wrong, since there are no more turns left.

Some boardgames therefore use a mechanic to determine the last turn in a random manner. Starting at some point during the game, a random number (die roll, card drawn, ...) determines whether this was the last turn or not. Many different variants exist. There is no reason why something similar cannot be used in a miniature wargame.

E.g. suppose we have set the number fo turns at 20. We want a spread of plus or minus 2 turns for the game to end. The game could end at turn 18, or it could go on till turn 22. We can easily design a mechanic that gives a 20% increment each turn to end the game:
  • Turn 18: 20% chance the game ends (e.g. roll a D10, game ends on a roll of 1-2)
  • Turn 19: 40% chance the game ends (roll a D10, game ends on a roll of 1-4)
  • ...
  • Turn 22:: game ends with 100% probability.
Whatever mechanic you use, be sure that the game does end!

Players control the number of turns

In my games, I often use a mechanic(*)  that allows players to take a certain amount of control over the length of the game. Suppose the scenario is set to last for 20 turns. During the game, whenever a players rolls an exceptional result during some procedure (e.g. a double-6 on a 2D6 for a command roll, or a random event, ... ), he has the opportunity to increase or decrease the number of turns by 1.

Thus, if a player feels he still needs time to reach his objectives, he will often add 1 to the number of remaining turns. If he feels he needs to speed things up, he might subtract a turn. Or he might choose to leave things as they are.

We have used this mechanic in various games with different rulesets, and it often provides a healthy dose of suspense. In some games, it doesn't do much, but in other games, the count has gone up or down a few times. And towards the end of the game, the situation can become really tense and provide a lot of amusement and unexpected outcomes. If the event of altering the turn count happens infrequent enough, players do not have the impression it's an uncontrollable random device, but rather a little extra resource they can use to their benefit.

I even have a special large D20 specifically for this gaming mechanic. The D20 indicates the remaining number of turns (thus, every turn, the die is reduced by 1), but when the special roll or special event occurs, the player can dramatically and with the right amount of pathos turn the die up or down by 1.

My oversized D20, next to a regular D20. Some 42mm toy soldiers for size comparison as well. Winston Churchill noddingly approves.
(*) I encountered this particular mechanic in the first issue of Battlegames magazine (2006), where it was attributed to the ruleset Pieces of Eight.