Using Dwarf Fortress to make a regional map

Bay 12 Games is basically one programmer creating awesome things every day. He used to be a mathematician but turned to game programming full-time and is supported by community donations.

Dwarf Fortress is an ASCII game, a roguelike, but a rather different one. You randomly generate a whole continent with mountains, rainfall and drainage, coastlines, etc. Then it generates a history with multiple civilizations where people live and die, deforest the areas around their towns and build roads, and send armies against each other. 200 years or so later you can play in the world with an adventurer or embark on a small site with seven dwarves to build a fortress. Hence the title.

The worlds created are diverse and beautiful. It does not look repetitive in the slightest. Every place you could choose to embark, on every generated world, will look very different. Although if you embark in the middle of a forest you should expect it to look a little bit boring. But it’s still more interesting than I would have come up with. And there’s the trick. You can export the world map you generate as a .bmp, convert it to .png, then edit it to get a world map.

Raw map output: This is what the game looks like on the world map, incidentally, though on the local level you’re dealing with individual dwarves and stone mugs instead of whole mountains.
Mostly done painting: I opened the image in Paint, shrunk it a bit, then started painting. This is what it looks like almost finished.

It helps to play the game a little to identify what each symbol means. The two wavy lines could be water, sand, or magma. But on the world map you don’t see magma. And if it’s blue, it’s definitely water. If it’s red or yellow it might be sand, but if there are rivers flowing into it it’s almost certainly a body of water. Why are the colors funky? The color includes the alignment of the region. Purple areas are haunted. The red and yellow seas are full of skeletal fish and zombie whales. Did I mention how great this game is?

My method was to start with a palette. I stole mine from the old Greyhawk map. Then I made map icons like hills, desert, etc. that look like the Greyhawk map.

Then using the paintbrush (circular dot 4 or 5 pixels wide) paint the border of the water leaving the coastline intact. Smooth the stroke a little as you go so you’re not drawing a bunch of jagged squares. When you have the body of water outlined, paintbucket the black spaces between symbols. Then use the filled square tool to block out large sections of symbols. Go back around and clean up the edges with the largest size paintbrush.

After that, do the mountains. The high mountains (solid triangle) I had a separate mountain image for, so I left those magenta for later change to mountain-brown. The low mountains (sort of a hollow triangle with squished-in sides … I cannot find the ASCII symbol!) I outline at this stage with the brown.

Now you can look around and pick out the forests. At this point I decide whether the forest will be deciduous, evergreen, bamboo, or jungle. I base my decisions on whim and proximity to other terrain, but you could try to remember what each tree symbol means if you wanted. Then I do hills all around – I have a “dry hills” and “green hills” here. But my “green hills” use the same color as the deciduous forest, so I use a nasty bright green placeholder until I get the map symbols in.

Sand is, as I said, the same two wavy line symbol as water. It can be grey or dark grey too. But the “square root” symbol and V / U are used for deserts and badlands. I don’t make a distinction yet, but will later.

The quote marks, lowercase “n”, period, comma, and weird little “y” shape are usually plains / grassland. But based on color and position they could be tundra or desert. This is why you kind of need to play the game to understand the map.

The solid blocks at the north end are glacier. Blue lines are rivers, brown lines are roads. I leave these alone until the end when I can draw in more winding, natural-looking roads and rivers.

The Pi symbol is a goblin fort. The yellow town symbols are elves. The Omega symbols are dwarves. The # and * are humans. Other map symbols that I left alone are usually ruins.

But there’s a good question. Why would you go through this much effort? Well, check out the complexity and general awesomeness of the edited map. I couldn’t come up with that on my own, it would look like I drew it. This has the impartial and realistic feel you get from copying an old Dutch map.
And you can set world generation variables. Want higher mountains? More erosion? Less drainage? More volcanism?

Right now you may look at this as too much work. And maybe it is. I know I’m getting burned out and I’ve done only a few of these maps. But keep an eye on Dwarf Fortress and its programmer Tarn Adams. One day you may be surprised at what the world generator will spit out.

And you know what? I feel like an idiot. You can use a custom tile set for the game. Why didn’t I just replace the tile set to one that had the images I’m replacing them with?

Because I’m working alone and if I were in a team someone would have pointed out how much time I was wasting :/

I’ll post an update when I can speed the process up a bit more.

Tags: , ,

7 Responses to “Using Dwarf Fortress to make a regional map”

  1. Stuart Says:

    This is very interesting — I’d love to see what your updated map looks like!

  2. Rutskarn Says:

    Eh. Geographical verisimilitude is one thing, but…

    …well, drawing the map is the most fun part. You get to do all the little squiggles, and the bit with the mountains, and the rivers and stuff. I think my current campaign has gone from forest to plain to forest to plain to rocky areas to forest to mountain, but the players didn’t really notice and it got the job done.

    Then again, if you told me that any given group would notice and endlessly nitpick if the geography didn’t make sense, I wouldn’t bat an eyelash.

  3. 1d30 Says:

    Oh not that they’d nitpick. It’s more of a quality issue with me.

    And actually, I’m working on a wilderness sandbox right now and made a hex map. Each hex is a discrete terrain. You can’t really transform the map above into hexes unless your hexes are very small. So if you want a very usable map, just use hexes. I think it’s what I’m going to do from now on.

  4. EricBlank Says:

    You realize you don’t need to draw anything in paint though, right? At least in the most recent versions (38->40d16) you can tell it to export an advanced map and info, and select Sites + Biomes. This will give you a fully colored map with shading instead of separate colors for distinguishing good and evil. They’re very detailed and even show the locations of towns and other sites. You could simplify them in photo shop or some other image editor to remove the shading effects.

  5. 1d30 Says:

    I didn’t know there was an advanced export. Does it still output as colored ASCII text on a black background? I’m using 40dsomething, not the optimized sub-releases but the current standard one. I’ll check it out, thanks.

  6. Nagidal Says:

    Hello,

    how did you manage to export the world map fro DF? When I was in the embark menu I chose something like save local image, but then I have foudn nothig which looked like a bmp image of the world. So how do I do that?

  7. 1d30 Says:

    Nagidal: I think there is somewhere in the .ini file that determines where your map output is saved. Check out your main DF folder and your saves folder …

Leave a reply to 1d30 Cancel reply