Wednesday, March 1, 2017

Saving For a Rainy Day

Way back in the prehistory of Dragons Abound (i.e, "Before Mountains" or BM for short) I wrote a blog post about the wind model.  This was actually part of how Dragons Abound generates biomes, but I interrupted that to work on mountains.  Since I'm about to start talking about how to illustrate forests on the map, it's a good place to go back and finish up talking about how Dragons Abound places biomes.

To recap slightly, biomes are formations of plants and animals that have common characteristics due to similar climates.  For example, an early work in ecology identified the following biomes:
  • Tundra
  • Taiga (coniferous forest)
  • Deciduous forest
  • Grasslands
  • Desert
  • High plateaus
  • Tropical forest
What biome will occur in an area depends primarily on the temperature and precipitation in the area.  This can be mapped out in a "Whittaker diagram."
So if I want to figure out what biome is at a map location, I need to know the average annual temperature and the annual precipitation, and then I can look it up on this chart.

Average annual temperature is fairly straightforward -- it's basically determined by how far the location is from the equator.  Precipitation is more complex -- it requires a model.

The precipitation model Dragons Abound uses is pretty simple.  The atmosphere gains water vapor by evaporation over the open seas.  Wind blows the atmosphere around.  If there's enough water vapor in the atmosphere, it precipitates out when the atmosphere hits an updraft.  In Dragons Abound, the only source of updrafts is rising land, so most precipitation occurs on rising slopes.  So the wind model blows the air around, which gains water vapor over the seas, and precipitates out over rising land.

One immediate problem is that Dragons Abound is not a complete world -- it's just a rectangular piece of the world.  Care has to be taken so that the edges of the map don't create problems in the precipitation model.  In practice, this turns out to require two adjustments:  (1) Edges of the map are given a steady wind value (a "trade wind"), and (2) Atmosphere coming in from the edge of the map is given a moderate amount of water vapor.  With some amount of random variation, these two things are sufficient to keep the precipitation model reasonable around the edges of the map.

A second problem is that the precipitation model is too simple.  Rising land does trigger precipitation in the real world, but there are many other factors that create precipitation.  (If not, the entire flat middle part of the US would be a desert.)  To help create more reasonable precipitation patterns, at all times there is a base chance of precipitation proportional to the amount of water vapor in the atmosphere.  So even locations without rising land receive precipitation, and in some cases quite a lot, if they happen to be under water-laden air.

Here's an example of a map with the wind and precipitation illustrated.  Wind is shown as red arrows indication direction and strength.  Precipitation is show as a blue overlay color, stronger where precipitation is heaviest.  (Blank areas of the map have both wind and precipitation at low levels.)
(Click the map to see a larger version.)

The trade winds on this map blow in from the east, across the sea, picking up water vapor.  That wind carries rain across the center part of the continent, with increased rain fall when it hits the ridge of land that runs north-south in the middle of the map.  Meanwhile in the northern part of the map the winds are blocked by two sets of mountains.  Some of the wind (and precipitation) is turned south into the main stream.  Very little makes it past the mountains to the northwest part of the map.

This is a temperate part of the world -- the average temperature on this map is about 12 degrees Celsius.  If you look in the Whittaker diagram at the top of this post for the column corresponding to ~12 degrees, you'll see that most of the land will be forest, shrubland or grass.  In areas of very high precipitation there might be patches of temperate rain forest (e.g., like the Pacific Northwest in the US); in areas of very low precipitation there might be "cold desert" (e.g., like the Gobi Desert).

Here is the biome distribution for this map. The dark green areas are forests, the light green areas are grassland, and the yellow areas are deserts. (Dragons Abound doesn't current create shrublands.) 
An animation makes it clear how the biomes follow the precipitation patterns:
It's worth noting that there's a lot of smoothing going on here.  Without smoothing, the biomes are very spotty, with bits of grassland inside the forests and so on.  This may be realistic (or not), but it doesn't make for a very good fantasy map, which needs great forests, endless steppes and so on.  Secondly, you can see how cities carve out the forest around them as people cut down trees for building and to create farmland.  Finally, notice how in the northwest there are some small patches of desert behind the two mountain ranges that block the trade winds.  Some precipitation comes to the middle part of that island from the edge of the map or the entire island would be a desert.

How does the map change if the trade winds blow from the south instead of the east?
Now the southern part of the continent is heavily wooded, with some rainforests (the brown color) in spots where the precipitation is highest.  (It helps that the southern part of the continent is warmer.)  What was a minor river in that area has become an extensive river system.  The desert islands in the northwest are now forest covered.  Some of the cities have moved around, too, settling in areas that are more favorable in the new clime.


  1. Website comment - It's great to read in order, but the Nav collapses on refresh. If there is any way to keep it open from page-to-page it would help reading from beginning to end.

    1. I know it's way late, but there's a 'Newer Post' button below the comments section on each page!

  2. To be honest, I'm just using the vanilla Blogger widget for that, and it doesn't seem to offer any option to stop it from resetting on refresh, sorry!