I chanced upon a preview of "Sandbox Generator" from Atelier Clandestin which is 11 pages of straight-to-terrain-generation procedures with examples. While I cannot say anything for the remaining 145 pages of the book (as I haven't bought it), the preview is easy to grasp and useful on its own, but what I didn't like that the generated terrain in the preview is only concerned with most common terrain, grasslands-forest-hills-marsh-mountains which is, in my perception, invokes pseudo-European land already too prevalent in fantasy games. Certainly it is possible to use those default terrains as a guide and reskin them to reflect the variety of different biomes (and maybe the rest of the book does exactly that) but I decided to instead make this overly complicated procedures for my own use so I can have more ready-to-go results.
![]() |
| So I wanted more of that; "Alien Landscape" by Renaud Perochon |
It is very mechanical, it is confined to spreadsheet, probably better served automated (but I don't know how to code this), and is concerning certain lands understandable mostly to me, but anyway:
Procedure:
4. Pick up one of the four ways of seeding the hexes (it determines how the next hex is defined on the hexgrid, and it isn't that important mathematically);
![]() |
| ...or that; "Freya's Castle" by Roger Dean |
Table 1: Places (1d12, → horizontally) and terrains within them (1d6, ↓ vertically)
| (table 1) | 1 | 2 | 3 | 4 | 5 | 6 |
| 1d12→/ 1d6↓ | Commonality | Scars of War | Nomads | Old Green | Gelesei | Mooncradle |
| 01 | Rocky mountains | Canyon trenches | Aerial islands | Freshwater geysers | Vertical labyrinth | Cliffs and bluffs |
| 02 | Rolling hills | Sharp coral peaks | Anchor stones | Column lakes | Carved arches | Rainland |
| 03 | Lush forest | Calcified shells | Echo growth | Wander-trees | Serrated folds | Dry husk ruins |
| 04 | Green grassland | Vivid bloom | Palegrass-sea | Moss country | Glass palms | Tattered delta |
| 05 | Marshes and meadows | Salt-sands | Mist canals | Waterways | Fragile earth | Beach |
| 06 | River, lake or coastline | Impact craters | Spirit mere(s) | Sunken valley | Amber still-sea | Islands amidst the sea |
Table 1, continuation
| (table 1, cont.) | 7 | 8 | 9 | 10 | 11 | 12 |
| 1d12→/ 1d6↓ | Regalia | Ruination | Twilights | Memory-keepers | Alatano | Barroweld |
| 01 | Pillar trees | Mound-domes | Uplands | Black canopy | Flat mesas | Tombstone steps |
| 02 | Stepped stones | Monoliths | Wind lanes | Endlessey | Carstians | Gravebeds |
| 03 | Gilded wasteland | Alcherene wilds | Floaters | Petriflora | Flash-wood | Bone copses |
| 04 | Flowerfields | Merehind | Bubble knolls | Umbralis | Shifting steppe | Shimmers |
| 05 | Hollow giants | Solitude | Roots | Bogs and bayous | Tanglescrubs | Firepits |
| 06 | Flooded gutters | Dissolution | Cenotes | Blackwaters | Desert |
Tidal lulls |
(I only noticed after posting that two parts of the table kind of broadly synchronize vertically as well)
Chaos method, or how much continuation terrain might have
![]() |
| Sometimes the change is drastic; Pit of Emerald Energy by Daniel Dociu |
High-chaos method works best for some random terrain or for really broad strokes of hexes. Low chaos is probably better for zoomed-in lands of 2 mile hexes.
Table 2: Terrain continuation procedure
| High-chaos | Middle-chaos | Low-chaos | Mostly the same thing |
| roll 1d8 | roll 1d10 | roll 1d12 | roll 1d20 |
| 01 = 01 on terrain table | 01 = 01 on terrain table | 01 = 01 on terrain table | 01 = 01 on terrain table |
| 02 = 02 on terrain table | 02 = 02 on terrain table | 02 = 02 on terrain table | 02 = 02 on terrain table |
| 03 = 03 on terrain table | 03 = 03 on terrain table | 03 = 03 on terrain table | 03 = 03 on terrain table |
| 04 = 04 on terrain table | 04 = 04 on terrain table | 04 = 04 on terrain table | 04 = 04 on terrain table |
| 05 = 05 on terrain table | 05 = 05 on terrain table | 05 = 05 on terrain table | 05 = 05 on terrain table |
| 06 = 06 on terrain table | 06 = 06 on terrain table | 06 = 06 on terrain table | 06 = 06 on terrain table |
| 07 = as the previous hex | 07-09 = as the previous hex | 07-11 = as the previous hex | 07-19 = as the previous hex |
| 08 = roll 1d12 for a new Place and 1d6 for a new terrain within it | 10 = roll 1d12 for a new Place and 1d6 for a new terrain within it | 12 = roll 1d12 for a new Place and 1d6 for a new terrain within it | 20 = roll 1d12 for a new Place and 1d6 for a new terrain within it |
High-chaos only has 25% chance of terrain continuation (1/8 chance of direct continuation and 1/8 chance of rolling the same terrain); chaos chance is 75% out of which the chance to switch the Place is slightly less than 12.5% (1/8 chance diminished by 1/12 of chance to roll the same Place on table 1).
Middle-chaos has 40% chance of terrain continuation (3/10 chance of direct continuation and 1/10 chance of rolling the same terrain); chaos chance is 60% out of which the chance to switch the Place is about 10% (1/10 chance diminished by 1/12 chance to roll the same Place on table 1).
Low-chaos has 50% chance of terrain continuation (5/12 chance of direct continuation and 1/12 chance of rolling the same terrain); chaos chance is 50% out of which the chance to switch the Place is slightly less than 8% (1/12 chance diminished by 1/12 chance to roll the same Place again on table 1).
Mostly the same thing has 70% chance of terrain continuation (13/20 of direct continuation and 1/20 chance of rolling the same terrain anyway); chaos chance is 30% of which the chance to switch the Place is slightly under 5% (1/20 chance diminished by 1/12 chance to roll the same Place again on table 1). You a going to be stuck on mostly the same terrain with this method, so I think it is easier to roll initial terrain, fill the map with it and then roll 1d3 for any chance of changing it.
Four ways of seeding hexmap, which all probably give about the same result
![]() |
| Sometimes it creates hybrids like this; Armoured Castle Ruins by Maciej Wojtala |
1 In row/columns
Probably the fastest but also kind of boring. Good for making rectangular maps.
![]() |
| Rows/columns method |
Start from top-left corner, generate any subsequent hexes in vertical or horizontal order until the desired size of a map is filled, do U-turn on the last hex and fill hexes in the opposite direction.
1.5 In row/columns, variant
Generate first column/row as in the method above, but instead of U-turn start over from the same edge and use the hex on the left as previous hex in cases where it is important.
![]() |
| Rows/columns variant |
Generates a circular hexmap. Do as big of a clump as you wish, then set another center hex somewhere and do it again.
![]() |
| Spiral clump |
3. Snowflake clump
This is the method "Sandbox Generator" uses in preview. Generates a circular hexmap; useful with another clump originated from another centerpoint.
![]() |
| Snowflake clump |
Start at random hex somewhere in the middle of the hexpaper. Hexes ##02-07 use hex #01 as a foundation and radiate from it. Hexes #08, 10, 12, 14, 16 and 18 continue from hexes ##02-07 respectively and then in-between hexes ##09, 11, 13, 15, 17, 19 are filled clockwise from them.
4. Threads
Most convoluted method. This is for situations when there is a lot of time, nothing better to do and possibly surreal results are ok. Creates a widely convoluted map which often loops and doubles back on itself. Better start somewhere away from the edges of hexpaper sheet and closer to the middle although there is no guarantee that it won't run past the edge (but in this case you can just continue from the opposite edge of the paper).
After you picked up your starting hex and rolled on what Place and terrain it is, keep that terrain in mind.
Roll 1d6 or 1d12 depending on how long you wish the thread to be (I found that picking one die and sticking to kind of works the best, but nothing, in theory, prevents using 1d4, 1d8, 1d10, 1d20 or even 1d100 if you don't value your sanity). The resulting number on that roll is the amount of steps that the current terrain-thread is going to go. For each step roll 1d6 to determine where the next hex is going to be and fill it with current terrain.
![]() |
| Direction of the thread |
Technically nothing prevents to add as many terrains to the hex as a random chance demands but I found that it is difficult to mark more than two symbols in the same hex, so if third loop to the same hex happens, I jump over all double-filled hexes in the same direction until I get a blank or once-filled hex.
On the example below initial thread of hills (red) was going for 5 steps (doubling down on itself once) then forest (yellow) went for 7 steps, creating mixed terrain with hills on one occasion and doubling down on itself once, and then uplands (azure, new Place, new terrain) went on 8 steps with some doubling down, some hybrid terrain and one jump over two already double-filled hexes.
![]() |
| Example of Threads method |
Notes and other things
![]() |
| Moss country; image possibly of Dartmoor National Park |
Commonality – the all-familiar terrain of rolling hills, rocky mountains and dense forests. Comes choke-full packed with people speaking Common language and a sharp distinction between a person, a god and a monster (which isn't always the case for other Places). In certain lands Commonality is sort of a parasite that redefines all other terrains in a broad terms of itself, i.e. unique places such as Bone Copses are roughly defined as 'forest' and Uplands as 'mountains'. The Place/terrain table 1 reflects it, with highest elevation terrain as #1 and lowest as # 6 as per Commonality mandate.
Smoothing of terrain: Hence, as all terrains arranged by the height, if during the process you roll a new Place and a new terrain has lower number than the current hex, you can 'smooth' the current hex (of old Place) by averaging those two numbers and setting the current hex (with old Place) to the terrain of that number from new Place.
For example: Grassland of Commonality (3) gives way to Vertical Labyrinth (1) of Gelesei. The average would be 2. After marking where Vertical Labyrinth starts, go back to previous hex and change Grassland to Carved Arches (2) from Gelesei.
Each Place is a history of the world, biomes left by ages past and places touching hands with other worlds, of god-wars and demon-truces. I wanted to create full 20 different Places and while I manage a few more it could only fit 1d16 die so I think I'd sort of separate them into more underworld / otherword Places if I am ever going to write about it again.
Great inspiration for strange terrains and their interpretations is Laws of the Land by Screwhead, so I'd use this generator in a conjunction to the terrains above in case if I need to variate it even further.











Very solid. You paint a compelling picture of each place with different terrain types, and now I want to learn more about them.
ReplyDeleteThank you, I am very glad to hear this.
DeleteWhile terrains were here for the inspiration mostly, if you want to know about any of them, please let me know which you'd like to hear about and I'll try to make a separate post.
They all sound neat! Though if I were to choose one, Gelesei is the most intriguing to me based on the name and terrain options. The places in the second half of table 1 are all tied for second.
DeleteThank you, I'll see if I'd be able to write anything good about them (I do work slowly but I'll try).
DeleteAlso interested in the gelesei, got like a third of a draft of a place done up using your method and wonder if I'm close to your idea of it or way off base.
ReplyDeleteThank you, I will try to speed it up; my next post probably will be about one of the four terrains that didn't make it into a table but I will try to do Gelesei just after it and I will be very curious to see your perception on it. My apologies, I am writing slowly.
Delete