Adventures in the Hex Marches

Some years ago, Ben Robbins described his West Marches campaign.

  • Totally sandbox: the players chose the missions and explorations they wanted to pursue.
  • Open table: the pool of players was larger than could conveniently play at once, and the team for any given mission was made of different characters, and usually of different players, each session.
  • Irregular schedule: it was the responsibility of the players to organize the group and identify the activity they wanted to pursue, so the GM could prepare the session.

I’ve always wanted to run a campaign like this.

Me being me, though, I like to be able to see at least over the next hill. For a West Marches campaign I don’t need to know a lot about what’s over there, but I like to have at least some idea.

Some time ago, GreyKnight wrote a script for me that generates planar graphs (that is, graphs that can be drawn with no crossing edges). The graph below has 200 nodes and is possible to draw as a planarity, but ‘neato’ (the command-line program I used) didn’t quite get it right.

200-node planar (if it was drawn correctly) graph

My first thought on looking at this graph was “I could start with node BT… put the Town there, and there are four nodes directly linked, three of which go to more places… lots of choices and some cyclic sections, so there are multiple ways to get to the same place”.

Then I realized I could do much the same thing, much, much more easily, if I go with overlapping circles. Pick a vertex for ‘Town’, then I’ve got six potential neighbors, then those six share twelve more, and those twelve share eighteen, and so on. I don’t even have to rearrange them!

Overlapping circles

Now, I do like how this looks, especially from a design standpoint, because it gives me guidelines for drawing my edges. However, I can’t help but think there’s something familiar about this.

… hexes. They’re hexes

If we ignore my not getting the hex sizes exactly correct (0.3/inch is too big, sqrt(3)/2 (which was frankly a guess) inches is a little small, and… I couldn’t be bothered to fiddle with it more tonight), Each little ‘center point’ of the circles is the center of a hex, or can be represented as such.

West Marches campaigns generally aren’t hex crawls, but there’s no reason I can’t use hexes for my maps. The players never see my map, after all: they’re responsible for drawing their own maps, and fixing them when they make mistakes.

The only real downside is that if each region is a hex, it becomes very evident on examination. There is a dead simple way to handle this, though.


Well, mislead.

In Izirion’s Enchirdion of the West Marches (a guide to building and running a West Marches campaign), they recommend each region be eight to twenty miles across. They are not the same size, nor the same shape. We have some room to fiddle with things.

I like six-mile hexes (six miles edge to edge gives a hex of 31.18 square miles, which is close enough to 32 square miles that I can have 16 manors of 2 square miles — enough for one or two villages each, basically). A circle with radius of 8 miles is a little more than 50 square miles, and a circle with a radius of 20 miles is about 314 square miles.

Well now. These are close enough to 1.5 and 10 six-mile hexes.

If I take the hex sheet below, and treat the green hexes as six-mile hexes and the blue hexes as 1.5-mile hexes (i.e. 1/4 the length, 16 smaller hexes per larger hex), I can quickly draw regions by coloring the center hexes and then filling in the rest around them. ‘Small regions’ of 50 square miles will cover about 24 small hexes and ‘large regions’ could be around 160 small hexes — 10 large hexes.

Hex Marches worksheet

For planning purposes I might fill in just the center hex of each larger hex. Doesn’t take long and gives me enough to work with.

Hex Marches, high-level

Instead of Town being at the east end of the map and connected to Civilization via a road to the east, I decided to place the Town near the south, and make it a port. Town is the red hex, the blue hexes are water (big water, not rivers). I have two islands offshore, one forested (green, in the east) and one hilly (brown, in the west). Just southeast of Town is a swamp (the pale bluish-green), to the northeast is a forest (dark green), to the northwest are plains (kind of yellowish-brown), then forest to the west of that. Across the plains are hills (dark brown), and to the west of them are mountains, with forest to the west of them.

At these resolutions it might be a little tricky to make out the colors. Let’s see what it looks like if we fill things in a bit. I ended up shifting a couple colors very slightly for visibility, but otherwise I just filled in the smaller hexes around the ones marked above.

Southern hex marches, in detail

The regions are well within the guidelines: I could have 24 to 160 smaller hexes per region. Only the water exceeds that, and water is basically a ‘no go zone’. I might want to break the mountains up because they’re long, but they’re easily within the hex count.

The big thing, though, is that the regions are not nearly as hexagonal as suggested in my high-level map. Yes, each region has the terrain type identified by the center point of the larger hexes, but I’ve got plenty of space to introduce variability within that. I’ve also got lots of space to grow into, since I haven’t identified what’s on the other side of the forests and hills, or at the other end of the mountains.

Also, there is easily room for me to mark one or two sites of interest per larger hex, or basically 3-15 per region. There might be two or three in the swamp, 12-15 in the larger forests, 8-10 in the eastern hills and 5-7 in the western hills. There might even be 12-15 in the mountains! Yes, the mountains are a narrow region, but it is a nine-zone region, same as the eastern forest. I expect it might be one of the more hazardous regions, too, so it not unreasonable that it has many sites of interest. I can easily imagine people choosing to go around, unless and until they manage to establish a relatively safe passage through the mountains. Of course, the hills probably aren’t that much safer, so ‘relatively safe passage’ might need some special interpretation.

Closing Comments

Even though West Marches campaigns weren’t originally hex crawls, I don’t see why the GM wouldn’t use hex maps for planning. I can probably draw the major overland map at six-mile hex resolution (or lower-resolution — 24-mile or 96-mile hexes — if I thought I had to) so I can plan for the stuff that’s waaaaaay over there, even if I know nothing yet about what’s in between. I can fit a lot on a page when I don’t need to show any detail (see below). I can imagine having a single-page overland map of the Hex Marches that shows the Town (starting point) and the major, way-over-there stuff. Using the right software (Hexographer/Worldographer would of course be a good choice) I can easily put that together and zoom into linked maps showing the sites of interest.

Still, I think this fits into GreyKnight’s “no, and that’s awesome” category. I had originally focused on a graph to show the connections between regions, then wandered through rendering that graph via a hex map, which got kind of derailed by drawing regions of the recommended size instead of purely abstractly. I might still go back to drawing a graph, but I think I might make that more an ‘informational graph’ (i.e. how the lore connects things) rather than focusing on proximity.

Ah well, these things happen when taking ideas from thoughts to words. All good.

Hex Marches, planning view


  1. GreyKnight

    I think if your circles are radius 1, the hexes would have side length 1/sqrt(3); there’s a factor of 1/2 because the hexes only go halfway to the circle radius, and also I think you missed a reciprocal probably by getting the inradius and circumradius the wrong way round. Easily done. ;-)

    neato regularly gets mixed-up trying to draw large planar graphs, I have a feeling the full drawing problem might be NP-hard and it’s just using some heuristics instead. The default coordinates produced by the script are a planar embedding but usually look hideous.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back to Top