Diary SiteMap RecentChanges About Contact Calendar

Search:

Matching Pages:

Old School Hex Map Tutorial

This page explains how to create an old school hex map using Inkscape. This will usually take you longer than a quick sketch that you can scan and post-process quickly. The benefit of this approach is this: As you keep playing in your campaign, you can extend the map piece by piece, adding elements as the players travel.

I think it is essential to keep your initial map small. Expand it as your players explore new areas, not for the sake of “completing” a map.

This tutorial was also crossposted to the Art Tutorials Wiki and crossposted to the Cartographers’ Guild.

For a different approach, check out Greg MacKenzie’s approach using icons and colors. You could use Text Mapper to create a map based on Greg’s approach and then edit it using Inkscape.

Hex

Start with a hex grid. There are several options:

  1. You can use online services like Incompetech to generate a hex PDF.
  2. Use the Inkscape Boardgames Extensions by Pelle Nilsson. Find your extensions directory and copy both hexmap.inx and hexmap.py into it. I used /usr/share/inkscape/extensions/. Then choose Extensions → Boardgames → Create Hexmap… from the menu. This will create four additinal layers. You can delete the layers Hex Centerdots and Hex Fill by switching to the layers dialog using Ctrl-Shift-L, selecting the layer to be deleted, and using the minus button.
  3. You can use the command-line utility mkhexgrid to create your own.

For the particular map I wanted to do, I used the following mkhexgrid specfile:

> output=svg
> outfile=hex-layer.svg
> hex-side=1in
> rows=7
> columns=6
> grid-color=B3B3FF
> coord-color=B3B3FF
> coord-size=10pt
> coord-distance=0.7in
> coord-column-start=21
> coord-row-start=11

In Inkscape, use Ctrl-Shift-L to show you the layer list. Rename Layer 1 to Hex and use Ctrl-I to insert the PDF or SVG hex image.

Result:

The Hex Layer

If you used the Boardgames extensions, example values would be 6 columns, 7 rows, 1.0 hex size, 10.0 coordinate text size, 75.0 coordinate y offset %, zero-padded coordinates, coordinates every 1 row, 21 first col nr, 11 first row nr, 10% size of corners, force symmetrical hexes.

Layers

Create a new layer and call it Known Map. Create a third layer and call it Unknown Map. If you want to produce different maps, you can now click on the eye symbol to show or hide that particular layer. And you can move things from one layer to the next using Shift+PgUp and Shift+PgDown.

As my game is an exploration game, I start with the first seven hexes on the Known Map and about twenty other hexes on the Unknown Map.

In another game I might put all the objects on the Known Map but keep the unknown towns and dungeons on the Labels layer.

As the players discover stuff, I keep moving elements to the Known Map. I usually Export this layer (Ctrl+Shift+E) every now and then to share with my players.

Trees

Use the Create stars and polygons tool (Shift+F9 or *) to draw a little polygon with six corners, spoke ratio 0.8, and rounded 0.5. Call up the Fill & Stroke dialog (Ctrl+Shift+F) and make sure that there is no filling, black stroke paint, and that the stroke has width 0.677.

Pick Object to Path from the menu (Ctrl+Shift+C) and switch to the Edit path by nodes tool (F2). You should see 12 nodes in total. Change all the inner nodes to corners. This should change their symbol from a square to a diamond. For each inner node, drag the two handles such that it actuall forms a corner. Also consider dragging the handles of the outer nodes around to create a slightly asymmetric tree.

Now generate a number of trees by using paste & copy and rotating them a 1-3 times by 90°, and mirror them. You should get eight slightly different trees. Whenever I need some forest, I will use a lot of paste and copy. I’ll copy a handful of trees at a time to save time.

Result:

Trees

Hills

Draw a free-hand (F6) hill and simplify it several times (Ctrl-L). Call up the Fill & Stroke dialog (Ctrl+Shift+F) and make sure that there is no filling, black stroke paint, and that the stroke has width 1.000. Then switch to the Edit path by nodes tool (F2) and delete all but four nodes. We want really simple shapes.

Make sure that the nodes within the hill are smooth. Adjust the handles to make a really nice hill. Copy and paste it, make it smaller, reset the stroke width to 1.000. Now you have a big and a small hill. Do some paste and copy and arrange them nicely. Once you’re happy with an arrangement, group them: Shift-click them all and group them (Ctrl+G). Whenever I need some hills, I will use a lot of paste and copy. I’ll copy a handful of hills at a time to save time.

Hills

Rivers

Draw a free-hand (F6) line and simplify (Ctrl-L) if necessary. Call up the Fill & Stroke dialog (Ctrl+Shift+F) and make sure that there is no filling, black stroke paint, and that the stroke has width 3.000.

Easy. :)

River

Labels

Draw a circle (F5). If you get an arc insead, switch to the Edit path by nodes tool (F2) and Ctrl-drag one circle on top of the other until a circle is formed. If you get an ellipse, Ctrl-drag one of the two squares until you’re happy. Call up the Fill & Stroke dialog (Ctrl+Shift+F) and make sure that the circle has a black filling. Resize to taste.

Use the text tool (F8) to put a label next to it. Group the dot and the label (Ctrl-G) if you want.

Getting easier!

Labels

Roads

Like rivers, but on the Fill & Stroke dialog (Ctrl+Shift+F), pick dashed. Reduce stroke width to one or two.

Result

This is what you might end up with for the start of an exploration campaign (since this is a Wilderlands of High Fantasy game, the names might ring a bell…).

Result

Tags: RSS RSS

Show Google +1

Comments

GIMP oldschool hexmap brushes here: http://inkwellideas.com/?page_id=9

Haarald 2008-12-18 12:33 UTC


hey there, I tried this and hexmap chokes on the inches coordinates. any ideas?

– chris 2009-11-08 22:00 UTC


The Boardgames extension worked for me. I used the following: 6 columns, 7 rows, 1.0 hex size, 10.0 coordinate text size, 75.0 coordinate y offset %, zero-padded coordinates, coordinates every 1 row, 21 first col nr, 11 first row nr, 10% size of corners, force symmetrical hexes. I got Latest Experimental Unstable Version 1.4.3 of the extension and Inkscape 0.47pre4 r22446 (Oct 15 2009).

AlexSchroeder 2009-12-06 23:16 UTC


Please make sure you contribute only your own work, or work licensed under the GNU Free Documentation License. See Info for text formatting rules. You can edit the comment page if you need to fix typos. You can subscribe to new comments by email without leaving a comment.

A carefully selected set of emoji for you to copy and paste: • ✕ ✓ ✝ ☠ ☢ ☣ ⚛ ☭ ☮ ☯ ⚒ ⚓ ⚔⚙ ★ ☆ ✨ 🌟 🐣 🐤 🐥 🐦 🐧 🐨 🐷 🐻 🐼 🐢 🐝 🐛 🐙 🐒 🐌 🐋 👑 ✊ 👊 ✌ 👋 👌 👍 👎 👏 👸 🍵 🍷 👹 👺 👻 👽 👾 👿 💀 ❤ ❦ ♥ 💔 📓 📖 📜 📝 🔒 🔓 🔔 🔥 🔨 🔪 🔫 🔮 😁 😂 😃 😄 😅 😆 😉 😊 😋 😌 😍 😏 😒 😓 😔 😖 😘 😚 😜 😝 😞 😠 😡 😢 😣 😤 😥 😨 😩 😪 😫 😭 😰 😱 😲 😳 😵 😷 😸 😹 😺 😻 😼 😽 😾 😿 🙀 🙇 🙈 🙉 🙊 🚶 🚲 🚀 🚽

To save this page you must answer this question:

Please say HELLO.