I've been playing around with procedurally generating random world maps using ROT.js as a base and then going off the deep end. You can check it out.

   The last thing I learned about this is that getting too deep into this is not especially useful if you just want to make a game. Making a board game prototype was my initial goal, but then I got sidetracked with procedural terrain generation. The sidetracks include:

  • Using particular families of web colors for different kinds of terrains, and the lightness levels of that color represent the elevation. Currently this is just dry land, or ocean, and 6 levels of elevation.
  • Tectonic plates as a means to generate mountain ranges and troughs. The tectonic plates have a direction of drift and raise or lower elevation if they are moving toward or away.
  • Applying arrays of coordinates like a map layer to raise or lower elevations and also playing with ROT's cellular map generation functions to create these layers.
  • Looking for character sets that can be used for map symbols in lieu of the standard Rogue style ascii 'art'.

   I'm currently thinking about:

  • latitude and moisture and a means to procedurally generate different levels of vegetation in response.
  • Identifying continents and ranking by size. The first use of this would be to ensure that the player starts on the largest.
  • Speckling the terrain with settlements and other features.
  • An export button

   But this was a fun waste of time, and I have something else I want to do instead. So I am posting this now, and may or may not update this.