Cartexography

Cartexography Sample Output

Currently my world map is based very heavily on Earth, specifically the lands around the Mediterranean (the primary culture is very unashamedly Greco-Roman advanced into the medieval period). This has made mapping quick and easy, since I don’t really have to draw very much that is new, so importing a simple SVG into Inkscape has sufficed.

However, I’m realising that it would be much easier to use a real mapping tool, so I’m revisiting my old mapping software called Cartexography. This is a web based tool I started almost ten years ago to allow the drawing of hex based tile maps. Though it draws tile based maps, it also allows the use of vector paths for rivers and roads.

It also handles world maps, making use of an Icosahedral projection to produce an approximation of a sphere.

Icosahedral Projection

The map uses one scale, which works at both the local and world scales. I typically choose 1 hex = 5km, which I’ve found is a nice compromise. If the scale is too small, then there’s not that much room for detail in the map. If the scale is too large, then it can end up restricting the options during a game. At a 5km scale, there’s plenty of room to fit a small wood, lake, hill or village as needed by an adventure which isn’t drawn on the map.

It’s also a scale that more or less matches how far someone can see, so players can see their own hex and the surrounding hex, as well as a reasonable scale for wilderness movement, allowing several hexes to be traversed in a day.

It was originally written on top of an old version of the Grails technology stack, so I’ve decided to start re-writing it using SparkJava (a very lightweight webcontainer) and probably ReactJS. This may take a while, though updating the core of the backend only took a day. The APIs shouldn’t take too long, since the logic is going to be pretty much identical, it’s probably going to be the frontend which takes the bulk of the time.

There are more professional options out there. However, the problem is I like to release game content under an Open Source license, and using non-open source software to generate maps then limits what others can do. I also enjoy programming, so it’s just another part of the hobby that will be fun to spend some time on.

Samuel Penn