Lecture 1 – Terrain Generation
Procedural Content Generation for Computer Games
Vojtěch Černý
cerny@gamedev.cuni.cz
Terrain generation
No Man’s Sky
Minecraft
Different kinds of terrain generation
TileMaps
Transition from left to right with ordering of tiles and authoring overlaps
HeightMaps
Pros: Quite simple to handle, good results
Cons: Cannot generate overhangs, caves, etc.
height visualized as brightness
HeightMaps�Simple approaches
Fault formation
Hills-adding
Particle deposition
Diamond-square algorithm
Diamond-square algorithm
HeightMaps�Noise approaches
Noise functions
White noise
Bilinear interpolation
Octaved
Smooth interpolation
This approach is called value noise
Side-note: Octaves
Perlin noise
Perlin noise
Gradient interpolation explained
Perlin noise
Gradient interpolation explained
Perlin noise
Gradient interpolation explained
Perlin noise
Gradient interpolation explained
For interpolation, use smoothstep (Perlin, 1983)
or smootherstep (Perlin, 2002)
Perlin noise often has visible directional artifacts by both axes
Perlin noise
Simplex noise
Simplex noise
Single Octave
Multiple Octaves
Value noise
Perlin noise
Simplex noise
Cellular noise
Cellular noise, taking 2nd closest
Domain warping
f(p) = noise(p + noise(p))
f(p) = noise(p + noise(p + noise(p)))
Ridged noise
Billow noise
Analytical derivatives
Advantages of noise functions
Limitations of heightmaps
Limitations of heightmaps
Non-linear triangulations
Original
Triangulated using 5% of points
Side-note: Biomes
Biomes of Map from Outer Colony
HeightMaps�Non-noise approaches
Terrain with Cellular Automata
Simulation
-> erosion simulation (wind / water)
Rarer approaches
Figure 2 of Interactive Example-Based Terrain Authoring with Conditional Generative Adversarial Networks by Guérin et al.
Non-heightmaps
Three-dimensional approaches
Random walks
Perlin worms
3D Noise
Summary
Q & A
Vojtěch Černý
cerny@gamedev.cuni.cz