Thursday, June 16, 2016

Hexomancy (I) - Text To Map

If you, dear reader, are like me, and I hope you're not for your sake, you've been puttering around with maps for quite some time, and you've used tools like Autorealm or Hexographer or Campaign Cartographer or several others I've forgotten as time passes.

And you do it again, and again, and again, in different formats or styles or whatever. Often for the same map.

I've got a larger project I'd like to work on, and I need to see it on a map - alternatively: I have data I want to visualize. And, unlike the work I did on visualizing Blackmarsh, I'd really rather work with the data and make something else do the work of showing me what I need to adjust.

As it turns out, this time I'm converting real-world maps into something gameable - taking these maps from 1880 and applying unto them a hex grid, and figuring out what is in what hex, etc. I want to do that once, on the input - then let something else output it back into workable ACKS-compatible hex maps.  I'd like to do something as informative as James C Bennett's work here on Dwimmermount; and at a glance see how the various domains and realms I'm mapping out interact with the terrain and each other. I'd also like to change layers and show the players something else, less informative.

But, I'm sitting here working on a 300MB bitmap, between the two political maps and the terrain map and blah blah, and it's ridiculous. So I need to simplify, and I want to take a spreadsheet that describes the hexes, pass it through a script, and receive a map - I want to change data, not an image.

Since I need to fill the blog with something, then, I'll share with you my process as it develops. 

Haha, no. I ain't gonna develop nuttin.

As it turns out, inbetween real life and other work and not finishing this post, I've found everything I need, because hooray Internet, and I will simply pass it along to you here.

First off, digest Red Blob Games' article on Hexagonal Grids. It is fantastic, and that whole site is a treasure trove of information.

Secondly, and here's the magic button: TextMapper.

Click on the help, click on Submit, click on Random, feast your eyes.

It takes a text description of hex features, buoyed by custom object definitions, and puts out a SVG (vector based, so infinitely resizable) hex map.

And on top of that it uses the same language the Good Lord used to let_there_be( \%light ), Perl, so it's right the heck in my wheelhouse for hacking it up if I go rogue.

I am damn near giddy at the possibilities. I can take a subset of my spreadsheet and only generate that part of the map. I can overload the hex descriptions and pass it through a multiplex script to create SVGs for the political layer, the population layer, a trade layer, terrain, elevation, damn near anything...

Here's hoping our summer trip this year ends up productive on the time-wasting aspect of vacations.