Monday, September 30, 2013

Hexographer

So the thing I was looking at building last week was a recursive world-generator and hexmapper for procedurally building ACKS worlds down to the 1.5-mile level of detail that Cameron suggested here.  But there comes a point where it's easier to drop $25 on a Hexographer license and try that first before devoting a couple months of nights and weekends to a project like that (especially since front-end work, which is reasonably necessary for mapping, is not at all my forte).  I do hate to pay for closed-source and licensed code, but if it's the right tool, it's the right tool (and if it's the wrong tool, then I get a good idea of features I need when I build something different).

Having fiddled with the paid version for an hour or so now, I'm somewhat disappointed with the state of the advertised "child map" feature, in that (to the best of my ability to tell) it produces an unlinked map from its parent.  As a result, updates to the parent do not produce updates in the child, nor vice versa.  This is less functionality that I hoped for, but fortunately the files Hexographer generates are flat-text Unicode of some sort, and amenable to manipulation by command-line tools.  So I'm thinking a suite of Hexographer submap scripts might be in order, for tracking which maps are submaps of which parts of which other maps at what scales, and updating sub- and super-maps when either linked map changes.  Need to suss out all the details of how features and lines and whatnot are stored first, but it'll to be a lot easier than if it were an obfuscated binary file format.

The fact that the map files are flat text and use a very straightforward "note" format also means that I could fairly easily automate the addition of notes with randomly-generated terrain-appropriate hex contents.  Though I object to their selection of tab-delimited tables as their storage format (supposedly they're going to switch to XML in the near future, which is better in terms of text display but worse in terms of verbosity.  If it changes, I will adapt).

Anyway, it looks like a decent tool, and one which will save me a fair bit of labor.

No comments: