World Building

World building is the process of creating a world through modelling of the climate, elevation, precipitation and other factors over a whole world in order to generate a geography and/or history procedurally. World building is distinct from dynamic world generation because the whole world is held in memory and successive processes are applied to it. For example, a height map may be generated, then fractal river basins may be calculated, followed by a precipitation map, then erosion and so on.

Note that world building is typically done using a mix of teleological and ontogenetic techniques. For instance, the height map may be generated using various fractal techniques instead of attempting to model continental drift, but erosion may be determined by using a simplified model of rainfall.

The best known example of world building is Dwarf Fortress.

Online Demos

Donjon Fractal World Generator
Polygon Map Generation demo (Flash)
Java+Processing polygon map generation
Perl+SVG polygon map generation (may take a minute)

Code Example

The external links give a number of code examples. In particular, the Polygon Map Generation code is MIT licensed ActionScript 3. There's a Java+Processing port, a Perl+SVG port, a C#+.NET port, and a partial iOS port.

PCG Wiki References

External Links

Making Worlds - series of articles on world construction.
Procedural Planets - blog post and example code using Cubic sphere projection.
Dungeon League - Development blog of Dungeon League.
Polygon Map Generation - Article which walks through the process of generating an island.
A Survey of Procedural Methods for Terrain Modelling (PDF) - 2009 Paper summarizing various approaches people have taken to generating terrain height, water features, vegetation, roads, and urban development.
Generating Fantasy Maps - Article that explains techniques to make terrain maps using semi-teleological techniques such as erosion and Voronoi polygons.

Previous: World Building

Next: Worley Noise

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License