Procedural generation

In Chronicles of Elyria much/most of the world will be procedurally generated. Each of the servers will have completely different continents, in order to guarantee that stuff discovered on one server doesn't ruin it for another server.

World Building
Creating each world (per server) is a multi-step process.


 * 1) The desired map size is broken up into tectonic plates.
 * 2) The plates are eroded, translating and rotating them and letting them collide with one another, forming convergent boundaries that form subduction zones, mountains, and volcanoes. This creates a basic outline of the continents and mountains.
 * 3) The height map generation algorithms are run on the continents in order to create a natural, realistic feeling terrain.
 * 4) Large circles are overlaid on the map, each identifying major wind patterns which affect the pressure systems near and over the continents.
 * 5) When combined with the latitude/temperature, this creates a humidity map, which is then used to determine the relative humidity in different regions.
 * 6) Based on the topology of the map and the humidity, rivers, lakes, and rain shadows, as well as set the boundaries of the different watersheds / drainage divides, are established.
 * 7) The locations of rivers and lakes, the distance from the subduction zones and mountains, and the elevation, are used to distribute soil types and to distribute metals and other natural resources across the map.
 * 8) Biomes are determined based on temperature (based largely on latitude and elevation) and humidity (set by the air pressure and the presence of rain shadows - areas to the east of large mountains where rain doesn't fall).
 * 9) Each biome is populated with flora and fauna.

Political Domains
With the knowledge of where trees, food, and water are, as well as the boundaries of the mountains, watersheds, rivers, etc. the boundaries of the different domains are determined.
 * Kingdoms are generally divided by large topographic structures, such as mountains, large rivers, or biome changes.
 * Duchies are almost always divided by biome changes.
 * Counties are generally separated by drainage divides, smaller rivers, or forests.

In the end, you get something like the sample world map. It also shows the borders of Kingdoms (in color) as well as Duchies (in black).

Settlements and People
Starting villages are placed near good sources of fresh water, places with scarce resources, along major trade routes, in strategic military locations, etc.

These starting villages are populated with non-player characters (NPCs) ranging in age along a similar distribution to our world.
 * About 25% of the population will be below age 18.
 * An additional 40% will be within the range of 18 and 45, etc.
 * The older the NPCs get, the fewer there are.
 * We also control the distribution of male and female characters over time. So only about 35% of NPCs over 90 are male.

Beyond that, the Soulborn Engine keeps track of where people go. If a NPC decides they want to set up a camp, recruit soldiers, and then invade a nearby town, they'll head out into the wilderness in a place not often visited by people. In this way, when someone stumbles upon a new encampment, it'll look and feel natural, since it has been built there over time, by someone.

Similarly, if some ancient evil decides to take residence in the mountains, it may head to an area not often traveled and begin digging out cave structures. Eventually, it'll make its home there.

However, PCs who encounter the cave system early enough can notify the town, build up defenses, and scare the evil away or whatever else. It's through these types of explorations that people have the ability to change the direction the story is heading.

Special Locations
The level designers will also develop key areas called “scenes”. These are important locations that, while they may be in different locations on each server, are likely to exist on all servers. These are areas created specifically for some visual effect, or for some specific role in the story line. So not everything is procedurally generated, but a lot of it is.