Procedural Cartography

I’ve made some more progress on the map system I’ve been playing with. I settled on a system governed by two binary variables. The two variables refer to the presence of the smaller three hex and one hex spaces on a given tile. This gives you four categories of tiles. Tiles with neither, tiles with both and tiles with one or the other. This system allows you to layer information onto the map rather than having discrete zones like I described in my previous post. In this case, I am envisioning the three hex spaces as representing trees and the one hex spaces as impassable rocks.

To generate the map, I first generate a pattern of rock formations within a hex grid. Then I do the same with the trees, placing tracts of trees onto the hex grid. This results in a hex grid where each tile can be open or contain rocks, trees or both. In this case, there is no interaction between the tree and rock layers, but I can envision a more sophisticated system which introduces interaction between layers.

Based on the intended contents of each tile, an appropriate tile is selected from the tile set and placed at those coordinates with a random orientation. I developed three possible tiles for each category, for a total of 12 tiles in the set. Since each tile can be oriented six different ways, there are 72 variations of the tiles which can be present in a map. Despite the high number of possible permutations, the map is still generated from very few distinct pieces. This results in a very abstract, low resolution map that is very reminiscent of tabletop games.