<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/alex-2012.css" ?>
<rss version="2.0"
    xmlns:wiki="http://purl.org/rss/1.0/modules/wiki/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://web.resource.org/cc/"
    xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<title>Alex Schroeder: Hex</title>
<link>http://alexschroeder.ch/wiki/Diary</link>
<atom:link href="http://www.google.com/profiles/kensanata" rel="me" type="text/html" />
<atom:link href="http://alexschroeder.ch/wiki?action=rss;full=1" rel="self" type="application/rss+xml" />
<description>The Homepage of Alex Schroeder.</description>
<pubDate>Thu, 23 May 2013 14:02:48 GMT</pubDate>
<lastBuildDate>Thu, 23 May 2013 14:02:48 GMT</lastBuildDate>
<generator>Oddmuse</generator>
<copyright>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation.</copyright>
<cc:license>http://www.gnu.org/copyleft/fdl.html</cc:license>
<image>
<url>http://alexschroeder.ch/pics/alex.png</url>
<title>Alex Schroeder: Hex</title>
<link>http://alexschroeder.ch/wiki</link>
</image>

<item>
<title>Text Mapper</title>
<link>http://alexschroeder.ch/wiki/2013-02-26_Text_Mapper</link>
<guid>http://alexschroeder.ch/wiki/2013-02-26_Text_Mapper</guid>
<description>&lt;p&gt;Recently I wanted to create a little hex map and I wanted to do it on an iPad, I wanted to eventually integrate it into my campaign wiki, I wanted it to be SVG based, and so on. All that meant, &lt;a class="url http outside" href="http://www.hexographer.com/"&gt;Hexographer&lt;/a&gt; wasn&amp;#x2019;t the appropriate tool. I needed to cook something up myself. Based on code I wrote nearly five years ago&amp;#x2014;the &lt;a class="local" href="http://alexschroeder.ch/wiki/2007-06-08_Old_School_Hex_Mapper_Getting_Better"&gt;Old School Hex Mapper&lt;/a&gt;&amp;#x2014;I wrote up a little something.&lt;/p&gt;&lt;p&gt;I&amp;#x2019;m calling it the &lt;a class="url http outside" href="http://alexschroeder.ch/text-mapper"&gt;Text Mapper&lt;/a&gt; because it takes text input. No interactive fiddling with the map.&lt;/p&gt;&lt;p&gt;There are various sections of the input.&lt;/p&gt;&lt;h2&gt;Map&lt;/h2&gt;&lt;p&gt;This is simple. Coordinates, terrain.&lt;/p&gt;&lt;pre class="real"&gt;# map definition
0101 mountain
0102 mountain
0103 hill
0104 forest
0201 mountain
0202 hill
0203 coast
0204 empty
0301 mountain
0302 mountain
0303 plain
0304 sea
0401 hill
0402 sand
0403 forest&lt;/pre&gt;&lt;p&gt;The rest of the input determines how things look: what colors to use, what icons to display. When you start the Text Mapper, the input area already contains an example. Start with that before doing anything else.&lt;/p&gt;&lt;h2&gt;Terrain attributes&lt;/h2&gt;&lt;p&gt;Now it gets tricky. For every terrain we used, the script will generate a hex. We need to provide some SVG attributes! Need documentation? Check out the &lt;a class="url http outside" href="http://www.w3.org/TR/SVG/shapes.html#PolygonElement"&gt;polygon in the SVG specification&lt;/a&gt; and click on &lt;em style="text-decoration: underline; font-style: normal;"&gt;show&lt;/em&gt; next to &lt;em style="text-decoration: underline; font-style: normal;"&gt;presentation attributes&lt;/em&gt;. That&amp;#x2019;s what you should be looking at.&lt;/p&gt;&lt;pre class="real"&gt;# attributes
empty attributes fill="#ffffff" stroke="black" stroke-width="3"
plain attributes fill="#7cfc00" stroke="black" stroke-width="3"
forest attributes fill="#228b22" stroke="black" stroke-width="3"
hill attributes fill="#daa520" stroke="black" stroke-width="3"
mountain attributes fill="#708090" stroke="black" stroke-width="3"
sand attributes fill="#eedd82" stroke="black" stroke-width="3"
coast attributes fill="#7fffd4" stroke="black" stroke-width="3"
sea attributes fill="#4169e1" stroke="black" stroke-width="3"&lt;/pre&gt;&lt;h2&gt;Icons&lt;/h2&gt;&lt;p&gt;In order to add little icons, you can specify a &lt;em style="font-style: normal; letter-spacing: 0.125em; padding-left: 0.125em;"&gt;path&lt;/em&gt; per terrain.&lt;/p&gt;&lt;div style="font-family: 'Andale Mono', Monaco, 'Courier New', Courier, monospace; font-size: 80%; line-height: 110%;"&gt; hill path M -42,11 C -38,5 -34,0 -28,-3 C -20,-6 -11,-5 -5,-0 C -2,2 1,6 3,9 C 4,12 2,13 0,14 C -3,9 -7,5 -13,2 C -21,-1 -30,0 -36,6 C -38,9 -40,11 -43,14 C -43,15 -44,14 -44,13 C -43,12 -43,12 -42,11 z M -5,-0 C 0,-6 7,-12 15,-16 C 21,-18 28,-17 33,-14 C 39,-11 41,-5 43,-0 C 42,2 41,5 39,2 C 37,-2 33,-8 27,-10 C 20,-13 12,-12 6,-7 C 2,-4 -1,-1 -4,1 C -7,4 -6,0 -5,-0 z&lt;p&gt;plain path M -18,-13 C -13,-6 -13,4 -8,12 C -11,14 -15,21 -18,26 C -20,17 -22,4 -28,0 C -26,-4 -21,-9 -18,-13 z M 5,-31 C 4,-19 3,-6 6,5 C 1,10 -0,14 -3,19 C -2,6 -3,-4 -4,-16 C -4,-21 2,-26 5,-31 z M 26,-1 C 16,6 19,5 9,18 C 12,3 21,-8 34,-17 C 32,-12 29,-6 27,-1 z &lt;/p&gt;&lt;/div&gt;&lt;p&gt;If you don&amp;#x2019;t want this path to be black, you need to specify attributes for the  &lt;a class="url http outside" href="http://www.w3.org/TR/SVG/paths.html#PathElement"&gt;path element&lt;/a&gt;.&lt;/p&gt;&lt;pre class="real"&gt;plain path attributes fill="#76ee00"
hill path attributes fill="#b8860b"&lt;/pre&gt;&lt;p&gt;And finally, the coordinates are simple &lt;a class="url http outside" href="http://www.w3.org/TR/SVG/text.html#TextElement"&gt;text elements&lt;/a&gt;.&lt;/p&gt;&lt;pre class="real"&gt;text font-size="20pt" dy="15px"&lt;/pre&gt;&lt;p&gt;If you wanted a black and white map, for example, you could use different strokes&amp;#x2026;&lt;/p&gt;&lt;pre class="real"&gt;empty attributes fill="white" stroke="#b3b3ff" stroke-width="3"
mountain attributes fill="white" stroke="#b3b3ff" stroke-width="3"
hill attributes fill="white" stroke="#b3b3ff" stroke-width="3"
forest attributes fill="white" stroke="#b3b3ff" stroke-width="3"&lt;/pre&gt;&lt;p&gt;If you want to create new path elements yourself in Inkscape, you should draw them in a rectangle from (-100,-100) to (100,100) and extract the the path info from the SVG. Yeah, adding new icons isn&amp;#x2019;t easy.&lt;/p&gt;&lt;p&gt;I need to add more icons. I&amp;#x2019;d also like to add multiple icons for the same terrain such that the code will pick one at random.&lt;/p&gt;&lt;p&gt;I wonder how easy it&amp;#x2019;s be to add text labels, roads, rivers and borders. &lt;img class="smiley" src="http://www.emacswiki.org/pics/smile.png" alt=":)" /&gt;&lt;/p&gt;&lt;p&gt;The result of the above:&lt;/p&gt;&lt;div style="width:500px"&gt; &lt;a class="image outside" href="http://alexschroeder.ch/text-mapper?map=%23+map+definition%0D%0A0101+mountain%0D%0A0102+mountain%0D%0A0103+hill%0D%0A0104+forest%0D%0A0201+mountain%0D%0A0202+hill%0D%0A0203+coast%0D%0A0204+empty%0D%0A0301+mountain%0D%0A0302+mountain%0D%0A0303+plain%0D%0A0304+sea%0D%0A0401+hill%0D%0A0402+sand%0D%0A0403+forest%0D%0A%0D%0A%23+attributes%0D%0Aempty+attributes+fill%3D%22%23ffffff%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Aplain+attributes+fill%3D%22%237cfc00%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Aplain+path+attributes+fill%3D%22%2376ee00%22%0D%0Aforest+attributes+fill%3D%22%23228b22%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Ahill+attributes+fill%3D%22%23daa520%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Ahill+path+attributes+fill%3D%22%23b8860b%22%0D%0Amountain+attributes+fill%3D%22%23708090%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Asand+attributes+fill%3D%22%23eedd82%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Acoast+attributes+fill%3D%22%237fffd4%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Asea+attributes+fill%3D%22%234169e1%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0A%0D%0A%23+add+shapes%0D%0Ahill+path+M+-42%2C11+C+-38%2C5+-34%2C0+-28%2C-3+C+-20%2C-6+-11%2C-5+-5%2C-0+C+-2%2C2+1%2C6+3%2C9+C+4%2C12+2%2C13+0%2C14+C+-3%2C9+-7%2C5+-13%2C2+C+-21%2C-1+-30%2C0+-36%2C6+C+-38%2C9+-40%2C11+-43%2C14+C+-43%2C15+-44%2C14+-44%2C13+C+-43%2C12+-43%2C12+-42%2C11+z+M+-5%2C-0+C+0%2C-6+7%2C-12+15%2C-16+C+21%2C-18+28%2C-17+33%2C-14+C+39%2C-11+41%2C-5+43%2C-0+C+42%2C2+41%2C5+39%2C2+C+37%2C-2+33%2C-8+27%2C-10+C+20%2C-13+12%2C-12+6%2C-7+C+2%2C-4+-1%2C-1+-4%2C1+C+-7%2C4+-6%2C0+-5%2C-0+z%0D%0A%0D%0Aplain+path+M+-18%2C-13+C+-13%2C-6+-13%2C4+-8%2C12+C+-11%2C14+-15%2C21+-18%2C26+C+-20%2C17+-22%2C4+-28%2C0+C+-26%2C-4+-21%2C-9+-18%2C-13+z+M+5%2C-31+C+4%2C-19+3%2C-6+6%2C5+C+1%2C10+-0%2C14+-3%2C19+C+-2%2C6+-3%2C-4+-4%2C-16+C+-4%2C-21+2%2C-26+5%2C-31+z+M+26%2C-1+C+16%2C6+19%2C5+9%2C18+C+12%2C3+21%2C-8+34%2C-17+C+32%2C-12+29%2C-6+27%2C-1+z%0D%0A%0D%0Atext+font-size%3D%2220pt%22+dy%3D%2215px%22%0D%0A"&gt;&lt;img class="upload" title="Example map" src="http://alexschroeder.ch/text-mapper?map=%23+map+definition%0D%0A0101+mountain%0D%0A0102+mountain%0D%0A0103+hill%0D%0A0104+forest%0D%0A0201+mountain%0D%0A0202+hill%0D%0A0203+coast%0D%0A0204+empty%0D%0A0301+mountain%0D%0A0302+mountain%0D%0A0303+plain%0D%0A0304+sea%0D%0A0401+hill%0D%0A0402+sand%0D%0A0403+forest%0D%0A%0D%0A%23+attributes%0D%0Aempty+attributes+fill%3D%22%23ffffff%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Aplain+attributes+fill%3D%22%237cfc00%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Aplain+path+attributes+fill%3D%22%2376ee00%22%0D%0Aforest+attributes+fill%3D%22%23228b22%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Ahill+attributes+fill%3D%22%23daa520%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Ahill+path+attributes+fill%3D%22%23b8860b%22%0D%0Amountain+attributes+fill%3D%22%23708090%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Asand+attributes+fill%3D%22%23eedd82%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Acoast+attributes+fill%3D%22%237fffd4%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0Asea+attributes+fill%3D%22%234169e1%22+stroke%3D%22black%22+stroke-width%3D%223%22%0D%0A%0D%0A%23+add+shapes%0D%0Ahill+path+M+-42%2C11+C+-38%2C5+-34%2C0+-28%2C-3+C+-20%2C-6+-11%2C-5+-5%2C-0+C+-2%2C2+1%2C6+3%2C9+C+4%2C12+2%2C13+0%2C14+C+-3%2C9+-7%2C5+-13%2C2+C+-21%2C-1+-30%2C0+-36%2C6+C+-38%2C9+-40%2C11+-43%2C14+C+-43%2C15+-44%2C14+-44%2C13+C+-43%2C12+-43%2C12+-42%2C11+z+M+-5%2C-0+C+0%2C-6+7%2C-12+15%2C-16+C+21%2C-18+28%2C-17+33%2C-14+C+39%2C-11+41%2C-5+43%2C-0+C+42%2C2+41%2C5+39%2C2+C+37%2C-2+33%2C-8+27%2C-10+C+20%2C-13+12%2C-12+6%2C-7+C+2%2C-4+-1%2C-1+-4%2C1+C+-7%2C4+-6%2C0+-5%2C-0+z%0D%0A%0D%0Aplain+path+M+-18%2C-13+C+-13%2C-6+-13%2C4+-8%2C12+C+-11%2C14+-15%2C21+-18%2C26+C+-20%2C17+-22%2C4+-28%2C0+C+-26%2C-4+-21%2C-9+-18%2C-13+z+M+5%2C-31+C+4%2C-19+3%2C-6+6%2C5+C+1%2C10+-0%2C14+-3%2C19+C+-2%2C6+-3%2C-4+-4%2C-16+C+-4%2C-21+2%2C-26+5%2C-31+z+M+26%2C-1+C+16%2C6+19%2C5+9%2C18+C+12%2C3+21%2C-8+34%2C-17+C+32%2C-12+29%2C-6+27%2C-1+z%0D%0A%0D%0Atext+font-size%3D%2220pt%22+dy%3D%2215px%22%0D%0A" alt="Example map" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;p&gt;(Also &lt;a class="url http outside" href="https://github.com/kensanata/hex-mapping"&gt;on GitHub&lt;/a&gt;.)&lt;/p&gt;&lt;p&gt;Tags: &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=RPG"&gt;RPG&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/RPG"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Hex"&gt;Hex&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Hex"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Maps"&gt;Maps&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Maps"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Software"&gt;Software&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Software"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Text%20Mapper"&gt;Text Mapper&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Text%20Mapper"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
<pubDate>Tue, 26 Feb 2013 07:54:10 GMT</pubDate>
<comments>http://alexschroeder.ch/wiki/Comments_on_2013-02-26_Text_Mapper</comments>
<dc:contributor>AlexSchroeder</dc:contributor>
<wiki:status>new</wiki:status>
<wiki:importance>major</wiki:importance>
<wiki:version>1</wiki:version>
<wiki:history>http://alexschroeder.ch/wiki?action=history;id=2013-02-26_Text_Mapper</wiki:history>
<wiki:diff>http://alexschroeder.ch/wiki?action=browse;diff=1;id=2013-02-26_Text_Mapper</wiki:diff>
<category>RPG</category>
<category>Hex</category>
<category>Maps</category>
<category>Software</category>
<category>Text Mapper</category>
</item>

<item>
<title>Hexcrawl</title>
<link>http://alexschroeder.ch/wiki/2009-12-02_Hexcrawl</link>
<guid>http://alexschroeder.ch/wiki/2009-12-02_Hexcrawl</guid>
<description>&lt;p&gt;Zak thinks about hexcrawling and asks: &lt;a class="url http outside" href="http://dndwithpornstars.blogspot.com/2009/11/discuss.html"&gt;do you just sort of write a few bits about each place and wing the details when the players get there, or what&lt;/a&gt;? Brian adds that &lt;a class="url http outside" href="http://trollsmyth.blogspot.com/2009/12/for-zak-s.html"&gt;most of his hexes are empty&lt;/a&gt; (about one in ten has interesting stuff). That density certainly looks similar to the &lt;a class="near" title="Names" href="http://en.wikipedia.org/wiki/Wilderlands_of_High_Fantasy"&gt;Wilderlands of High Fantasy&lt;/a&gt; maps such as the &lt;a class="near" title="Names" href="http://www.judgesguild.com/pdf/lenap/lenap.pdf"&gt;Lenap&lt;/a&gt; map that I started with.&lt;/p&gt;&lt;p&gt;For my own &lt;a class="near" title="Names" href="http://campaignwiki.org/wiki/TheAlderKing/HomePage"&gt;Alder King&lt;/a&gt; game, I decided to take the advice found in one of the books saying that there was much more to be found in each hex. I started out with the original hex and the six surrounding hexes à la &lt;a class="near" title="Names" href="http://microlite20.net/"&gt;M20&lt;/a&gt; &amp;#x2013; a true &lt;a class="local" href="http://alexschroeder.ch/wiki/Microlite_Campaign"&gt;Microlite Campaign&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;a class="image" href="http://alexschroeder.ch/wiki/Old_School_Hex_Map_Tutorial"&gt;&lt;img class="upload" title="Old School Hex Map Tutorial" src="http://farm4.static.flickr.com/3085/2614914871_79fcfa5796_o.png" alt="Old School Hex Map Tutorial" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As time passed and my players started to explore, the map started to grow.&lt;/p&gt;&lt;p&gt;&lt;a class="image outside" href="http://www.flickr.com/photos/kensanata/3127562077/"&gt;&lt;img class="upload" title="Alder King Map starts to grow..." src="http://farm4.static.flickr.com/3084/3127562077_256c7a95a0.jpg" alt="Alder King Map starts to grow..." /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The &lt;a class="url http outside" href="http://campaignwiki.org/wiki/TheAlderKing/download/Map"&gt;current player map&lt;/a&gt; is even bigger, now.&lt;/p&gt;&lt;p&gt;The things I do between sessions:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Make sure the hexes around the player&amp;#x2019;s current hex and any long range goals they want to pursue are on the map with at least a paragraph of notes for each.&lt;/li&gt;&lt;li&gt;Grow the map if I feel like it.&lt;/li&gt;&lt;li&gt;Add notes for hexes on the map that don&amp;#x2019;t have any.&lt;/li&gt;&lt;li&gt;Add more notes to hexes in order to interlink the various locations.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Also, &lt;a class="url http outside" href="http://batintheattic.blogspot.com/2009/08/how-to-make-fantasy-sandbox.html"&gt;How to make a Fantasy Sandbox&lt;/a&gt; by Rob Conley is the best advice on the topic I&amp;#x2019;ve seen.&lt;/p&gt;&lt;p&gt;More reading:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="url http outside" href="http://batintheattic.blogspot.com/2009/12/packing-stuff-inside-hex.html"&gt;Packing stuff inside the Hex&lt;/a&gt; by Rob Conley&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://batintheattic.blogspot.com/2009/03/wilderland-demographics.html"&gt;Wilderland Demographics&lt;/a&gt; by by Rob Conley&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://www.io.com/~sjohn/demog.htm"&gt;Medieval Demographics Made Easy&lt;/a&gt; by S. John Ross [via Rob Conley]&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://ode2bd.blogspot.com/2009/12/hexcrawls.html"&gt;Hexcrawls&lt;/a&gt; (how to stock a map like a dungeon) by P. Armstrong&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://oldguyrpg.blogspot.com/2009/12/finding-things-in-5-mile-hex.html"&gt;Finding things in a 5 mile hex&lt;/a&gt; by Chgowiz&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://planetalgol.blogspot.com/2009/12/how-i-handle-hexcrawling.html"&gt;How I Handle Hexcrawling&lt;/a&gt; by Blair of Planet Algol&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://dndwithpornstars.blogspot.com/2009/12/hexcrawls-worldbuilding-vs-microlite-vs.html"&gt;Hexcrawls: Worldbuilding vs. Microlite vs. HexKit&lt;/a&gt; by Zak S. (full circle!)&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://gothridgemanor.blogspot.com/2009/12/building-wilderness-hex-for-sandbox.html"&gt;Building a Wilderness Hex for a Sandbox Campaign&lt;/a&gt; by Tim Shorts&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Update&lt;/b&gt;:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="url http outside" href="http://www.welshpiper.com/hex-based-campaign-design-part-1"&gt;Hex Based Campaign Design&lt;/a&gt; by Erin D. Smale (&lt;a class="url http outside" href="http://www.welshpiper.com/hex-based-campaign-design-part-2"&gt;part 2&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Tags: &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=RPG"&gt;RPG&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/RPG"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=hex"&gt;hex&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/hex"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Maps"&gt;Maps&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Maps"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Sandbox"&gt;Sandbox&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Sandbox"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
<pubDate>Wed, 02 Dec 2009 09:30:36 GMT</pubDate>
<comments>http://alexschroeder.ch/wiki/Comments_on_2009-12-02_Hexcrawl</comments>
<dc:contributor>AlexSchroeder</dc:contributor>
<wiki:status>new</wiki:status>
<wiki:importance>major</wiki:importance>
<wiki:version>1</wiki:version>
<wiki:history>http://alexschroeder.ch/wiki?action=history;id=2009-12-02_Hexcrawl</wiki:history>
<wiki:diff>http://alexschroeder.ch/wiki?action=browse;diff=1;id=2009-12-02_Hexcrawl</wiki:diff>
<category>RPG</category>
<category>hex</category>
<category>Maps</category>
<category>Sandbox</category>
</item>

<item>
<title>Traveller Map Based on UWP</title>
<link>http://alexschroeder.ch/wiki/2009-09-11_Traveller_Map_Based_on_UWP</link>
<guid>http://alexschroeder.ch/wiki/2009-09-11_Traveller_Map_Based_on_UWP</guid>
<description>&lt;p&gt;There is an &lt;a class="url http outside" href="http://travellermap.com/api.htm"&gt;amazing Traveller Map API&lt;/a&gt; available out there. Specifically, there&amp;#x2019;s a service that will produce a &lt;a class="url http outside" href="http://www.travellermap.com/post.htm"&gt;PDF based on your UWP list&lt;/a&gt;. But you know how it is. I bet half the Traveller referees are trying to code up subsector generators and mappers. Me too!&lt;/p&gt;&lt;p&gt;Here&amp;#x2019;s my &lt;a class="url http outside" href="http://emacswiki.org/cgi-bin/svg-map"&gt;SVG Mapper for Traveller&lt;/a&gt;. It comes with example data so you can figure out what format it expects by looking at it. Just klick the Submit button! Remember, you need a browser that knows how to deal with SVG files – &lt;a class="local" href="http://alexschroeder.ch/wiki/Firefox"&gt;Firefox&lt;/a&gt; will do.&lt;/p&gt;&lt;p&gt;&lt;a class="url http outside" href="http://emacswiki.org/cgi-bin/svg-map/source"&gt;Source code is available&lt;/a&gt;. I got to reuse some of my abandoned &lt;a class="local" href="http://alexschroeder.ch/wiki/2007-06-08_Old_School_Hex_Mapper_Getting_Better"&gt;Old School Hex Mapper&lt;/a&gt;. And figuring out the trigonometry stuff is fun. &lt;img class="smiley" src="http://www.emacswiki.org/pics/smile.png" alt=":)" /&gt; &lt;img class="smiley" src="http://www.emacswiki.org/pics/ok.png" alt="ok" /&gt;&lt;/p&gt;&lt;p&gt;Tags: &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=RPG"&gt;RPG&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/RPG"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Traveller"&gt;Traveller&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Traveller"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Hex"&gt;Hex&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Hex"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Maps"&gt;Maps&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Maps"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Graphics"&gt;Graphics&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Graphics"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=SVG"&gt;SVG&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/SVG"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;/p&gt;</description>
<pubDate>Fri, 11 Sep 2009 00:25:15 GMT</pubDate>
<comments>http://alexschroeder.ch/wiki/Comments_on_2009-09-11_Traveller_Map_Based_on_UWP</comments>
<dc:contributor>AlexSchroeder</dc:contributor>
<wiki:status>new</wiki:status>
<wiki:importance>major</wiki:importance>
<wiki:version>1</wiki:version>
<wiki:history>http://alexschroeder.ch/wiki?action=history;id=2009-09-11_Traveller_Map_Based_on_UWP</wiki:history>
<wiki:diff>http://alexschroeder.ch/wiki?action=browse;diff=1;id=2009-09-11_Traveller_Map_Based_on_UWP</wiki:diff>
<category>RPG</category>
<category>Traveller</category>
<category>Hex</category>
<category>Maps</category>
<category>Graphics</category>
<category>SVG</category>
</item>

<item>
<title>mkhexgrid</title>
<link>http://alexschroeder.ch/wiki/2008-06-26_mkhexgrid</link>
<guid>http://alexschroeder.ch/wiki/2008-06-26_mkhexgrid</guid>
<description>&lt;p&gt;So I&amp;#x2019;m trying to build mkhexgrid.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a class="url http outside" href="http://libpng.sourceforge.net/"&gt;libpng&lt;/a&gt; &lt;img class="smiley" src="http://www.emacswiki.org/pics/ok.png" alt="ok" /&gt;&lt;/li&gt;&lt;li&gt;ignore libjpg for the moment &lt;img class="smiley" src="http://www.emacswiki.org/pics/ok.png" alt="ok" /&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://www.freetype.org/"&gt;FreeType&lt;/a&gt; 2 &lt;img class="smiley" src="http://www.emacswiki.org/pics/ok.png" alt="ok" /&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://www.libgd.org/"&gt;libgd&lt;/a&gt; &lt;img class="smiley" src="http://www.emacswiki.org/pics/sucks.png" alt="sucks" /&gt; &amp;#x2013; I had to configure and build this inside a X11 session!&lt;/li&gt;&lt;li&gt;fortunately I already have libz! &lt;img class="smiley" src="http://www.emacswiki.org/pics/smile.png" alt=":)" /&gt;&lt;/li&gt;&lt;li&gt;and I need the &lt;a class="url http outside" href="http://www.boost.org/"&gt;Boost C++ Libraries&lt;/a&gt; &amp;#x2013; I had too add &lt;code&gt;-I/Users/alex/Source/boost_1_35_0&lt;/code&gt; to &lt;code&gt;CPPFLAGS&lt;/code&gt; in the Makefile&lt;/li&gt;&lt;li&gt;&lt;a class="url http outside" href="http://www.nomic.net/~uckelman/mkhexgrid/"&gt;mkhexgrid&lt;/a&gt; &lt;img class="smiley" src="http://www.emacswiki.org/pics/ok.png" alt="ok" /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The X11 dependency was surprising. I assume there&amp;#x2019;s a better way to do it, but I don&amp;#x2019;t know what it is. The error I got without X11:&lt;/p&gt;&lt;pre class="real"&gt;Pyrobombus:~/Source/gd-2.0.36RC1 alex$  gcc -DHAVE_CONFIG_H -I. -I/usr/local/include/freetype2 -I/usr/local/include -I/usr/local/include/libpng12 -g -O2 -MT gdft.lo -MD -MP -MF .deps/gdft.Tpo -c gdft.c  -fno-common -DPIC -o .libs/gdft.o
gdft.c:1405:35: error: fontconfig/fontconfig.h: No such file or directory
gdft.c:1468: error: parse error before '*' token
gdft.c:1468: error: parse error before '*' token&lt;/pre&gt;&lt;p&gt;I also noticed that SVG output required px units, which is not true. I submitted the following patch to version 0.1.1:&lt;/p&gt;&lt;pre class="real"&gt;diff -c /Users/alex/Source/mkhexgrid-0.1.1/grid.cpp\~ /Users/alex/Source/mkhexgrid-0.1.1/grid.cpp
*** /Users/alex/Source/mkhexgrid-0.1.1/grid.cpp~	Wed Jan 10 14:37:42 2007
--- /Users/alex/Source/mkhexgrid-0.1.1/grid.cpp	Thu Jun 26 14:06:37 2008
***************
*** 646,652 ****
              throw runtime_error(string(o) + " is not in px");
           break;
        case SVG:
!          if (u != "px") throw runtime_error(string(o) + " is not in px");
           break;
        case PS:
           if      (u == "pt") ;               // 1 point per point :)
--- 646,657 ----
              throw runtime_error(string(o) + " is not in px");
           break;
        case SVG:
!          if      (u == "pt") ;               // 1 point per point :)
!          else if (u == "cm") d *= 72/2.54;   // ~28.35 points per cm
!          else if (u == "mm") d *= 72/25.4;   // ~2.835 points per mm
!          else if (u == "in") d *= 72;        // 72 points per inch
!          else throw runtime_error(string(o) +
!             " has unrecognized unit `" + u + "'");
           break;
        case PS:
           if      (u == "pt") ;               // 1 point per point :)

Diff finished.  Thu Jun 26 14:08:15 2008&lt;/pre&gt;&lt;p&gt;I just used copy &amp;amp; paste to use the same code that was available for PS output.&lt;/p&gt;&lt;p&gt;And finally this is the specfile I used for my map:&lt;/p&gt;&lt;pre class="real"&gt;output=svg
outfile=hex-layer.svg
hex-side=1in
rows=8
columns=5
grid-color=B3B3FF
coord-color=B3B3FF
coord-size=10pt
coord-distance=0.7in
coord-column-start=21
coord-row-start=11&lt;/pre&gt;&lt;p&gt;Yay!! &lt;img class="smiley" src="http://www.emacswiki.org/pics/smile.png" alt=":)" /&gt;&lt;/p&gt;&lt;p&gt;Tags: &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Software"&gt;Software&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Software"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Graphics"&gt;Graphics&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Graphics"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Maps"&gt;Maps&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Maps"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Hex"&gt;Hex&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Hex"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=RPG"&gt;RPG&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/RPG"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
<pubDate>Thu, 26 Jun 2008 12:47:04 GMT</pubDate>
<comments>http://alexschroeder.ch/wiki/Comments_on_2008-06-26_mkhexgrid</comments>
<dc:contributor>AlexSchroeder</dc:contributor>
<wiki:status>updated</wiki:status>
<wiki:importance>major</wiki:importance>
<wiki:version>12</wiki:version>
<wiki:history>http://alexschroeder.ch/wiki?action=history;id=2008-06-26_mkhexgrid</wiki:history>
<wiki:diff>http://alexschroeder.ch/wiki?action=browse;diff=1;id=2008-06-26_mkhexgrid</wiki:diff>
<category>Software</category>
<category>Graphics</category>
<category>Maps</category>
<category>Hex</category>
<category>RPG</category>
</item>

<item>
<title>Old School Hex Mapper Getting Better</title>
<link>http://alexschroeder.ch/wiki/2007-06-08_Old_School_Hex_Mapper_Getting_Better</link>
<guid>http://alexschroeder.ch/wiki/2007-06-08_Old_School_Hex_Mapper_Getting_Better</guid>
<description>&lt;p&gt;The &lt;a class="url http outside" href="http://alexschroeder.ch/old-school-hex"&gt;Old School Hex Mapper&lt;/a&gt; is &lt;a class="url http outside" href="http://alexschroeder.ch/old-school-hex?map=%22+%22+o-%22+%22%0D%0A+n+%22+%22-.%0D%0An-n-O-.+.%0D%0A+n-%22-%22+.%0D%0A"&gt;getting better&lt;/a&gt;. Notice how it creates the loop at the bottom using a very small number of simple rules. I have the feeling that it should be possible to formulate the rules required for a decent layouting of roads.&lt;/p&gt;&lt;p&gt;Funny how some skills thought long lost are coming back. 90° – a² + b² = c². 90° &amp;amp; 60° – ½ : √3 : 1.&lt;/p&gt;&lt;p&gt;(Also &lt;a class="url http outside" href="https://github.com/kensanata/hex-mapping"&gt;on GitHub&lt;/a&gt;.)&lt;/p&gt;&lt;p&gt;Tags: &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Software"&gt;Software&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Software"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Graphics"&gt;Graphics&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Graphics"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Pictures"&gt;Pictures&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Pictures"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Maps"&gt;Maps&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Maps"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=Hex"&gt;Hex&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/Hex"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://alexschroeder.ch/wiki?action=tag;id=RPG"&gt;RPG&lt;/a&gt; &lt;a class="feed tag" title="Feed for this tag" rel="feed" href="http://alexschroeder.ch/wiki/feed/full/RPG"&gt;&lt;img src="http://alexschroeder.ch/pics/rss.png" alt="RSS" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
<pubDate>Fri, 08 Jun 2007 23:13:19 GMT</pubDate>
<comments>http://alexschroeder.ch/wiki/Comments_on_2007-06-08_Old_School_Hex_Mapper_Getting_Better</comments>
<dc:contributor>AlexSchroeder</dc:contributor>
<wiki:status>new</wiki:status>
<wiki:importance>major</wiki:importance>
<wiki:version>1</wiki:version>
<wiki:history>http://alexschroeder.ch/wiki?action=history;id=2007-06-08_Old_School_Hex_Mapper_Getting_Better</wiki:history>
<wiki:diff>http://alexschroeder.ch/wiki?action=browse;diff=1;id=2007-06-08_Old_School_Hex_Mapper_Getting_Better</wiki:diff>
<category>Software</category>
<category>Graphics</category>
<category>Pictures</category>
<category>Maps</category>
<category>Hex</category>
<category>RPG</category>
</item>

<item>
<title>Hex Mapping – Roads</title>
<link>http://alexschroeder.ch/wiki/2007-06-06_Hex_Mapping_%e2%80%93_Roads</link>
<guid>http://alexschroeder.ch/wiki/2007-06-06_Hex_Mapping_%e2%80%93_Roads</guid>
<description>&lt;p&gt;I worked some more on the &amp;#x201c;Old School Hex Mapper&amp;#x201d; I mentioned before (&lt;a class="local" href="http://alexschroeder.ch/wiki/2007-06-02_Hex_Mapping"&gt;2007-06-02 Hex Mapping&lt;/a&gt;). It does roads! Well, it does them in a crummy way. Basically there&amp;#x2019;s a road-segment connecting the center of a hex with the edge, which I then copy, rotate, and translate as necessary.&lt;/p&gt;&lt;p&gt;Check out &lt;a class="url http outside" href="http://www.emacswiki.org/cgi-bin/old-school-hex?map=%22+%22+o-%22+%22%0D%0A+n+%22-%22+.%0D%0An-n+O-.+.%0D%0A+n-%22-%22+.%0D%0A%0D%0A"&gt;this map with a road&lt;/a&gt;. (You need a SVG enabled browser.)&lt;/p&gt;&lt;p&gt;Notice how the ASCII input starts to show limitations when there are more possiblities. Look at this unintended (?) &lt;a class="url http outside" href="http://www.emacswiki.org/cgi-bin/old-school-hex?map=%22+%22+o-%22+%22%0D%0A+n+%22-%22+.%0D%0An-n-O-.+.%0D%0A+n+%22+%22+."&gt;three-way crossing near the city&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The ugly part is that the roads go right through the icons. In fact, they have to, because every road segment has one of its ends in the center of the hex.&lt;/p&gt;&lt;p&gt;So that&amp;#x2019;s what I&amp;#x2019;ll try to work on next. I think what I&amp;#x2019;ll do is have four road tiles, one connecting two adjacent sides (60°), one connecting roads at an angle (120°), and one connecting two opposite sides (180°). Then I can have the connecting parts avoid the center of the hex.&lt;/p&gt;&lt;p&gt;And I&amp;#x2019;ll get rid of extra three-way crossings near cities and towns. That should be easy to do.&lt;/p&gt;&lt;p&gt;In the mean time, feel free to experiment:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="url http" href="http://www.emacswiki.org/cgi-bin/old-school-hex"&gt;http://www.emacswiki.org/cgi-bin/old-school-hex&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="url http" href="http://www.emacswiki.org/scripts/old-school-hex"&gt;http://www.emacswiki.org/scripts/old-school-hex&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To be honest, I still don&amp;#x2019;t know whether this is worth pursuing. My &lt;a class="url http outside" href="http://www.flickr.com/photos/kensanata/533336771/"&gt;hand-drawn hex maps&lt;/a&gt; look much better! (My players are not supposed to click the link. &lt;img class="smiley" src="http://www.emacswiki.org/pics/smile.png" alt=":)" /&gt;)&lt;/p&gt;&lt;p&gt;Tags: &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Software"&gt;Software&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Graphics"&gt;Graphics&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Pictures"&gt;Pictures&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Maps"&gt;Maps&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Hex"&gt;Hex&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=RPG"&gt;RPG&lt;/a&gt;&lt;/p&gt;</description>
<pubDate>Wed, 06 Jun 2007 15:03:22 GMT</pubDate>
<comments>http://alexschroeder.ch/wiki/Comments_on_2007-06-06_Hex_Mapping_%e2%80%93_Roads</comments>
<dc:contributor>AlexSchroeder</dc:contributor>
<wiki:status>new</wiki:status>
<wiki:importance>major</wiki:importance>
<wiki:version>1</wiki:version>
<wiki:history>http://alexschroeder.ch/wiki?action=history;id=2007-06-06_Hex_Mapping_%e2%80%93_Roads</wiki:history>
<wiki:diff>http://alexschroeder.ch/wiki?action=browse;diff=1;id=2007-06-06_Hex_Mapping_%e2%80%93_Roads</wiki:diff>
<category>Software</category>
<category>Graphics</category>
<category>Pictures</category>
<category>Maps</category>
<category>Hex</category>
<category>RPG</category>
</item>

<item>
<title>Hex Mapping</title>
<link>http://alexschroeder.ch/wiki/2007-06-02_Hex_Mapping</link>
<guid>http://alexschroeder.ch/wiki/2007-06-02_Hex_Mapping</guid>
<description>&lt;p&gt;I&amp;#x2019;ve always wanted to produce good-looking old-school black-on-white hex maps for my roleplaying games. But I didn&amp;#x2019;t want to use Windows.&lt;/p&gt;&lt;dl class="quote"&gt;&lt;dt /&gt;&lt;dd&gt;&lt;b&gt;Update&lt;/b&gt;: Now &lt;a class="url http outside" href="http://www.emacswiki.org/cgi-bin/old-school-hex"&gt;available as a CGI script&lt;/a&gt;! You can also &lt;a class="url http outside" href="http://www.emacswiki.org/cgi-bin/old-school-hex?map=.+o+O+n"&gt;link to your maps directly&lt;/a&gt;. Check out the &lt;a class="url http outside" href="http://www.emacswiki.org/scripts/old-school-hex"&gt;Perl sources of the script&lt;/a&gt;.&lt;/dd&gt;&lt;/dl&gt;&lt;p&gt;I broke down and wrote a prototype. Behold my awesome &lt;a class="local" href="http://alexschroeder.ch/wiki/SVG"&gt;SVG&lt;/a&gt; powah! &lt;img class="smiley" src="http://www.emacswiki.org/pics/grin.png" alt=":D" /&gt;&lt;/p&gt;&lt;p&gt;The &lt;a class="url http outside" href="http://www.emacswiki.org/alex/pics/example-coast.txt"&gt;input file is plain text&lt;/a&gt;! Behold my awesome ASCII art powah, too!! &lt;img class="smiley" src="http://www.emacswiki.org/pics/grin.png" alt=":D" /&gt;&lt;/p&gt;&lt;p&gt;The output is SVG, which I then convert via EPS to PDF. Check out &lt;a class="url http outside" href="http://www.emacswiki.org/alex/pics/example-coast.pdf"&gt;the PDF result&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I found that the best solution was to convert from SVG to EPS using &lt;a class="near" title="Community" href="http://www.communitywiki.org/cw/InkScape"&gt;InkScape&lt;/a&gt;, and from EPS to PDF using ps2pdf or the OSX Viewer. In my particular case, I just used the following Makefile:&lt;/p&gt;&lt;pre&gt;%.eps: %.svg
	echo Ignore Gdk-CRITICAL and WARNING messages
	/Applications/Inkscape.app/Contents/Resources/bin/inkscape \
	--without-gui --export-area-drawing --export-eps $@ $^

%.pdf: %.eps
	ps2pdf $^ $@
&lt;/pre&gt;&lt;p&gt;Producing the SVG was the tricky part. I used a little Perl script called &lt;a class="local" href="http://alexschroeder.ch/wiki/old-school-hex.pl"&gt;old-school-hex.pl&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;What next? Add more &amp;#x201c;tiles&amp;#x201d;, obviously!&lt;/p&gt;&lt;p&gt;Here&amp;#x2019;s how to do it. First, produce a SVG file using a single dot as the map. This gives you the empty hex.&lt;/p&gt;&lt;pre&gt;echo . | perl old-school-hex.pl &amp;gt; empty.svg
&lt;/pre&gt;&lt;p&gt;Then fill it with some strokes, simplify them, delete a few extra points on the paths, and save. Open the file in you favorite editor and extract the stuff you added, move it into the script data at the beginning, in the defs element, following the grass example. Add an appropriate character mapping to the &lt;code&gt;%char&lt;/code&gt; table and you&amp;#x2019;re done!&lt;/p&gt;&lt;p&gt;That&amp;#x2019;s what I&amp;#x2019;ll do right now.&lt;/p&gt;&lt;p&gt;I&amp;#x2019;m not yet sure how to add roads and rivers.&lt;/p&gt;&lt;p&gt;I&amp;#x2019;m already starting to wonder&amp;#x2026; would it make more sense to have all the hex types in the current directory, and use their filename as the reference, and include them as necessary? &lt;img class="smiley" src="http://www.emacswiki.org/pics/smile.png" alt=":)" /&gt; Maybe if this turns out to be the greatest thing since sliced bread. Perhaps I should turn this into a CGI script&amp;#x2026;&lt;/p&gt;&lt;p&gt;Tags: &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Software"&gt;Software&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Graphics"&gt;Graphics&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Pictures"&gt;Pictures&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Maps"&gt;Maps&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=Hex"&gt;Hex&lt;/a&gt; &lt;a class="outside tag" title="Tag" rel="tag" href="http://www.emacswiki.org/cgi-bin/alex?action=browse;tag=1;id=RPG"&gt;RPG&lt;/a&gt;&lt;/p&gt;</description>
<pubDate>Sat, 02 Jun 2007 19:47:42 GMT</pubDate>
<comments>http://alexschroeder.ch/wiki/Comments_on_2007-06-02_Hex_Mapping</comments>
<dc:contributor>AlexSchroeder</dc:contributor>
<wiki:status>updated</wiki:status>
<wiki:importance>major</wiki:importance>
<wiki:version>7</wiki:version>
<wiki:history>http://alexschroeder.ch/wiki?action=history;id=2007-06-02_Hex_Mapping</wiki:history>
<wiki:diff>http://alexschroeder.ch/wiki?action=browse;diff=1;id=2007-06-02_Hex_Mapping</wiki:diff>
<category>Software</category>
<category>Graphics</category>
<category>Pictures</category>
<category>Maps</category>
<category>Hex</category>
<category>RPG</category>
</item>
</channel>
</rss>
