The Cartographers’ Guild is a forum created by and for map makers and aficionados, a place where every aspect of cartography can be admired, examined, learned, and discussed. Our membership consists of professional designers and artists, hobbyists, and amateurs—all are welcome to join and participate in the quest for cartographic skill and knowledge.

Although we specialize in maps of fictional realms, as commonly used in both novels and games (both tabletop and role-playing), many Guild members are also proficient in historical and contemporary maps. Likewise, we specialize in computer-assisted cartography (such as with GIMP, Adobe apps, Campaign Cartographer, Dundjinni, etc.), although many members here also have interest in maps drafted by hand.

If this is your first visit, be sure to check out the FAQ. You will have to register before you can post or view full size images in the forums.

[Award Winner] Using GIMP to Create an Artistic Regional RPG Map

Post 1:Introduction

First off, let me say that it was Pyrandon’s city map tutorial that inspired me to write up this one, so I will steal his format . I have been working on a variety of techniques to make (what I consider to be) “nice looking” maps using GIMP, and felt they are polished enough now so that anyone can follow along and do the same.

I intend to publish this tutorial serially, in the How-To forum at the Cartographer’s Guild web site, and hope to coalesce it into a single pdf for download when complete.

Why GIMP?
In case you are not aware, GIMP (GNU Image Manipulation Program) is a raster graphic editor. It is free software available under the GNU General Public License and can be downloaded from www.gimp.org for a number of computer systems, including Windows and Linux.

This tutorial has been developed with GIMP version 2.4, and may refer to features not available in older versions. Additionally, the menu structures have been shuffled about as of this version. There are some super new features that make upgrading worth it (in my opinion).

Most of these techniques will also have equivalents in Photoshop, PaintShop Pro, and other raster editors. The key features that will be used are Layers, Layer Blending Modes, Layer Masks, Blue and Noise (cloud) filters, Gradient Mapping, and Bump Mapping. Additionally, some of the more advanced techniques will involve Channels and Paths.

How well do I have to know GIMP?
Don’t worry, as everything will be explained fairly methodically, with a lot of screen grabs to show what is meant. Hopefully, full menu paths (like Color->Auto->Normalize) will be provided all the time, though there may be the occasional miss for the more common commands.

What type of map?
The result of this tutorial will produce a map similar (but not exactly the same as some techniques have changed) to this:

This type of map is good for representing larger overland areas where details like mountain ranges, rivers, lakes, roads and forests would be discernible. The techniques explored here will not work well for whole world maps or local maps.

What do I need to begin?
1) Well, GIMP (of course).
2) Hopefully an idea for a map. Ideally this will be a rough sketch showing the general shape of the land, with locations like mountains, forests and possibly cities marked out. It is best not to be too detailed at this point, as the techniques used will auto-magically provide a lot of the details for you. If you have NO idea or concern of one, a few options for completely random map generation will also be thrown in, for good measure.
3) A colour scheme. This is the thing that will really give the map its characteristic appearance. For this example, I will be using the same colour than Pyrandon used in his city tutorial. A GIMP palette has been put together with these colours, and will be attached for download.

Download the palette and install it.
(Located at bottom of this post in the attachment section)

The City-Map-Colors.gpl file should go into C:\Documents and Settings\<User Name>\.gimp-<version>\palette\ and GIMP will see it the next time it is run. These are the colours available in the palette:

The top row shows the grass and forest colours, along with a gradient from the lightest of these to the darkest.

The second row shows the dirt and rock colours as well as the gradient.

The third row shows the water colours and the gradient. (The light one is used for the coastline and rivers.)

The bottom row has colours for roads, 50% grey (used a lot when making overlay masks), a coastline stroke colour, and a label colour. All of these are available in the palette. Or use your own. Just keep roughly the same number of colours. Keeping the Colour set small makes the map look consistent, and will make all your maps look similar.

Set up the GIMP windows.
When you start GIMP, you will notice that unlike most Windows application, the dialogs and images all float in their own windows. This can be a pain until you get used to it. The first thing to do is make sure the dialogs you need will be available.

If the dialogs that came up when you started GIMP did not have all these:

For convenience, you will want them set up this way. You can add new dialogs (called Docks) by going from the main GIMP window, File->Dialogs->Create New Dock->Layers, Channels & Paths and File->Dialogs->Create New Dock->Brushes, Patterns & Gradients.

There are a couple more useful dialogs to have available as well.

Select File->Dialogs->Histogram to bring up the image histogram.

Select the Palette tab in the Brushes, Patterns and Gradients dialog and click the Edit Palette button.

These two new dialogs can be attached to the existing docs by dragging their titles to where you want them. I like the Palette editor to be a tab on the Brushes, Patterns & Gradients Dock, and the Histogram to be stuck below the tab group, so it is always open. This is the GIMP layout that will be used throughout the tutorial:

Now that the environment is set up, it is time to begin. At this point you may have a rough sketch of a map, either drawn on paper or on the computer. Here is the rough sketch I will work with for this tutorial:

I was doodling a coast-line with a crater like shape, and decided to put places around it line the numbers of a clock. This will be my starting point for The Region of Closh

Load this image into GIMP, and scale it to the page size you want. I’ll keep this one smaller (500x500) to make the tutorial more manageable, but it can be as large as you want. Ensure that the image is RGB, and the size you want. You may have to adjust some of the techniques (scaling, bump mapping amounts, etc) depending on the size and scale of your map.

Now create a new transparent layer (Layer->New Layer) and name it “Land”, pick a big, solid brush in black and trace out the contours using the Pencil Tool, then fill the area you want land in black, and everything else white.GIMP TIP! – You can drag a colour from the palette or the color selector to an image and it will fill the current selection with that colour.

Now invert the layer (Color->Invert) and blur the image (Filters->Bur->Gaussian Blur) The amount of blur will determine how random the final coast will be. The larger the blur, the more random the coastline will be (in the blurry area). If you have a well defined coast already (like here) use a smaller blur (50px). If you have a poorly defined coast (as is the case when using a random coast technique) make it a large blur.

I went back and blurred a few areas more by hand on the main coast to get more randomness there but keeping the detail in the island ring. Note the histogram. What you want is a nice level image, with dark and light more evenly spread out, as opposed to a U shape.

Create new layer called “Land Noise” and fill it with clouds (Filter->Render->Clouds->Solid Noise) Set the detail to the maximum (15) and the X and Y size to the max (16.0). The larger the size, the more randomness your final coast will have. Give it a new random seed and jot down the number (I put it in the layer name afterwards as a reminder). And change the blend mode to Overlay.

Create a new layer called “Land Clip”, filled with white above that, and set its blend mode to Lighten. You will have a white image. Now, with this layer selected, Open the levels dialog (Colors->Levels) and grab the white output slider, and drag it down. As this happens, the land will be revealed. Stop at a place you like, and click OK.

Now using the Magic Wand Tool, (making sure Sample Merged is Checked and the Threshold is 0) click anywhere in the dark area. This will define your coast. If you want to adjust it, just undo the selection (ctrl-Z) and change the levels of the “Land Clip” layer. I wand back and tightened the coast a bit.

Now Invert the selection (Select->Invert), create a new black layer called “Land Mask” and fill the selection with white. Now save the selection to a Channel (Select->Save to Channel) and rename the channel to “Land Mask”. This will be used a fit bit later.

Now clear the selection (Select->None).

That technique (the Three-Layer-Sandwich of noise, shape and threshold clip layer, or TLS for short ) will be a basic technique that will be used over and over again, using different blending modes between the noise layer (to give some variegation to the surface) and the shape definition layer. It will be used to define forests and mountains, even clouds in the sky.

This is probably a good time to save. Always save your work as an .xcf file. That is the native GIMP format and will preserve all the image information, including layers, channels, etc. It is similar in that way to the Photoshop native .psd format.

If you have no idea for a map, here are a couple of options to generate a more random map…Just use a noise layer (set to smaller size, but keep the detail) This will five a variety of island shapes. Or use a gradient fill for the original shape definition layer. Or blurry geometric shapes (circles, arcs) Each of these will give different results. Here are 4 examples (from top left, clockwise: 50%grey, linear gradient at an angle, radial gradient, arc shape, blurred) all made following the TLS technique:

And blended with the noise layer and a clip layer (lighten) applied:

The selected, solid mask:

And converted to an outline:

You may now see some similarities in this technique to the “Creating Random Coastlines in GIMP” and “Creating Not-So Random Coastlines in GIMP” tutorials I had posted a while ago.

To make the ocean/water (and the base contour for the land as well) a two layer variant of the three layer sandwich will be used.
Copy the “Land Mask” Layer, and rename it “Sea Shape”. Apply a Gaussian Blur (Filter->Blue->Gaussian Blur) large enough to eliminate the absolute black and whites of the image. In this case, I used the same size as the image (500px).

Create a new layer and call it “Sea Noise” Fill this with Clouds (Filters->Render->Clouds->Solid Noise) set to a low size (3) and detail of 15, reseeding the random number. Set the layer blend mode to mode to Overlay, then merge it down with the “Sea Shape” layer by right clicking on the layer and selecting “Merge Down”.

Duplicate this layer and rename it “Sea”. Add a layer mask by right clicking on the “Sea” layer, and selecting “Add Layer Mask”. When the dialog opens, select “Channel” (By default it should have the “Land Mask” channel shown and check “Invert”. Click Add.

Nothing much will appear to have happened, but there will be a mask next to the layer thumbnail:

Layer masks act like filters that let parts of the image “show though”. Areas where the mask is white will allow the layer to be visible. Areas where the mask is black will be transparent, and the various shades of grey will be varying degrees of transparency. Now right click on the “Sea” layer and select “Apply Layer Mask”. This will remove pieces of the layer based on what was showing through the layer mask. Here I have made all the other layers invisible to see the result:

Now we want to stretch out the colours in the “Sea” layer across the entire black to white range. With the sea layer selected, auto normalize the image (Colors->Auto->Normalize). The histogram will now have little gaps in it. As the greys have all been spread out. To fix this, select the non-transparent area (by clicking on the “Sea” layer and selecting “Alpha to Selection”. Invert the selection (Select->Invert) and fill the area with white. Remove the selection (Select->None) and apply a 20px Gaussian blur.

Note the histogram is now filled in.

Now the next bit of magic. Set the foreground colour to the darkest water colour (water 5) by clicking on it in the Palette Editor (that we set up at the beginning), and set the background colour to the second lightest water color (water 5) by Ctrl-clicking on it.

Now we will turn the B/W into colour, by clicking Color->Map->Gradient Map, and the water is almost (for now).

Recently, I came up with a nice technique (in my opinion) to finish the shoreline water. Often people will stroke the shoreline with a light colour, or add a light blur. Here is a quick technique for making a unique look…

Create a new layer called “Seashore”, and fill it with the really light water colour (Water 1). Add a layer mask, using the “Land Mask” channel, and ensure “Invert” is unchecked.

(Any edits you do now will be on the mask shape, unless the layer thumbnail is clicked. The one you are editing will have a white box:

Give the layer mask a 10 px Gaussian blur.

Now apply a displacement map (Filters->Map->Displace). Use an X displacement of 20, and a Y displacement of -20. For both, pick the “Land Noise” layer. Set the Displacement Mode to Cartesian and the Edge Behavior to Smear.

Repeat this, flipping the signs, so set X to -20 and Y to 20. This screen grab is after the first one.

This will give a nice wispy, random looking water edge, once the land is put in place…

Now that the ocean is completed, the land can be build up. Create a cop of the “Sea Shape” layer and name it “Grass”. Create a layer mask using the “Land Mask”channel. Click on the layer icon so we now edit the layer, not the mask.

Ctrl-Click on the dark green (Ditch) colour to make it the background and click on the light green (high ground) to make it the foreground colours, then Colour->Map->Gradient Map.

This is bland, so lets spice it up a bit…create a new layer called Grass Texture, and fill it with clouds noise (Filters->Render->Clouds->Solid Noise), detail 15, size 3, and new seed.
Again, add a layer mask using the “Land Mask” channel, and set the blend mode of the layer to overlay.

Looking better, but it could use some texture.
Create a new layer called “Grass Bump Map”. Fill it with rendered cloud noise again, this time setting the size and detail to the max, and selecting Turbulent.

Hide this new layer (by clicking off the eye icon). Create a new layer called “Grass Bumps” and fill it with 50% grey. Set its layer mode to overlay. It will appear to be gone now. That is how overlay works. 50% grey doesn’t change the underlying image, while darker shades darken the image and lighter shades lighten the image.
Now apply a bump map to this “Grass Bumps” layer using Filters->Map->Bump Map.