Building worlds from scratch can be a tedious process. Aside from the technical limitations you generally run into (size and precision, rendering vegetation and surfaces, etc) one of the biggest issues is simply creating it in a reasonable time and to an acceptable quality standard. Hand-painting on anything other than a micro scale is a bad idea; quality will vary wildly despite being a massive time-sink. By breaking the world down into biomes, which can be individually fine-tuned, and, in a way, authored, it becomes more viable. But, that only shifts the problem into a third realm; how do we place the biomes?

The answer is by using Whittaker Biome Mapping; by starting with some aspects of the world, you can then determine what the surface will look like. Temperature is a function of location (poles vs equator), altitude (temperature drops at height), and distance to water (oceans act like a heat sink). Rainfall is a function of not just proximity to the oceans (access to humidity) but also to the direction of any slopes relative to the local airflow (mountains catch clouds and force rain) and seasonal changes (dry v wet seasons).

Actually, it’s possible to do this mapping entirely within a shader. While the Unity Terrain systems and some more exotic spawning systems don’t particularly like this (for now) it does move everything into one pass, and is great for debugging any code responsible for generating temperature or rainfall.

The result? How about a run from the equator to the south pole, in one continuous sprint….