Generating Medieval City Maps

Posted by Chris Rosser on Sun 11 November 2018
Hello! This site is archived and no longer maintained. For Chris' main site go to

A few months ago, I gave away a fact sheet to my newsletter subscribers about one of my fantasy settings I created using this technique. The worksheet included a half-way decent looking map of the town, but my tutorial didn’t cover map-making. Someone asked me how I created it, and I promised I’d address it in a later post.

Colfrick handout showing the town's map
Colfrick handout showing the town's map

Well, here I go…

I used an open-source random map generator. I’ve reviewed three of these before, in what’s turned to be one of my most popular articles. Only it wasn’t one of those, which are all for generating overland maps — the kind you typically see in the first couple of pages in a fantasy novel. Instead, I created the Colfrick town map using a web app I discovered a few months after I wrote my article.

Medieval Fantasy City Generator by watabou

This slick little web app, though its name is a bit of a mouthful, generates attractive looking settlements that are ideal for Medieval or fantasy settings, be they for writing novels or playing table-top roleplaying games.

Visit the app using the link above, and you’ll be greeted by a randomly generated city, like this:

Roll over the map with your mouse, and you’ll see text appear describing the district’s purpose, for example, Craftsmen, Harbour or Docks. These words alone are enough for my imagination to start building up a mental picture of the city’s character and history — yes, I’ve been world-building for a long time!

The app’s interface is minimal, functional and pleasing. On the right, you see a floating toolbar, but this fades out after a period of inactivity. I like this a lot; I don’t appreciate janky UI, it offends the creative parts of my brain.

The Small, Medium and Large buttons will resize the map. It’s important to note these buttons control the settlement size, not the canvas size. Small settlements are ideal for large villages or small towns, while Medium and Large are good for building much larger cities.

The Warp feature allows you to select individual nodes in your map (the underlying tech is based on Scaleable Vector Graphics). This is great for tweaking walls and roads. You can’t select individual buildings, but those are regenerated automatically around the node’s new position.

Warp tool - ideal for modifying roads and walls
Warp tool - ideal for modifying roads and walls

The Options button expands out into a menu tree, allowing to adjust the map’s style (appearance) and layout (map features). In Style you have the following options:

  • Palette: changes the colour presets.
  • Annotations: sets the size of the map text and toggle whether you want them to permanently overlaid.
  • Hatching: lets you toggle a hatching effect on buildings, which is quite nice, adding visual texture.
  • Thin lines: reduces the weight of outlines.
  • Block view: removes building outlines, leaving just the shapes.
  • Towers: render towers as round, square or bastions (angled).
  • Buildings: changes the shape of buildings from their default (blocky), simple or complex. Simple and complex look a bit more natural and organic.
  • Water: render water lines as Isolines (natural contours) or Simplified (straight-edged).

In layout, you control what elements are added to your map. You have the following options:

  • Continuous: render buildings as a continuous block. Disable to create more spaces between buildings.
  • More roads: toggle between more roads for less densely populated settlements. Disable to create more building density.
  • Random: if selected, city elements will be fixed and random. If enabled, you can control whether individual elements are placed.
  • Citadel: Toggle the placement of a Citadel/Castle.
  • Plaza: Toggle if you want a Plaza (i.e. a town square or marketplace).
  • Walls: Toggle city walls.
  • Shanty Town: Toggles a faubourg — buildings beyond the city’s walls.
  • River: Toggle a river through the city. Roads crossing rivers are rendered as bridge symbols, which is a nice detail.
  • Coast: Toggle a coast, which effectively shifts the city from inland to a coastal settlement.

Finally, the Export button allows you to save your map to PNG or SVG formats. PNG format is what I used to export my map for the handout I created. Here’s one medium-sized example I created, with a lot of the options enabled and different palette selected. It gives you quite a good idea of what the app is capable of generating.

Medium sized city with lots of features enabled
Medium sized city with lots of features enabled

Exporting as an SVG file will preserve all the vector lines and shapes that comprise your map. Use this option if you want to bring your map into another application like Adobe Photoshop, Illustrator, or the open-source Inkscape.

What’s missing?

Well, not much really given it aims for simplicity, but I would have appreciated the ability to save a working map so I could come back to it later.

The available palette options are limited, and I would have liked the option to adjust the colours manually.

Another thing I would have liked is more control over the exported PNG — such as canvas size and resolution. That said, the exported file is more than large enough for screen use or even printing to A4/Letter without looking blurry.

Most of my criticisms are very slight, and in truth are negated by the SVG export option which allows for limitless customisation, albeit in another application such as Adobe Illustrator or Inkscape.

Concluding thoughts

I absolutely love this app. It sets out to create an attractive medieval-inspired city and does the job very well indeed. Though a random generator, it still affords you a considerable amount of control over the final map.

Performance is excellent — much better than Azgaar’s Overland Mapmaker I reviewed in my previous article, though in fairness to Azgaar, his app is doing much more and is much broader in scope! I tested the city generator on Safari and Chrome for macOS, and it worked very well — responsive with no discernible lag.

I think this tool is ideal for generating settlements quickly and that’s invaluable to Gamemasters, world builders and novelists alike. For the GM running a table-top game in real-time, it lets you create something that’s pleasing to the eye and fast — a real boon if your players decide to wander off script and visit a place you haven’t yet built.

As a novelist, it gives me the means to flesh out urban settlements, invaluable for visualising the layout and character of a setting. Just looking at a rendered map, triggers my imagination, creating writing prompts and ideas.

The app is also excellent for seasoned designers and artists, thanks to its robust export features. Let the app build you a plausible-looking settlement, then bring it into Photoshop to really make it pop. SVG gives you the kind of fine-grained control to get in there and modified both structure and style of your map.

Well, there you have it! I hope you found my review useful.

Wow you read this far! This site is archived and no longer maintained. For Chris' main site go to