New Random Village Map Generator

Last night I finished a first cut of a new random village map generator.  It uses SVG graphics, so some browsers (Internet Explorer, of course) don’t support it.  I’ve tested it in the current version of Firefox (on a PC and a Mac) and Safari.  It should work on Chrome and Opera and if you have to use IE the beta of version 9 is supposed to support SVG graphics.  (But version 9 isn’t available for those still using Windows XP.)

How it Works

There is a map template (which is just the roads) loaded into a dynamic web page.  That web page is coded with possible locations for houses, inns, churches, taverns, barbers, etc.  There are 58 house/farm locations.  Each of those has a 65% chance of having a house or farm.  The total number of houses and farms is counted and this number is used to determine the likelihood of the other buildings.

For each of those other building types, we take the number of houses/farms and multiply it by a small percentage and that is the likelihood of that building type.  For example, an inn has a .02% multiplier, so if there are 40 houses/farms, there is an 80% chance of one inn.  For a few building types (blacksmith and tavern for example) this likelihood is checked twice so there may be two of each of these.  (Looking at some medieval demographics information, villages often didn’t have many of these common buildings.  That said, in a fantasy world, there may be a bit more travel and support for trades, so these percentages are probably slightly higher than historically accurate.)

Anyway, the house/farm locations are already known.  If house location 37 is already determined to have a dwelling then it will always have a large farm with fields to the west of the house.  (Or whatever it is set to.)  It must be like that because the different dwelling types are different sizes and placement would get too difficult.  But the common buildings are a little more dynamic.  There are three sets of common building locations.  One set for larger buildings, one set for smaller buildings, and one set for those that are in between.  So blacksmiths and barbers which are smaller building types can each go in one of four locations. Likewise for buildings in the other two groups.

Right now there are two exceptions to the paragraph above: windmills and churches.  Windmills are the only large building type that would not be near the center of the village, so those have two possible locations both near the edges of the map.  Churches need to have adjacent graveyards (well, I guess a church doesn’t have to have one, but for now they do) and so there are two possible locations for a church with an adjacent graveyard outside of the center of the village.

What’s Next

First, I’ll be adding some options for users to specify how many houses/farms are in the village.  Simultaneously I’ll let the user set the chances the village will have each common building type (inns, blacksmiths, barbers, windmills, etc.) or even specify exactly how many of each the user wants.

Second, there will be more variations to the map template.  Maybe an extra road or two, a river or a lake/sea, maybe some special features like a mine or monastery, etc.

And of course I’ve got all my other projects to split my time between.  (See the list to the far right.)

3 Comments on “New Random Village Map Generator

  1. Wow – when do you sleep?

    Looking forward to how this develops, and eager to play with user-defined parms.

  2. This is very cool. Really looking forward to playing around with this tool and using it for some campaign design. Thanks for being awesome.