| . ___ __ __ ___ . __ __ __ __ __ __ | | |__ |__) |__) |__ ' /__` /__` / \ /\ |__) |__) / \ \_/ |___ | |___ | \ | \ |___ .__/ .__/ \__/ /~~\ | |__) \__/ / \ ⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∽⋅∼⋅∽⋅∽⋅∽⋅∽⋅
I want to automate the Cairn second edition map creation guide[0]. For that, I want to manually perform the generation steps manually and apply them to pure text information. That way, we'll get a feel for the procedure. But in order to do that, I need to find an equivalent for the paper page and the markings first. Right now, I am experimenting with pure blocks of text.
I tried a little draft of what it could look like last time[2] and it looked like this.
| 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
Truth be told, I was a bit disappointed for one specific reason. Typical fonts have greater height than width. This means that distances are stretched out vertically, which can give a poor idea of distances.
Then I slept on it and reminded myself that I spent my entire childhood with a place-mat with a Mercator projection of the World on it. Was it truthful to the distances on our globe? Certainly not. Was it useful to learn about how location relate to each other? Certainly.
"The map is not the territory", Alfred Korzybski [3]
In our case, the question is not is our map a perfect representation of the world. The question is rather is it a useful representation?
And at second glance, yes. It will not win a beauty contest but it's serviceable. The distance between the village and the forest is clear, same with the path toward the north.
Let's give this another shot. Today I would like to encode the Cairn System Reference Document(SRD) example map[4]. Let's see how readable it becomes and whether it's something we can use or not. I learned yesterday that a 72 char width is better for smol.pub ASCII art, so let's try that instead of the 80 char arbitrary limit from before. It's still 18 travel days, per our previous convention.
The map is seriously smaller that what I would have expected, relative to travel times. The diagonal is maybe 8 travel days. It perhaps makes sense, because otherwise the region can feel empty, requiring many days of boring travel for the players to cross. The weeks in the Vault are 6 days long[5]. Perhaps a square-ish section of 6 days by 6 days (assuming easy travel) is alright. If we keep with the 72 char limit, that's 12 char per easy day. That's very sweet time-system wise, one square for every 2 hours.
It is also very utilitarian and pretty bare. So even if we are not competing for looks, the bar is at least not very high.
It has a code for hidden paths vs normal path but the legend coloration is not helping. Perhaps a dot encoding would make sense?
Alright that's all I can gather. Let's do this.
While on paper it sounded good to me, in effect given that it does not reflect terrain difficulty and constrains the map size as well as the aspect ratio, it's probably not a great idea. At least for now. So let's set it aside.
I remembered that Unicode has box drawing characters, which we can use. And block elements that we can use for shading! I was afraid that it would not translate to gemini correctly. But I tested it and it's safe! Neat, because otherwise I would have to include pictures to talk about it, which defeats the entire idea of having text as maps...
I want to transcribe a map built on an A4 landscape to a 72 character wide ASCII art. I am using a monospace font with a height/width ratio of 2, but from experimenting:
**** *
To move by one vertically on the map I need to move by 4 horizontally. Probably due to the interline.
Let's compute!
Let w be the horizontal char width Let h be the vertical char height h = 4*w w = 1/4*h Let s,S be the short and long sides of the canvas respectively. I want S = 72*w I want S/s = sqrt(2) # because we want the same properties as an A4 s= S/sqrt(2) = 72*w/sqrt(2) = 72*1/(4*sqrt(2))=12.73h
It looks good. Let's apply this rule again at 12 char just to confirm we got it:
s = 12/(4*sqrt(2))=2.12h WWWWWWWWWWWW W W s = 22/(4*sqrt(2))=3.889h WWWWWWWWWWWWWWWWWWWWWW W W W W
I guess that due to the way I computed displacement initially, I have to start with one row minimum, so it's kind of a +1 thing, but it decently works.
[Addendum]: I noticed as I posted it that the ratio is completely different depending on the font and whether the interline will be drawn or not. Guess I worried a lot for something that in the end I control about as well as the font of the potential viewers, ergo not really. I can live with the current look though.
We actually have four generic background markers, five if we count the empty space as well ( ,░,▓,▓,█). Hence we can always separate regions with it, which is something.
For some unknown reason to me, and I searched for invisible chars, ASCII art integration needs manual tweaks. I really don't know what's going on. I have to go back and forth between the published view and the editor to fix it, which is inconvenient. But with some sweat, I could make things presentable. I think the rule is not to trust the edit post section viewer. Probably due to the font that is not monospace? Might get me to test the CLI interface.
Here we go.
MINERAL REACH ┌──────────────────────────────╥───────────────────────────────────────┐ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ║ │ │░░░░░░░░░░░░░░░░░░░░░░░░░░░ ║ │ │░░░░░░░░░░░░░░░ 7 ───x───┐ ╚═══╗ ┌─────────────── 3 │ │░░░░░░░░░░░░░░░░░░░░ │ ║ B │ │ │ │░░░░░░░░░░░░░░░ A ░ 6 ────┐ ║ │ ┌──────x─────┘ │ │░░░░░░░░░░░░░░░░░░░ │ ├─ 1 ──────┘ │ │ │░░░░░░░░░░░░░░░ │ │ ║ │ │ │░░░░░░░░░░░░░░░ ┌────────┘ │▓▓╚══╗▓▓▓▓▓▓▓ 2 ──────────┐▓▓▓▓▓▓▓▓▓▓▓│ │░░░░░░░░░░░░░░ 8 ─────────────┘▓▓ C ║┌───────┘▓▓▓▓▓▓▓▓▓▓ 4 ▓▓▓▓▓▓▓▓▓▓│ │░░░░░░░░░░░░ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓┌───║┘▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓│▓▓▓▓▓▓▓▓▓▓▓│ │░░░░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 5 ──║─────────x──────────┘▓▓▓▓▓▓▓▓▓▓▓│ │░░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓║▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓│ └─────────────────────────────────────╨────────────────────────────────┘ Legend: Point of Interest: 1: Heart: Fortress, Dangerous, Portal 2: Curiosity: Buried Megalith, Irregular Gravity 3: Curiosity: Buried Megalith, Trash Heap 4: Waypoint: Inn, Sacred Grounds 5: Dungeon: Fort, Mirrored 6: Curiosity: Echoin Fields, Site of Ancient Battle 7: Dungeon: Tower, Crumbling 8: Lair: Abandoned Tower, Something Sleeps Landmarks: A: Silver Face B: Broken Sundial C: Great Waterwheel ░: plateau ▓: wasteland : mountain ║: river Connections: ─── : path ─x─ : blocked path 1 ─── 2: Road, 1 Watch, Mineral Flecks - Divided by Political Dispute 1 ─── 3: Wilderness, 2.5 Days, Dead Vegetation - Frequent Flash Floods 1 ─── 6: Road, 1 Watch, Rusted Tools - Firebug Hive 1 ─── 8: Trail, 2 Days, Massive Grooves - Bandit Ambushes 2 ─x─ 3: Trail, 1.5 Days, Follows The Stars - Smoke Filled 2 ─── 4: Trail, 1.5 Days, Abandoned Fields - Blocked by Giant Boulder 2 ─── 5: Trail, 2 Days, Overgrown - Poisonous Fruit 4 ─x─ 5: Cattle Prints, 2 Days, Steep Climb 6 ─x─ 7: Trail, 1 Days, Constant Patrols - Collapsed Bridge 6 ─── 8: Road, 1 Days, Twisted - Gets Extremely Cold
It's not super pretty but alright to read. Paths have to be made blocky but that's ok with me. Reminds me of the early Pokemon world maps a bit. Biggest issue I have so far is the dilution of information regarding the paths/connections. I will sleep on it and see how I can improve. Hence current conclusion: doable, but (by hand at least) kind of a lot of work for a result that is workable but not easy to interpret.
[0] Cairn
[1] The Setting Seed/Ream creation procedure
[2] the previous dev log
[3] Apparently, according to Wikipedia.
[4] That's this map right here.
[5] The Vald calendar reference.
[6] A reference to font aspect values.
⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∼⋅∽⋅∽⋅∼⋅∽⋅∽⋅