| . ___ __ __ ___ . __ __ __ __ __ __ | | |__ |__) |__) |__ ' /__` /__` / \ /\ |__) |__) / \ \_/ |___ | |___ | \ | \ |___ .__/ .__/ \__/ /~~\ | |__) \__/ / \ ⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∽⋅∼⋅∽⋅∽⋅∽⋅∽⋅
I want to automate the Cairn second edition map creation guide. For that, I want to manually perform the generation steps and apply them to pure text information. But in order to do that, I need to find an equivalent for the paper page and the markings first.
Result: Pure text does not work that well due to the width to height ratio and my refusal to mandate square fonts to make the maps readable. But maybe a tabular form would be workable.
Yesterday, I talked about Cairn[0]. Long story short, it's a table top role playing game (TTRPG) whose rule books I enjoy quite a lot as they are narrative driven yet very clear.
These rules specify a way to create the region of the world where the player characters will evolve. It is designed to be the fringes of some country dominated by the Cities, which are very distant and therefore not directly important for the game.
This procedure[1] is analogue, with dice and a nice sheet of paper. Basically, you roll dice, see where specifically they land on the page and check tables to inform how things should look like.
I like this, it's very neat but I would like a map like the Dwarf Fortress[2] ones. Now, I've never successfully played Dwarf Fortress, even though I know it's simpler now that it's on Steam. Despite all the guides I've consulted and the like 3 hours of tutorials I've watched, it's hard to get going. But I like the idea of a map made purely out of text symbols. It would also be much easier to link to my note keeping system.
My goal today is to see how the procedure would translate to pure text form, which constraints it has. And if it goes well, I would like to automate that generation. Because it sounds fun to do, press a button and poof you have a procedural little map, with all the neat details like economic strengths and weaknesses, where the towns are, who are the factions, etc...
I see myself generating a couple, picking the one that sounds best and giving the setting more depth before calling my players to the table. All doable with the analogue procedure, mind you. But my heart is set on pure text.
We don't have a paper page. What will we substitute? A grid-like text based paragraph, using monospace fonts. A grid implies several parameters:
I think that expressing the dimensions as travel time is sensible. Assuming there is a path between two cells, how much time should it take to go from one to the other. I think that a quarter of a day is a good idea. Let's say there is a big town and a small village. Assuming the village provides food to the tow, it means there is probably a market day. So the village and town will have to be at most one day apart or so. This would mean four cells, which would allow to illustrate the type of terrain between the two on the map. It also feels more flexible than saying going from one cell to the other is a day.
That would be limiting because it would constrain a day of travel to only four directions on the map. With a 6 hour cell size, that choice grows to a litte circle instead. Does the party go through the forest or through the fields? Does it attempt to cross the river or climb a cliff? Etc...
Long story short, it feels right. Now that we have a cell size, what should the dimensions of the map be? In the Vald[3], there are 24 days a month and 6 days a week. Hence a month of travel through easy terrain would be 96 cells. A 96x96 cell square feels like a lot. Let's think of the display constraints. I like 80 as a line length limit due to how much time I spend in the terminal[4]. That's 20 days of travel. Which feels fine for a region width. How about two weeks for the height, ergo 6x2x4=48. Let's start with that. 80x48. But that is _big_ for a screen... Width-wise it's fine but characters are typically taller than they are wide. There are fonts that would solve this. But I would like these maps to make sense with classical monospace.
36 height feels decent on a screen, at least on desktop. That's 9 days of travel, which is not nothing but feels a bit small. Come to think of it, if you run out of map, extending it downward is a copy-paste away. Extending it side-wise is less intuitive but very doable. Let's try this size then. Here's how it looks like, the drawn boundaries being part of the character count.
+------------------------------------------------------------------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +------------------------------------------------------------------------------+
It feels to me like decent real estate. It's even a little too big for smol.pub.
We will need to draw things on this map. Towns, forests, rivers, roads,... How are we going to go about it? Dwarf Fortress uses color. I don't want to, but I am not against emoji. Although I doubt it would translate well to Gemini, so scratch that. Let's keep things simple. ASCII is too restrictive but a good start. Important locations could be capital letter. That would make 26 important locations for the entire region, which is generous. It could be extended with the Cyrillic or the Greek alphabet.
But how do we decorate? Numbers come to mind, but there are only 10 of them. Punctuation is doable as well. We do have minuscule letters as well.
Let's try a mini example to see how it would look like. Say we have the town we talked about before and the village next to it. With mountains on the top left and a forest in the bottom right. Empty space is fields or similar easy terrain. There is a road from north to south to the town then west to east to the village, then a path to the forest.
| mmmm | r mmmmm | r mmmmrr | r mm rrrrr|rrrr A--B \ ffffffffffffff \fffffffffffffffff fffffffffffffffff
legend: A: Town B: Village f: forest m: mountains r: river -\|/: roads
Yeah, I should have seen that coming and started with a draft right away. It highlights the core flaws instantly: the deformation introduced by the height versus width is very disturbing. I need either square fonts or some table based system.
It does not really work in the way I would have hoped. I should have went straight for a little example as it would have made the problems obvious. All hope is not lost, I could try a table based system, csv or something in the taste. Let's test it next time.
[0] Cairn
[1] The Setting Seed/Ream creation procedure
[2] Dwarf Fortress Map Archive, where you can preview such maps in your browser
[3] Vald calendar
[4] Common punch cards were 12x80, which is partly why 80 remains a golden standard.
⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∽⋅∼⋅∽⋅∽⋅