An Upcoming Campaign Map with Tech Tomfoolery

Upcoming Campaign Map?

Upcoming Campaign Map?

As I wrote earlier, I’m thinking about starting up a campaign.
I decided to build a campaign world, as it is something I can do all by my lonesome; Reading and programming are my other solitary hobbies.

So I assembled my initial tools:

An Echo, Resounding

I’ve said it before, but I love the concept of the Bloodstone adventure series. Adventure and domain management create different layers. There is the fast burn of an adventure but the slow burn as the seasons roll on.

Sine Nomine‘s An Echo, Resounding is a resource for building domains in tension. There are rules for maintaining domains, handling mass combat, and heroic participation. While it is written for Labyrinth Lord, it appears to be easy enough to port to 5E.

I re-read a few bits, then grabbed a random map.

Random Map

I found a good hex generator over at Isomage’s House. After a few clicks, I settled on something like the above map.

I liked the map, but I wanted something I could continue to tinker with.

I am not an Adobe person, preferring text based representations. I remembered Alex Schroeder‘s TextMapper (available on Github) from a blog post I can no longer cite.

The gist of TextMapper is you can write your maps in plain text. Then generate an SVG image from the text. Specify some attributes (or use the awesome defaults), then give the grid coordinates.

grass attributes fill="green"
sea attributes fill="blue"
0101 grass
0102 sea
0201 grass
0202 sea

TextMapper comes with a random generator, but I had fallen in love another map.

I set about translating the image into a text file. I used Google Sheets to record the entries; A few hours of transcription and I was done.

I threw the table into a plain text file. Then translated the information into Ruby arrays (with a few regular expressions).

From there I began augmenting the text version of the map. I…

  • added towns, cities, rivers, and roads.
  • tweaked the colors.
  • placed ruins, lairs, and resources.

When I wanted a new version of the map, I ran the following shell command:

$ perl ~/bin/text-mapper.pl map="$(ruby ./campaign2015/mapping.rb)" |
  tail -n +3 >
  ./campaign2015/map.svg ;
  open ./campaign2015/map.svg -a Firefox
 

Why All the Work?

All of this was a lot of work. I could’ve drawn the map by hand. Which I may still do. But the purpose of this map is not to generate an artifact.

The purpose of this map is to convey the current state of the game. And to handle updates to that state as game play progresses.

In pushing things to text, I’m able to work in a domain that I am very comfortable. I can…

  • Generate numerous contextual maps (GM only, Players, Ruins only)
  • Version changes
  • Begin modeling the information to grow a campaign-centric application
  • Consider how I might drill down into a smaller scale
  • Generate a map from a simple script

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s