Home > Campaign Development, Mapping, Worldbuilding > Hex-based Campaign Design (Part 1)

Hex-based Campaign Design (Part 1)

Campaign Design by the Hex

deutsche Übersetzung

In my quest for rapid campaign development, I came across an elegant idea called Six sided gaming: Hex magic on Greywulf's Microlite d20 site. Subtitled "the lazy gamer's guide to world building," Six sided gaming suggests launching your campaign with an adventure in a single hex, then placing adventures in each of the six surrounding hexes, assigning hex terrain and encounters to match the adventures you've chosen. As the campaign grows, you simply populate the next "ring" of surrounding hexes, and so on and so on.

Defining the campaign by its adventures—instead of the other way round—is a great time-saver and perfect for the busy GM. With Greywulf's kind permission, I've expanded the concept into a slightly different approach, but with the same time-saving goal. In Part 1 of Hex-based Campaign Design, we'll start with a hex map and its terrain.

Skip to Part 2...

The Hex Map

Sub-hex Template

Sub-hex Template

The underlying goal of Hex-based Campaign Design is to create a playable setting with as little effort as possible, so I recommend starting with a small map. The sub-hex map from our Hex Templates post (shown at right) is a good start, at a scale of 5 miles per sub-hex. This makes the template's larger, atlas-scale, hexes 25 miles wide.

As you work on the sub-hex template, keep the large hex boundaries in mind, as it'll make life easier when you expand the map and scale up to the atlas level.

N.B. The sub-hex template is now available in Hexographer format on the Hex Templates page.

Choose Climate

The first task is to determine climate. This affects the precise terrain you place in the next step. For example, if you're placing forest, climate indicates what type of growth exists (e.g., conifers in cold climes, deciduous in temperate, or jungle in tropical areas). While not exact, the guidelines below are sufficient for our purposes:

  • Arctic - Cold all year round
  • Sub-arctic - Four distinct seasons, with a short, cool summer
  • Temperate - Four distinct seasons, each of roughly equal duration
  • Sub-tropical - Four distinct seasons, with a short, warm winter
  • Tropical - Hot all year round

Assign Hex Terrain

Terrain placement does not rely on a random function, since it's too easy to end up with unrealistic results (e.g., swamps next to deserts or mountains next to plains). Besides, who wants to roll dice for each hex anyway? Instead, I assign a primary terrain type to each atlas hex, then fill in the remaining sub-hexes with related terrain types. This lets you place terrain sensibly, but with the benefit of some speed.

Let's begin with some basic terrain types:

  • Water - lake, sea, or ocean; may be ice-covered in arctic/sub-arctic, or seaweed-choked in tropical/sub-tropical areas
  • Swamp - marsh, bog, fen, or moor; will be partially frozen most or all of the year in arctic/sub-arctic climes
  • Desert - arid land; sandy in tropical/sub-tropical, barrens in temperate, or snowfield in arctic/sub-arctic
  • Plains - grassland, savannah, heath, or scrub; this is farmland in settled hexes, tundra in arctic
  • Forest - woodland; mixed deciduous/evergreen in temperate, conifers in sub-arctic, or jungle in tropical/sub-tropical
  • Hills - rocky ground, rough or broken land (up to 1,000' above sea level)
  • Mountains - peaks, ridges, and mesas (1,001' or more above sea level)

Assign a terrain type of your choosing to the sub-hex at the centre of the atlas hex. This defines the atlas hex's primary terrain type. The rest of the sub-hexes are broken down as follows:

  • 18 whole hexes - assign 9 primary terrain, 6 secondary terrain, and 3 tertiary (or "wildcard") terrain; distribute these as you see fit
  • 12 half-hexes - there are 2 half-hexes along each edge of the atlas hex; assign any non-wildcard terrain as desired

Terrain type designations are pretty straight-forward:

  • Primary (P) - the most prevalent terrain type in the atlas hex
  • Secondary (S) - the second-most common terrain relative to the primary type
  • Tertiary (T) - the third-most common terrain relative to the primary type
  • Wildcard (W) - highly uncommon, but possible, terrain relative to the primary type

Secondary, tertiary, and "wildcard" options for each terrain type are shown on the following table:

Water P W W W W W -
Swamp W P - W W - -
Desert W - P W - W W
Plains S [1] S T P [4] S T -
Forest T [2] T - S P [5] W [8] T [11]
Hills W - S [3] T T [6] P [9] S
Mountains - - W - W [7] S [10] P [12]

  1. Treat as coastal (beach or scrub) if adjacent to water
  2. 66% light forest
  3. 33% rocky desert or high sand dunes
  4. Treat as farmland in settled hexes
  5. 33% heavy forest
  6. 66% forested hills
  7. 66% forested mountains
  8. 33% forested hills
  9. 20% canyon or fissure
  10. 40% chance of a pass
  11. 33% forested mountains
  12. 20% chance of a dominating peak; 10% chance of a mountain pass; 5% volcano

When all the sub-hexes are filled, you may move onto an adjacent atlas hex, whose primary terrain type is any valid terrain on the table above (i.e., primary, secondary, tertiary, or wildcard). If you need some polyhedral guidance, assign the following weights and roll 1d12:

d12 Result Adjacent Hex Terrain [1]
1-6 Primary
7-9 Secondary
10-11 Tertiary
12 Wildcard

  1. Relative to the current hex's primary terrain type


Terrain assignment in Regional Hex

Terrain assignment in Atlas Hex

Let's assume a temperate climate. I'll assign "Plains" to the centre hex, which becomes the atlas hex's primary terrain. According to the "Plains" column on the Terrain table, the remaining sub-hexes are assigned as:

  • Plains (P) - 9 hexes
  • Forest (S) - 6 hexes
  • Hills (T) - 3 hexes (alternatively, you could sprinkle up to 3 wildcard hexes: water, swamp, and desert)
  • Plains, Forest, or Hills - 12 half-hexes

I roll 1d12 for each of the six adjacent atlas hexes. Based on the primary terrain of "Plains" in the current hex, my results on the Adjacent Hex Terrain table are shown below:

Terrain assignment in adjacent hexes

Terrain assignment in adjacent hexes

  1. 1d12 = 4 (Primary = Plains)
  2. 1d12 = 11 (Tertiary = Hills)
  3. 1d12 = 9 (Secondary = Forest)
  4. 1d12 = 8 (Secondary = Forest)
  5. 1d12 = 5 (Primary = Plains)
  6. 1d12 = 8 (Secondary = Forest)

Using these primary terrain results, I can easily fill in the adjacent atlas hexes (cutting the distribution by 50% since only half of each adjacent atlas hex is shown). The image at right shows only the primary terrain assignments (based on the d12 results above) in the remaining atlas hexes on the map.

Scaling Up

The atlas hex on your map is 25 miles wide, which matches the hex scale on the Atlas template. When mapping on the atlas level, populate each hex with the primary terrain of each atlas hex on your sub-hex map.

However, the atlas template is very big, so I recommend that you transfer your sub-hex map to the Regional template first. This approach lets you fill in a Regional map rather quickly (there are roughly 7 sub-hex templates in one Regional map), and since this still represents a considerable amount of real estate, your setting should have plenty of space.

Either way, you can rather quickly expand your campaign using a series of sub-hex templates like the one you created above (all map scales noted in this post are located on our hex templates page).

Next Steps

The completed sub-hex template, scaled at 5 miles per individual hex, should be more than sufficient to get your campaign off to a good start (as a side note, if you're incorporating the Mid-size Campaign approach, you've just created your map). In Part 2 of Hex-based Campaign Design, we'll populate your hexes with some interesting things you can start building adventures around.

(Visited 2,952 times, 7 visits today)

  1. October 21st, 2009 at 22:45 | #1

    Nice! I like this, I’ve been working on maps lately and this will help for sure.

  2. October 21st, 2009 at 22:56 | #2

    Thanks, kaeosdad. Be sure to tune in next week for Part 2!

  3. February 8th, 2010 at 14:16 | #3

    I saw your posts over at Hexographer and thought you did a great job. I’m using the hex mapping to beta test a board game I’m designing, but your posts are very informative for the sandbox Swords and Wizardry campaign I’m running. Thanks for posting!

  4. February 8th, 2010 at 16:28 | #4

    @Brenton Haerr : Thanks, Brenton. I checked out Wilderfast on your site, and the map looks cool. One thing I’m using Hexographer for is rapid campaign development – it’s a real timesaver and the maps come out looking great. Thanks again — I appreciate the links!

  5. June 12th, 2010 at 18:35 | #5

    Great post!

  6. November 29th, 2010 at 10:08 | #6

    This is an excellent article, and very useful. I wish you had included this (and part 2) in Chimera RPG 3.0 Basic, and hope that this material makes it into the Core Rules.

  7. November 29th, 2010 at 12:27 | #7

    @Da’ Vane : The Campaign Creation section borrows from this concept in a more distilled fashion (e.g., creating the map and Points of Interest). Rest assured, though, you’ll see this again, with improvements…

  8. James
    March 18th, 2011 at 08:14 | #8

    Hi Erin,

    I’m using your articles here in conjunction with Hexographer to experiment with world generation in a semi-random way. However, I’m a bit confused by the footnotes in terrain type table. For example – Footnote 2 says ‘66% Light Forest’. Does that mean there’s a 66% chance of any given forest hex to be ‘Light’, or that 66% of the forest hexes in that Atlas Hex will be light? Similarly, footnote 12 – Does every individual hex with a mountain in it have a 20% chance of having a dominating peak, a 10% chance of a pass and a 5% chance of a volcano?

    I’m generally rolling for each individual hex, and 3 times for the mountain hexes, as I’m happy for that level of randomness atm, but I’m curious as to what you intended the footnotes to mean.

    Thanks for creating the hexographer templates and writing these articles btw, they’re a great help in providing a structure to work with!

  9. March 18th, 2011 at 09:33 | #9

    @James : Your first interpretation is correct–roll separately for each Regional hex. For example, if the Atlas Hex’s Primary Terrain is Water, then Forest is a Tertiary terrain type. Each of the 3 recommended forest hexes has a 66% chance of actually being “light forest.” Same with the mountains–in a Mountain Atlas Hex, each of the 9 suggested mountain hexes within it carries a 20% chance of dominating peak, 10% chance of a pass, and 5% chance of a volcano.

    Still, if you wanted to save time, there’s no reason you couldn’t go with your second interpretation. If you have 9 mountain hexes, there are 2 dominant peaks (9 * 20% = 1.8) and 1 pass (9 * 10% = 0.9); maybe (?) a single volcano for every 2 mountainous Atlas hexes (that still could be too many, so you’ll need to season to taste).

    BTW, I do have the makings of an Inspiration Pad Pro table to do the dice rolling for you. Any interest?

  10. James
    March 21st, 2011 at 16:01 | #10

    @Erin D. Smale
    I’d never heard of Inspiration Pad Pro.. Looks interesting! Sure I’d give that a go!

    Btw – the map I’ve generated (so far) is here: http://inkwellideas.com/hexographer_forum/index.php?topic=305.0. I’d be interested to see what you think given I’m (ab)using your method ;-)

  11. March 22nd, 2011 at 10:30 | #11

    @James : Inspiration Pad Pro is a free program for creating random tables (http://www.nbos.com/products/ipad/ipad.htm). I recreated the system above via IPP; still need to polish it up a bit for public consumption, but if you’re willing to “beta test,” email me privately (via Contact Us link above) and I’ll send them along.

    The map you created is good (I posted comments on the Hexographer forum). The ‘method’ above is just a guideline to get you started, and if it provided you with a foundation to build on and create around, then it’s done its job.

  12. James
    March 23rd, 2011 at 05:29 | #12

    I’ve downloaded Inspiration Pad Pro; it’s an interesting little app and I can definitely see the benefit to the time-starved GM! I’ll contact you directly and happily do some Beta testing for you (time permitting).

    Thanks for the comments on my map, I’ll be posting another revision of the map at some point!

  13. April 16th, 2011 at 18:20 | #13

    I take it you like to start from the bottom up. I prefer from the top down, that way I have a general idea as to how my world looks, and then can burrow down, as it were, into the particulars

  14. April 17th, 2011 at 14:16 | #14

    @Alan Kellogg Most of the time, I’m with you–top down so I know the general shape of the world and give context to a small area that I develop with detail.

    But for rapid sandbox development, this approach helps you get started quickly. And I find that the random stocking in part 2 gives lots of clues to help you expand when the PCs outgrow the original area.

  15. Alex
    January 11th, 2012 at 03:09 | #15

    Hello Erin, big thank you for your work, great guide. But can you say the rules of how to fill atlas hex. I mean, i have type of atlas hex, filled central hex in atlas hex, and what next? how should i fill other empty hex with my other not used hex for this atlas-hex? Is there any rule about what type of hex can be near other hex? Can i fill atlas hex by rounds from center hex? Im trying to automate it, not to do by myself.

  16. January 11th, 2012 at 21:45 | #16

    @Alex Hi Alex – thanks for checking this out. If you’re filling out a Regional map, you can fill the Atlas hexes via the large table in the “Assign Hex Terrain” section above. If you’re working on an Atlas template and need to fill in hexes, you can use the d12 method on the table just below that.

    I’ve worked out an Inspiration Pad Pro table to help you out. It’s not completely automated, but can at least help you figure out how to “populate” an Atlas hex using the guidelines above. Here’s the table: http://www.welshpiper.com/wip/_RegionMapTerrain.ipt

    It’s still in beta and subject to change, but unzip the file into the “Generators” folder of your IPP installation. When you open the table in IPP, choose the central Atlas hex type from the drop-down menu and the table will provide results for the rest of the hex, as well as the primary terrain for the 6 adjacent Atlas hexes.

    Let me know if this works out for you. Cheers!

  17. Alex
    January 12th, 2012 at 08:24 | #17

    @Erin D. Smale
    Hello Erin, thank you for reply. Ive tried IPP2 with RegionMapTerrain. And you know what, i got some issues with what IPP generates and what it should generate/ For example, in _RegionMapTerrain.ipt there is a rule:
    Table: GrasslandHex
    and IPP created next list:
    its 5*forests, 12*grasslands and 1*hills. But the rule said: 9*grassland,6*forest,3*hills and 1*wildcard.
    the question is: why so many grasslands IPP have generated? :)
    or may be its right and i cant get something? ^_^

  18. January 13th, 2012 at 21:21 | #18

    @Alex : The numbers you’re seeing in the IPP table don’t indicate number of hexes. Instead, they’re “weights” for each terrain type. Assuming a baseline of “1” for wildcard, Hills occur 3 times as often, Forest 6 times as often, and Grassland 9 times as often. IOW, these numbers influence the random distribution. It’s not a straight interpretation of the tables in the article, but it’s a bit more interesting than stating that there’s always 9 primary, 6 secondary, and 3 tertiary terrain types in each Atlas hex. That said, the “weights” are based on the table above, so there is a correlation.

    If you want strict numbers of each terrain type, you should assign them manually. I think the IPP results give a bit more latitude, however. Hope this explanation helps. Cheers!

  19. Alex
    January 14th, 2012 at 15:33 | #19

    @Erin D. Smale
    Thank Erin, that explains all. Can you say please more about “correlation” for types? ^_^

  20. January 15th, 2012 at 11:26 | #20

    @Alex : Sure–if I understand what you’re asking, the Primary, Secondary, and Tertiary terrain types listed above are just the most likely “matches” for the terrain is the centre hex, while still allowing for variation. The correlation is somewhat artificial, in that I came up with the terrain type weights based on the number of vacant surrounding hexes.

    You could shift the weights in the IPP table, but you’d end up with a lower chance that the surrounding terrain matches the centre hex. IOW, the correlation I’ve assigned provides more gradual (and less abrupt) terrain change.

  21. Alex
    January 17th, 2012 at 02:39 | #21

    @Erin D. Smale
    Thank you Erin, i get it all. I’m trying to smooth algorithm of region hex to fill it.

  22. Todd
    January 26th, 2012 at 23:35 | #22

    I had a question regarding the Water, Swamp, and Desert Secondary hexes. According to the article, the Secondary hexes account for 6 of the full hexes and potentially all of the half hexes.

    What should be done for the entries that do not have a Secondary entry? This issue also causes an issue for the adjacent Atlas hex assignment. I’m guessing that you would use the Primary instead.

    BTW, excellent article!

  23. January 28th, 2012 at 11:11 | #23

    @Todd : I’m not sure I understand your question–all terrain types have a secondary entry. Or am I missing your point?

  24. Todd
    January 30th, 2012 at 15:19 | #24

    @Erin D. Smale
    Looking at it again, I see my issue. I was reading the grid from left to right, not top down. I was expecting the two to cross, but they are slightly different.

    For example:
    Top down
    Water = P, W, W, S, T, W, –

    Left to right
    Water = P, W, W, W, W, W, –

    Is there a reason for the difference?

  25. January 31st, 2012 at 19:51 | #25

    @Todd : Each column represents a primary terrain type for an Atlas hex and each row is just a terrain type; the intersection indicates frequency.

    I suppose I could have Primary, Secondary, Tertiary, Wildcard on the left-most column, but I thought this was cleaner.

    Sorry for the confusion. I’ve updated the labelling – hopefully this is clear.

  26. Todd
    January 31st, 2012 at 21:06 | #26

    @Erin D. Smale
    Thanks, that does help! Reading it the way I did was hard to figure out how a Water Hex would turn into land ;-)

  27. Derik
    February 14th, 2012 at 13:06 | #27


    When using your hex-template in Hexographer and doing the “Create Map Key” it also creates an entry for each custom-line (used in creating the hexes). Is there a way to easily remove these “Custom Line 3pt” entries from the map key?

  28. February 15th, 2012 at 05:35 | #28

    @Derik : Custom lines are included in the “Lines” section by default. Right now, the only way to remove them from the key is to set their Order value to “0” (zero).

    According to the instructions, Hexographer’s Key generator will be improved in the next version – I’ll suggest that each item get a checkbox, which would be a much easier toggle than setting the Order to zero.

  29. February 28th, 2012 at 18:38 | #29

    Hello there, I just want to say thanks for the IPP generator, it is great to use and fun to boot. Any plans to develop them further? Just started planning a hexcrawl and this is invaluable so far.

  30. February 28th, 2012 at 21:45 | #30

    @Chaosmeister : Plans, you ask? Tons, my friend. Tons.

    I’m working on an IPP toolset to fully populate Atlas-sized maps with civilisations, barbarian nations, and wilderness. Still tinkering (as I find more stuff to add), but it’s coming.

    You can get a sense of my direction via the Encounters series I’m working on.

  31. March 1st, 2012 at 18:44 | #31

    @Erin D. Smale
    Yea, have been reading them. I am a huge fan of random adventure generation and working on some material myself. Your post are a great help and inspiration. Looking forward to where this journey goes.

  32. March 23rd, 2012 at 21:11 | #32

    Interesting stuff but I get the sense that you all seem to be unaware that all the tables necessary to randomly generate wilderness lairs, castles, monster and treasure are presented in the original Dungeons and Dragons (1974) and this was followed up with tables and instruction for creating randomly generated hex map terrain, population centers, detailed encounter areas and so forth in Arneson’s First Fantasy Campaign (1976). I’ve brought these together as they were intended in Champions of ZED (published in Fight On! 12) if you would like to see how the creators of D&D generated thier hex maps.

  33. March 24th, 2012 at 09:16 | #33

    @Dan Boggs : I recall the material from the DMG, but never used it. Didn’t seem like a ‘system’ at all – more a bunch of tables that you had to connect. Which is fine – but personally, I needed more guidance back in the day. YMMV.

    That said, I’d like to see your approach. Do you have a link to your material?

  34. March 25th, 2012 at 19:10 | #34

    @Erin D. Smale
    DMG? no. I’m talking about the original rules and the FFC. You’re right there is not a lot in AD&D for worldbuilding, but when the game was originally published, there were no supplements, world, settings, adventures, etc. so the furnished tables for creating such things, much as you have done. There’s also the Monster and Treasure Assortment, and the dungeon Geomorphs series. The combined info I did has only been published in Fight On and in Dragons at Dawn Supplement I, but it will be availiable in somewhat expanded form in Champions of ZED. Anyway I think it’s cool that you are taking your own stab at a very traditional form of gaming!

  35. Malo Monkey
    June 26th, 2012 at 00:25 | #35

    Hello there. Great stuff!

    Do you have any advice for converting this system to be usable with the Adventurer Conqueror King system (ACKS)? The game calls for the hexes to be 6 miles wide with a regional map being 24 miles, or just 4 hexes across. This assumption is built into the economics of that system and may prove difficult to adjust to 5 mile hexes with 25 mile regions. I know that’s just a matter of mathematics, but I believe it would involve changing a lot of table entries in the game.

    I’ll give it a shot first. In ACKS, this would mean that a Regional hex would have only 16 4-mile hexes contained within it; 13 Whole Hexes and 6 Half Hexes. The ACKS region is roughly 72% the size of one of yours. So, after filling in the middle hex, you would then assign 7 Primary, 4 Secondary, and 2 Tertiary terrain? And non-wildcard terrain in the remaining half hexes? Would this throw the balance off in any way, perhaps causing strange clumping of too much of a given type of terrain?

    Regardless, thank you for this and thank you in advance for any advice that you can give. This has been proving very helpful in the re-creation of my gaming world.

  36. Malo Monkey
    June 30th, 2012 at 14:38 | #36

    Looks like my attempt was off by one hex. I was double-counting the center starting hex. I would simply remove this part of the sentence where I typed, “So, after filling in the middle hex,”. @Malo Monkey

  37. June 30th, 2012 at 17:21 | #37

    @Malo Monkey : I’m not familiar with ACKS, so my first question would be how tightly is hex size tied to the table entries? IOW, if you simply used this system with the ACKS tables, how far off are the results?

    If they’re tightly coupled, then 2 options: (1) count the number of 4-mile subhexes in ACKS and scale down the instructions above as appropriate or, if that’s not possible, (2) let me know and I’ll see if I can model an ACKS template in Hexographer.

    I haven’t tried my Google-fu on this, but are there any hex template resources for ACKS on the interwebs? I’d like to see, but in truth not immediately interested in purchasing the system (though, hey, my gamer ADD is acute, so I might be persuaded…).

  38. Malo Monkey
    July 15th, 2012 at 20:13 | #38

    Erin, it all seems coupled enough that I ended up using my suggested conversion of your tables above. This rather than attempting to convert their rules from 6 mile to 5 mile hexes. It seems to have worked out splendidly.

    There are some PDF format templates available for download at the Autarch website: http://www.autarch.co/downloads. They’re the makers of the Adventurer Conqueror King System. If you’d like to try an ‘advanced’ version of Basic/Expert D&D, I highly recommend ACKS.

    I made my own 30×40 hex template using Hexographer — roughly 10 1/2 x 7 1/2 Atlas hexes in size. I can send it to you if you like.

    Thanks again for the website and all of the great advice!

  1. November 16th, 2009 at 21:25 | #1
  2. April 27th, 2010 at 14:19 | #2
  3. November 30th, 2010 at 05:23 | #3
  4. January 20th, 2011 at 01:55 | #4
  5. March 3rd, 2012 at 08:39 | #5
  6. March 12th, 2012 at 03:01 | #6
  7. May 28th, 2012 at 00:11 | #7
  8. June 20th, 2012 at 07:00 | #8
  9. July 9th, 2012 at 14:54 | #9
  10. February 4th, 2013 at 19:48 | #10
  11. February 5th, 2013 at 21:10 | #11
  12. June 10th, 2013 at 16:09 | #12
  13. June 10th, 2013 at 16:16 | #13
  14. June 16th, 2013 at 04:26 | #14
  15. June 17th, 2013 at 00:37 | #15
  16. June 17th, 2013 at 12:43 | #16
  17. January 20th, 2014 at 17:07 | #17
  18. February 19th, 2014 at 23:16 | #18
  19. July 17th, 2014 at 00:20 | #19
  20. July 26th, 2014 at 23:23 | #20