Wednesday, November 21, 2018

It's been a while ...

It has been a while since I posted something new on this blog. But there's good news, I have 3 posts in the making:
  • One about the mathematics of doing a single 10-damage hit, or doing 10 1-damage hits;
  • One about mechanics for using hidden troops on the table;
  • One about further limitations of grids, and more specifically, hexagonal grids, which is inspired by an image in Phil Sabin's book "Simulating War", and which is shown below. Can you spot the problem?

Thursday, August 23, 2018

Putting units or actions in the outer loop ...

Many of the discussions regarding rules design in miniature wargaming involve the turn sequence, and how to structure it in order to achieve some desired effects. Over the years, there have been many different variants of the turn sequence, illustrating various schools of thoughts on how to organize the game. Often, discussions are framed as IGO-UGO vs unit-activation, but the spectrum is more varied than that. See also my earlier post on discussing various ways of looking at the turn sequence.

In this post, I will offer a slightly different way of looking at the turn sequence, and how it can affect rules design.

Action-based turn sequences

In an action-based turn sequence, the turn is defined as a (strict) sequence of actions, and within each action, every units can do exactly that action. This is best illustrated with the classic move-shoot-melee-morale sequence. First, we have the movement phase, in which all units get to move. Then we have the shooting phase, in which all units can shoot. The same goes for the melee phase and the morale phase.

In computer programming terminology, one can see such a turn sequence as 2 nested loops . An outer loop loops over all actions, and an inner loop, for each action, loops over all units doing that action:
  • for each action X (in fixed order move, shoot, melee, morale):
    • for each eligible unit Y (order usually chosen by player):
      • unit Y does action X
Such a turn sequence has a number of advantages - there is a fixed order for all actions, and this implies one can be sure that all movement has happened before shooting and melee, morale checks are performed after all combat etc. This can lead to a design in which those various phases of the turn are strongly coupled. However, it also often leads to rules in which all turn phases use separate mechanisms which have not much in common from a procedural point-of-view. The mechanisms for shooting and melee can be very different, and morale usually is a separate subsystem.

An important and crucial disadvantage is that actions which are not explicitly listed in the turn sequence cannot be added to the games engine in an elegant manner. Such actions are often defined in terms of an existing action. E.g. setting a building on fire might take half a move; or instead of fighting a unit might build (part of) a bridge. An alternative solution is to add such additional actions explicitly to the turn sequence. E.g. one can imagine having a separate "engineering phase", or "spell casting phase". The drawback is that such specialized actions become very visible in the outer loop, while relatively few units might be eligible to act on them. These actions might also be rarely used during the entire game, depending on the specific scenario. In a fantasy ruleset we used during the late 90s, there was a phase in the turn sequence called "Morph Friendly Cyclics". It always gave rise to the same joke in each and every game. "Hold on guys, we forgot the Morph Friendly Cyclics phase! Friendly cyclics anywhere? No friendly cyclics? Are you sure? Ok, now we can move on ... "

Unit-based turn sequences

In computer programming, 2 nested loops can often be interchanged. We can also do this in the turn sequence. Instead of defining the turn as a loop over all actions, we define it as a loop over all units:
  • for each unit Y (order usually chosen by player, and/or driven by an activation mechanism):
    • for each eligible action X (chosen from a list of possible actions):
      • unit Y does action X
Such turn sequences are often called unit-based activation, since the units might be activated by die rolls, cards in hand etc. There might even be a terminating condition (e.g. a failed die roll), indicating the end of the turn. When a unit is activated, there usually is a choice of what actions, or a combination of actions (perhaps expending a budget of 'action points'), can be executed with that unit.

The main disadvantage of such a sequence is that it is difficult to maintain coherency between units. E.g. if one would like to maintain a battle line, and one cannot be sure that all units can move forward during this turn (e.g. if there is a possibility not all units might get activated), this can really frustrate player or result in ahistorical behaviour of the troops on the gaming table. Often, a mechanism for activating a group of units is necessary as part of the activation procedure.

On the other hand, there is a big advantage when one wants to add additional types of actions. Since actions do not drive the turn sequence at the top-level, adding actions does not change the turn structure. Rather, actions are an add-on to an already existing structure, which makes it easier to maintain coherent procedures and game mechanisms.

This does not prevent from actions having their own disparate procedures, but it does create a structure in which a coherent mechanism for resolving actions is more viable. One of the best examples is the Basic Roleplaying System by Chaosium. It exists in many different variations (the Call of Cthulhu rulesystem probably is the best-known). Looping over the characters is the outer loop (as in most roleplaying games), and each action - whether it is searching in a library or swimming across a pond - is resolved by checking a D100 vs a target number. That results in a very elegant and tight design, and adding new types of actions is rather straightforward.

The same structure can be used in miniature wargaming. Whether you want to add engineering actions, special movement or shooting actions, or actions invented for a specific scenario only, they can be fitted much easier in the overall game structure as opposed to an action-based turn sequence.

Tuesday, August 07, 2018

Triangular Grids

I am a fan of using grids for miniature wargaming. My wargaming table has a permanent Hexon terrain system laid out, but I've also played games on a rectangular grid, most notably my Flagstone Fleets game. See also the Table of Contents for previous discussions about grids.

In this blogpost, I would like to discuss the triangular grid. I think it's a grid that has not been fully explored in wargaming (hexagonal grids and square grids are getting much more attention), but it is worthwhile to look at some of its advantages and disadvantages.

Relation between the triangular and hexagonal grid

There is a strong relation between the classic hexagonal tiling, and a triangular tiling.


Mathematically, they are each other's dual tiling. This means that if you take the centre points of each hexagon, and you connect these centre points together, you get the triangular tiling. This also works in the other direction: if you take the centre points of each triangle, and connecting them together, you get the hexagonal tiling.

This duality results in a nice property: when playing a game on a triangular grid: placing the pieces on the corner points and moving them along edges, is equivalent to playing that game on a hexagonal grid by placing the pieces inside the hexagons and moving them across edges. And vice versa, playing a game on the corners and along edges of a hexagonal grid, is equivalent to putting the pieces in the triangles and moving them across edge boundaries.

There is however a major issue with the triangular grid, which is the asymmetry of connections between the triangles. Unlike a hexagon grid, triangle can connect edge-to-edge, but also point-to-point in various configurations. THis is also the case in a square grid, but in a triangular grid there are different ways in which triangles can connect point-to-point. This lack of symmetry is the most likely reason why triangular tiles have not been really considered for wargaming.

Has the triangular grid been used before?

When trying to look up whether (board) wargames make use of a triangular grid, surprisingly few results turn up. Most of the games that use a triangular grid, use the dual property, effectively using a hexagonal grid. The triangular grid is then merely an esthetic element in the design of the game. See e.g. games that employ the "Triangle System", See also this page at Forsage Games.

Most games that use the triangles themselves as areas usually are abstract boardgames. Some examples are: Blokus Trigon or Go played on a triangular grid.

Counting distances

Let us assume we do want to design a miniature wargame using a triangular grid. One of the things we need is a counting procedure for counting distances from one grid cell to another cell, and preferably, we would like that counting procedure to approximate the Euclidean distance between the centre points of both grid cells.

Using some simple goniometry, and setting the distance between the (barycentric) centre points between 2 adjoining triangles to 1, we arrive at the following relations:


Taking the red dot as starting point, we see that we can get to edge-to-edge triangles (yellow dots) using distance 1. The triangle directly opposite (blue dot) requires distance 2. Both triangles that touch the starting triangle, but are not directly opposite (yellow dots), are at a distance equal to the square root of 3, or 1.73.

Rounding up 1.73 to 2, we get the following, rather simple, counting procedure for measuring distances:
  • When moving from edge-to-edge, count 1;
  • When moving from point-to-point (any configuration), count 2.
This looks like a nice and relatively simple procedure for counting distances. Another way to look at this, is to construct a hexagonal grid on top of the triangular grid, by inscribing each triangle with a hexagon, and putting additional hexagons at the corner points (note that this is a different hexagonal grid as opposed to the dual grid as described above):

(Image from "20 Fun Grid Facts (Hexgrids)")
The yellow and blue triangles (or the yellow and blue hexagons) form our triangular grid. When moving from a yellow to an adjacent blue hexagon (i.e. moving on the triangular grid from a yellow to a blue triangle), you can do that directly, at a cost of 1 movement point. But when you move to a hexagon whose corresponding triangle is touching at a corner, you have to pass through a green corner hexagon, resulting in 2 movement points if you would count along the hexagonal grid. So, our distance rules derived above can also be considered as moving on the underlying hexagonal grid - albeit by disregarding the green hexagons as shown in the diagram above.
(You might wonder how this is possible, given that we have rounded one distance 1.73 to 2 ... but there are also 2 modes of moving on a hexagonal grid: straight ahead from hexagon to hexagon, or in a "zig-zag" pattern, which correspond to our differently connected triangles ... these two movement paths are not exactly equal, although we often consider them as such on the hexagonal grid.)

Ok, let's put it all together. How far can we move on a triangular grid given various amounts of movement points? The diagram below illustrate the movement ranges, using 1 movement point to move across an edge, 2 movement points to move across a corner.

The blue, green and orange triangles indicate the range using 3, 5 and 7 movement points. The dotted black arcs have radius equal to 3, 5 and 7. The dotted red arcs are scaled with a cosine(30 degrees) factor. This allows comparing the "zig-zag" movement when one would move along the horizontal row of adjacent triangles.

Facing, Battlelines and firing arcs

When located in a triangle, a unit can be oriented in 12 different directions: 3 sides, 3 corners, but there also 6 other directions that line up with rows of triangles (see diagram below). This is not unlike a square grid where you have 8 natural facings, or a hexagonal grid that has 12 facings (6 edges + 6 corners).
Square grids have 3 natural main directions along one which can put troops next to each other: vertical, horizontal, and diagonal. A hexagonal grid has 3 main directions, and 3 "zig-zag" directions. What about the triangular grid? The triangular grid also has 6 main directions, as shown below (the 2 other symmetric directions at 30 and 60 degrees are not shown).


The orientation and facings, having 12 "natural" directions on the grid, might be the biggest advantage of the triangular grid. However, just an in squares, the connections between the grid cells is asymmetric. But this is also the case when considering the "zig-zag" directions in a hexagonal grid.

Firing arcs become a little more complex. The diagram below shows firing arcs at 60 degrees, and a distance of 4, using the counting metric as derived above. Note the little discrepancy in the firing arc for the unit on the right.


All this seems workable, but it takes time getting used to.

Conclusion

So, should we use the triangular grid for our miniature wargames? Honestly, I don't know yet. I will have to run a test game or two ... but any other experiences or insights are certainly welcome!

Thursday, July 26, 2018

Grids and Miniature Wargaming ... a never-ending discussion

Introduction

Grids for miniature wargaming are regularly discussed on various forums. Often, such discussions revolve around the procedure for counting distances along the grid. Often, the grids under consideration are either the hexagonal grid, the square grid, or the offset square grid (the so-called brick pattern, which is topologically equivalent to the hexagonal grid for most purposes).

However, there are many other types of grids. In mathematics, grids are well studied and also referred to as "tesselations" or "tilings of the plane". Different constraints can be put on such grids: should all grid cells have the same size and/or shape? Should the grid have a repeating pattern? Should the grid never have a repeating pattern? See this wikipedia page for an introduction to the topic.

Just to get your brain juices flowing, here are some specific pentagonal tilings (a pentagonal tiling uses pentagons). Would it be possible to use such a tiling for a miniature wargame?

The 15th monohedral convex pentagonal type, discovered in 2015
The "Cairo" pentagonal tiling.
Many of you would shudder at using such a grid, but why is that exactly? After all, there are plenty of examples of irregular grids that have been used in board wargames, also known as "area-based  movement" to distinguish them from "hex-based  movement".

Storm over Arnhem often is credited to be one of the first board wargames to use area movement, but a boardgame classic such as Risk uses area movement as well, as do countless other board(war)games.

Grid used in Storm over Arnhem. Image from Boardgamegeek.com
Risk map. Image from Boardgamegeek.com
Why do we not consider such playing grids for miniature wargames, and typically restrict ourselves to either a hexagonal grid or a square grid? After all, it should be easy enough to place miniatures in a grid cell, and move them from cell to cell, just as we do in such boardgames?

For miniature wargaming, we often need more functionality from the grid than simply moving playing pieces from cell to cell. More specifically, we need the following:
  • A movement procedure for miniatures or units on the grid;
  • A procedure for determining shooting ranges;
  • A way to orient miniatures or units relative to the orientation of the grid;
  • Align units to adjacent gridcells, such that we can make linear battlelines;
We will discuss each of these issues below.

Movement on the grid

This is the topic that usually gets most of the attention when discussing grids for miniature wargaming. Often, people try to come up with ways to move units on a square grid such that the distortion for diagonal movement is corrected. See also the previous blogposts Square Grids and Square Grids (2) on the topic, in which I also explain that we do not want a measurement procedure (measure a movement distance from starting cell to end cell), but rather want a counting procedure (count expended movement points when moving one cell to an adjacent cell).

In principle, it's very easy to come up with a counting procedure - simply count the number of cells as you move along. However, we want to take into account the various connections between cells. If connections are not symmetric (as in the case of a square grid), movement might become a bit more complex. In irregular-shaped grids, it might become very complex.

Movement on the Cairo grid. Each cell counts as 1 movement point, only edge-to-edge movement allowed.
Movement on the Cairo grid. Each cell counts as 1 movement point, edge-to-edge and point-to-point movement allowed.
Then why do some board(war)games use irregular grids? Usually, because movement is restricted to moving only 1 area, or perhaps 2. In such cases, the total movement distortion when compared to the "true" Euclidean distance is less of an issue.

Moreover, the irregular shaped cells can often serve a purpose. Difficult terrain can be turned into smaller grid cells, and easy-going terrain into larger grid cells, thereby avoiding different movement point costs for different types of terrain.

In miniature wargames, we are so used to having movement speeds doubled or halved depending on terrain, that we usually don't consider irregular grids for that purpose. Often, we prefer regular-shaped grids, and stick to different movement points for different types of terrain. But this also has a reason. Miniature wargames - unlike board wargames - often employ a different terrain setup for each game. Having your irregular grid reflect the terrain sounds like a great idea if you have a fixed map for each and every game, but when you want to shuffle terrain around for each game, a practical solution is not immediately feasible. However, this should not prohibit us from using irregular grids, since different movement values depending on terrain in a specific grid cell is still a possibility.

Shooting ranges on a grid

Most miniature wargaming rules require us to measure the distance between a shooter and a target. Again, as in a movement procedure, we rather want a counting procedure rather than a measurement procedure. We usually want to be able to count the number of cells that lie between the shooter and the target, and use this number as the shooting distance to determine whether the target is in range, whether modifiers need to be applied, and so on.

This is the real bottleneck for using irregular-shaped grids in miniature wargaming. Although we can imagine counting the number of cells, on an irregular grid we might be left to wonder whether it is the shortest distance possible. Especially when the size of the gridcells reflect the type of terrain as mentioned above, the counted shooting ranges can become really distorted, and it would allow you to shoot further if the intermediate terrain is easy-going and suddenly reduce your range when you difficult-to-traverse grid cells lying in front of you. Hence, counting shooting ranges requires cells more or less of equal size.

However, if your ground-scale is such that shooting is restricted to adjacent cells, this is not really a strong requirement. Some distortion might pop up, but no more as in the many boardgames that use an irregular grid and allow adjacent combat only.

Related to determining the shooting range is the issue of visibility. On hexagonal or square grids, the line-of-sight is checked vs intermediate grid cells and terrain therein that might block the line of sight. Because of the regularity of the grid, deciding what cells are crossed by the shooting line can often be eye-balled. But not so in an irregular grid, where this would become more complex, unless you limit shooting ranges to 1 or 2 cells.

Orientation of a unit within a gridcell

Miniature wargames often stipulate firing arcs for units when shooting. When playing on a grid, this means positioning units in a specific orientation on the grid (facing an edge, facing a corner, ...), and defining shooting arcs in terms of grid cells. Often, such a shooting arcs takes the form of a "wedge". In the case of hexagonal and square grids, this is often straightforward, but for irregular grids, this again is a non-trivial procedure if your shooting range extends to 2 cells or more. Even a shooting arc of 180 degrees becomes non-trivial to determine.

Alignment of a unit to adjacent grid cells

Another issue that has to with alignment, is the alignment of adjacent cells, and hence adjacent units. Some periods in which linear warfare is a major element on the battlefield, require that you can line up units next to each other. Easy to do on a square grid (at least in the horizontal and vertical direction, and perhaps the diagonal one), a bit less easy to do an a hexagonal grid (although there are 3 main axes each at 60 degrees where this is possible, but not orthogonal), but almost an impossibility if you use an irregular grid.

However, if the game is a skirmish game (no lineair formations needed), or set in a modern period (spread-out troops), this is less of an issue.

Conclusion

Taking all of the above into account, we want a grid that:
  • has uniform, regular, more-or-less equal-sized cells, such that we can have an easy counting procedure.
  • allows for easy orientation of units inside a cell and alignment with adjacent cells.
This brings us mathematically to uniform convex tilings, tilings which consist of regular polygons. When we take a look at the list of these tilings , we encounter the usual hexagonal and square grids, but there is also at least one other tiling which might prove to be useful to miniature wargaming, but which has (at least to my knowledge) not really been explored: the triangular tiling.

Triangular tiling
I think the triangular grid has a number of unexplored advantages, not in the least advantages in terms of alignment. However, it has asymmetric connections (both edge-to-edge and point-to-point) which might make a counting procedure more difficult. But we'll keep a full analysis for a future blogpost!

Addendum
  1. As can be expected, the discussion of grids (and especially hexagonal grids) has a long tradition in board wargaming. See e.g. this discussion on boardgamegeek
  2. I also wrote a follow-up post n triangular grids.

Sunday, July 22, 2018

Deviating templates

Introduction

When you look at the history of wargaming, there are all sorts of strange contraptions that various rulesets use to determine area effects of firing. Most of these come in the form of firing templates. Usually, the template is placed on the table, and all figures underneath the template have some probability of getting hit.

Templates are an old idea. Below you see a cannister template from The Wargame by Charles Grant, which was soldered together.


Here's another curious template, from Don Featherstone's Advanced Wargames.


Especially fantasy rules have used templates in all forms and sizes. Here you see a selection of templates from my "templates box", most from various incarnations of Warhammer. The "Fallen Drunk Giant" template is still one of my favourites :-)


In order to bring more variability (and randomness) in the fire effect, some rules also specify that the template can "deviate" from the original position. A random direction is determined, a random distance is rolled for, and the template "deviates" that particular distance in that particular direction, to determine the final area where the firing will have an effect.

There are various possible mechanisms to determine this random direction and random distance, and especially fantasy and science fiction rules have used a whole zoo of variations on this theme over the years.

It will be impractical to analyze them all in terms of probability and effect, but I have chosen one particular procedure using the "scatter die" and "artillery die", I believe first pioneered by Games Workshop back in the nineties (any corrections welcome!).


The idea is as follows:
  1. Place the firing template over the intended target.
  2. Roll the scatter die to determine direction of deviation (the direction of the face-up arrow). However, the scatter die also has 2 "Hit" faces, indicating no deviation at all.
  3. Roll the artillery die to determine the distance. The die can give 2, 4, 6, 8, and 10 as a result, along with a "misfire" that usually ends up in some hilarious effect for the crew firing the war engine.
What I want to do next is to analyze this procedure in terms of "probability getting hit" when a figure is located somewhere within the possible deviation area. I will not consider the direct hit or misfire effects, since these should be considered as separate probabilities and events. We will only look at the probabilities when scattering does take place, with any of the 5 possible distances.

Distribution of position of the template

Let's take a look at where the template might end up when there is a deviation. To make matters easier, we will consider a template with a 2" diameter (1" radius), and consider the artillery die distances in inches as well. This is a common application of the procedure, and can also be found in various Games Workshop games.

The diagram below shows the possible positions for the template, when the deviation would happen in the horizontal direction.


When taking into all possible random directions (a few are drawn below), a pattern starts to emerge.


It is obvious that the further you move away from the initial position of the template, there is less chance that any particular area will get covered by the deviated template. Indeed, the same number of possible template positions have to cover an ever-increasing larger circular area. Hence, the closer you are to the initial point of impact, the higher the probability your figure will be hit.

Let's look at this probability in some more detail.

Because the artillery die has equal probabilities for distances 2, 4, 6, 8 and 10 (remember, we ignore the misfire result), there is an equal probability for the template to end up in any of the 5 concentric circles.

Each of these 5 concentric range bands has its own area, which can easily be computed by subtracting the area of the smaller circle from the bigger circle. E.g., to compute the area of zone C, we compute

(7*7 - 5*5) times pi (area of a circle is pi times its radius squared) = 24pi.



The areas of all zones, using the same method of calculation:
  • Zone A: 8pi
  • Zone B: 16pi
  • Zone C: 24pi
  • Zone D: 32pi
  • Zone E: 40pi
The firing template itself has an area equal to pi (= pi*1*1). Therefore, if the template would end up somewhere in Zone C, it will cover a proportional area of its area divided by the area of Zone C = pi / 24pi = 1/24 = 4.17%. Thus, if a figure would be located anyewhere in Zone C, there's a 4.17% probability it will get hit if the template ends up in Zone C and the direction is generated randomly. For all zones:
  • Zone A: 12.5%
  • Zone B: 6.25%
  • Zone C: 4.17%
  • Zone D: 3.13%
  • Zone E:  2.5%
We made a simplifying assumption that the figure only has the dimensions of a single point. In reality, the figure itself covers some area, and if you count overlap between the figure and the template as well, probabilities will go up somewhat. BTW, this is one of my objections against using templates which are too small or have a strange shape w.r.t. to the size of the figures, since discussions w.r.t. overlap will always arise ... but I will keep that discussion for another blogpost.

Overall hit probability

Since each of the range bands has a 20% chance of occurring, the overall probability of a figure, located somewhere in the total possible impact area, is then as follows:
  • Zone A: 12.5% *1/5 = 2.5%
  • Zone B: 6.25% *1/5 = 1.25%
  • Zone C: 4.17% *1/5 = 0.83%
  • Zone D: 3.13% *1/5 = 0.63%
  • Zone E:  2.5% *1/5 = 0.5%
So, one can see this is a degrading probability the further the figure is located away from the point of impact. Depending on your assumptions on how such deviation should be modeled, this might make perfect sense. But you can also wonder how you will have to adapt the probabilities for ending up in each zone, such that the probabilities of getting hit are equal anywhere in the possible deviation area.

In order to achieve this, we have to adjust probabilities in proportion to their relative areas. Since the areas of Zone A, Zone B, Zone C, etc. are equal to 8pi, 16pi, 24pi and so on, we simply will have to design a randomizer proportional to these areas, and making sure that all probabilities sum up to 1. The sum of 8+16+24+32+40 = 120, and thus:
  • Zone A should be generated with a 8/120 = 6.67% probability
  • Zone B: 16/120 = 13.33%
  • Zone C: 24/120 = 20%
  • Zone D: 32/120 = 26.67%
  • Zone E:  40/120 = 33.33%
I'll leave it to the reader to come up with a simple mechanic for generating such probabilities (apart from rolling a D120 :-))

Some more mathematics

The analysis made above is also related to the problem of generating points in a circle with uniform probability, which is often a textbook exercise in many Probability 101 classes. Since the area of increasing concentric range bands goes up quadratically (a pattern that you can also see above), a random point can be generated by picking a random direction, and picking a random distance from the origin by taking the square root of a uniform random number generated between 0 and and the radius squared. Simply picking a random distance uniformly between 0 and the radius would produce a spread of points located closer to the centre of the circle.

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.