Skip to content
devlog

How Atherion's World Is Generated

A look at Atherion's procedural world generation pipeline using WorldGenPro

Atherion Team
Procedurally generated biome map in Atherion's world

How Atherion’s World Is Generated

A single seed number is all we need to generate an entire world. That number passes through five sequential stages inside the WorldGenPro engine we built specifically for this project, and at the end of the pipeline a complete world emerges — with its terrain, rivers, and biomes.


Stage 1: Tectonic Plates

We start by distributing plate centers randomly across the map using a Blue Noise algorithm — a method that ensures points are evenly spaced without looking mechanically uniform. Then we partition the map with a Voronoi technique: each cell belongs to the nearest plate center, forming mosaic-like regions.

Each plate is classified as either oceanic (low elevation) or continental (high elevation), and the ratio between them is adjustable. The magic happens at plate boundaries: when two continental plates collide, mountain ranges form; when an oceanic plate subducts beneath a continental one, an ocean trench and volcanic arc appear; and when two plates diverge, rifts emerge. This gives us a realistic geological skeleton instead of purely random terrain.

Finally, we apply a Radial Clamp that pushes the map edges downward, ensuring the world takes the shape of an island surrounded by ocean.

Tectonic plate boundaries map

Elevation map from plate boundaries


Stage 2: Heightmap Detail

The tectonic map gives us the broad shapes — continents, oceans, and mountain ranges — but it lacks fine detail. Here we add layers of FBM Noise (Fractal Brownian Motion), which stacks multiple layers of Perlin Noise at different frequencies.

The detail isn’t uniform: mountainous regions get rougher terrain that mimics rocky peaks, while plains stay smoother. After that we apply a Radial Falloff that gradually pushes the edges toward ocean level, and the final result is a heightmap in real-world meter units.

Detailed final heightmap


Stage 3: Erosion

The terrain from the previous stage looks too “digital.” Erosion simulation is what gives it a natural appearance.

Hydraulic erosion simulates a full cycle: rainfall on the surface, water flowing downhill, picking up sediment from the ground during flow, depositing that sediment where the water slows down in flat areas, and finally evaporation. This process repeats for dozens of cycles, gradually carving valleys and smoothing hills.

Thermal erosion handles steep slopes: if the gradient exceeds a certain threshold, material slides downward, smoothing rocky cliffs and forming scree deposits at their base.

The combined result: terrain that looks like it was shaped over millions of years rather than being mere mathematical noise.

Water flow accumulation patterns after erosion


Stage 4: Climate & Hydrology

This stage is divided into two interconnected parts.

Proto-Climate

Before rivers and lakes, we need a preliminary climate classification. We calculate temperature for each cell based on its position (latitude) and elevation — higher areas are colder, and coastal areas are more temperate. Then we calculate initial moisture from distance to the coast and elevation.

This gives us three climate zones: forest (humid and warm), desert (dry and hot), and snow (cold). The proto-climate directly affects the terrain: desert regions have their terrain flattened to mimic eroded dunes, and snowy regions are slightly smoothed to simulate glacial effects. This ensures the final landform matches its climate.

Proto-climate classification map

Rivers & Lakes

Now we simulate water flow in detail. Each cell on the map points to its lowest neighbor (D8 Flow Direction), giving us a complete drainage network. Through Flow Accumulation we know how much water passes through each point.

To classify rivers we use Strahler ordering: a small stream has order 1, and when two streams of the same order meet, the order increases. This gives us a natural hierarchy from small streams to wide rivers. River paths are smoothed and given natural meanders, and each river’s width is calculated from its drainage basin size.

Lakes are discovered by filling depressions in the terrain — any basin without a natural water outlet becomes a lake. Climate plays a role here too: depressions in desert regions need much greater depth to qualify as permanent lakes (otherwise they remain dry salt flats), while forested regions form lakes more easily.

Finally, rivers and lakes spread moisture around them, enriching the final moisture map that will be used in the next stage.


Stage 5: Biome Classification

Now we have all the data: temperature, moisture (including the influence of rivers and lakes), and elevation. We combine them to classify each cell into a biome.

Before the final classification, we calculate the Rain Shadow effect: mountains block moisture from reaching the opposite side, creating dry areas behind mountain ranges.

Atherion has three main biomes: forest, desert, and snow. Each biome splits into three sub-biomes using an additional noise layer — forests range between Woodland, Dense Forest, and Jungle; desert between Scrubland, Dunes, and Badlands; and snow between Tundra, Taiga, and Frozen Waste. Transitions between the main biomes aren’t sharp — we use Smooth Blending Weights based on distance from temperature and moisture thresholds, so biomes grade naturally without artificial borders.

Final world map


Next Steps

The current pipeline produces a complete geographical world, but there are additional stages planned:

  • Zone Classification: Each continent in the world carries a difficulty tier. T1 continents contain only safe zones, T2 continents mix T1 and T2 zones, while T3 continents contain a blend of all three tiers with a clear dominance of T3, less T2, and even less T1 — with natural terrain features like mountains and rivers serving as boundaries between zones.
  • Chunk Slicing & Blob Baking: Converting the large map into small chunks for progressive loading during gameplay.
  • Analysis & Validation: Automated checks to ensure the quality of the generated world — biome distribution, river connectivity, and terrain plausibility.