One of the recurring debates when using grids is whether to use a hexagonal grid, or a square grid. The main objection against square grids is diagonal movement. Moving to a diagonal adjacent square covers more distance on the 2D surface compared to a horizontal or vertical move. Pythagoras' theorem says that - if the distance measured from centre to centre between horizontally and vertically adjacent squares is equal to 1 - the diagonal distance equals the square root of 2. Any calculator will show you that the square root of 2 is 1.4142... , but for gaming purposes, 1.5 is close enough.

This article looks at some of the solutions one can use to address the discrepancy caused by diagonal movement on square grids.

**Diagonal movement allowed, and counts as 1**

The simplest solution is just to ignore the issue at all, and consider diagonal movement equal to horizontal or vertical movement. Or, in other words, a diagonal move expends 1 movement point, just as well as movement in any of the other 2 directions.

The diagram below shows what squares you can reach using this method, when starting at the red square at the bottom-left. Movement distances of 3, 5 and 7 are shown in blue, green and orange. The circle arcs show the "true" Euclidean distance from the centre-point of the red square.

Diagonal movement counts as 1 movement point |

**No diagonal movement allowed**

The other end of the spectrum of possible solutions is to simply disallow diagonal movement at all. Only horizontal and vertical moves are allowed. This corresponds to what mathematically is known as the Manhattan distance - moving on a grid where you have only streets and avenues at 90 degree angles.

No diagonal movement is allowed |

**Diagonal counts as 1.5**

A good solution would be to count diagonal movement for its true distance, namely the square root of 2 (1.4142), or rather, its approximation by 1.5. This is a bit awkward, since you have to count using halves when moving diagonally, but it provides a nicer approximation to the circle. The diagram below shows the squares you can reach using this method, when not exceeding the movement allowance, and thus sometimes leaving 1/2 movement point unused.

Diagonal movement counts as 1.5 |

Diagonal movement counts as 1.5, but going over by 0.5 is allowed |

**Addendum**: see also the blogpost "Square Grids (2)" for including Knight's moves as well.

**At most 1 diagonal movement allowed**

This mechanic does exactly as it says. I consider it not very elegant, because you have to remember whether you already used up your diagonal movement or not, and somehow, players find this confusing, especially because you have to count at the same time.

What this rule actually does is to extend the "no diagonals allowed" movement pattern by one square outwards.

At most 1 diagonal movement allowed |

**-1 movement penalty when using any diagonal - a.k.a. +1 movement when you move straight**

Again, this mechanic works exactly as it says in the title. If you use any diagonal movement, your movement penalty allowance is decreased by 1. It is an easy to use mechanic. An easier formulation of this mechanic is that you gain +1 movement point if you move on a straight horizontal or vertical line (this requires redefining your original movement rates by -1). The latter formulation is easily to see visually on the diagram, when you compare it to the "diagonals allowed" procedure.

Movement is reduced by 1 is you use any diagonal (or gain +1 when moving straight) |

**1 / 2 / 1 / 2 alternation**

This is a variant on the 1.5 mechanic. If you don't like counting using halves, we can do an approximation by counting the first diagonal as 1, the second as 2, the third again as 1, and so on. On average, this means a diagonal is counted as 1.5. I consider this not a very elegant mechanic, since you have to remember where you were in the sequence. But, similar to the 1.5 rule, it approximates the circle very well, and is essentially the same as the 1.5 rule, with the variation of spending the extra 1/2 movement point.

First diagonal counts as 1, 2nd counts as 2, 3rd counts as 1, ... |

**2 / 1 / 2 / 1 alternation**

A simple variation of the previous mechanic, but we start by counting the first diagonal as 2 movement points. The effect is that we are able to move a little less further, because the first diagonal is more expensive, and if we use an odd number of diagonals, it does cost more than in the previous procedure. We get the same diagram as the basic 1.5 diagram.

First diagonal counts as 2, 2nd counts as 1, 3rd counts as 2, ... |

**Facing**

A factor that might make things a bit more complicated is when facing is important. E.g. in a naval game, a ship might only be able to move forward in its current direction, and THEN only turn 45 degrees. The choice of mechanic might be dependent on these additional constraints. E.g. in our Flagstone Fleets outdoors naval games (using the flagstones on the patio as our grid), we used the "+1 if you move straight" rule. It worked out well using the facing rules and the movement distances we employed.

**Conclusion**

Overall, I like either the "diagonals count as 1.5" for larger movement distances, or the "+1 if you move straight" for small movement distances, the most. I think they combine the approximation of the circle with an elegant an easy mechanic in the best possible manner.

**Addenda**

- When writing this article, I encountered the following blogpost, which covers the same issue, and also has some very nice diagrams:

https://smallwargaming.wordpress.com/2015/03/19/square-or-hex-part-1/ - See also this blogpost, which has some further thoughts on meauring on square grids: http://archdukepiccolo.blogspot.be/2017/02/measuring-shooting-ranges-on-gridded.html
- This blogpost also has some interesting thoughts, check out the comments section as well.
- See also my own blogpost "Square Grids (2)", that talks about including Knight's moves in the count, and the difference between a measurement procedure and a counting procedure.

Charlie Sweet, a long time proponent of using a (square) gridded table, counted moves on the Diagonal as 1.5 as you say. He also only allowed Light troops to face on the Diagonals, which gave an extra nuance.

ReplyDeleteFacing of troops on a grid is of course a whole different problem ... ;-)

DeleteThanks for your comments on my Blog posting, Phil. Sorry I haven't responded earlier - a just missed them! I have read with interest your variations on the theme here. Most of them I would never have thought of!

ReplyDeleteIn my explorations on this theme I did run across a surprising problem co9ncerning what constitutes adjacent squares. It is not really a problem if units occupy one square only. But if they occupy multiple squares, or indeed if your battle line is drawn up diagonally, it does seem to make a difference how many enemies can engage it. Maybe we would have to limit close combat to orthogonally adjacent adversaries after all.

You're right about the adjacancy issue. That's also why I tend to write my rules such that (close) combat happens when 2 units are in the same gridcell. After combat one of the units is pushed back to make sure they do not remain in the same gridcell.

DeleteI don't mean to flood you with comments, but honestly, your blog is a goldmine. Using the 1.5 steps per diagonal movement is a very practical solution, maybe you can multiply all movement by 2, so that an orthogonal movement costs 2 and a diagonal movement costs 3 (which easier on the brain for no real reason). I want facing direction in my game, so changing your facing direction could cost 1 to make use of that last bit.

ReplyDeleteThanks for the nice comments!

DeleteYes, using 2/3 as a movement cost instead of 1/1.5 works as well, but it depends a bit on the total number of movement points available. I guss thatbwith only a total budget of let’s say 4 or 5, the 1.5 rule works better.