
However, the soil is represented as discrete particles,
which is unrealistic for large-scale terrain and compu-
tationally expensive as it involves particle collisions.
More recent papers focus on the efficiency of such
algorithms. (Anh et al., 2007) and (Mei et al., 2007)
propose to run the simulation on the GPU. (Vanek
et al., 2011) proposes to speed up hydraulic erosion
simulation by using a quadtree representation for the
terrain.
The standard way to simulate water, as used in
the majority of the papers cited above, is to track the
amount of water held by each tile, then distributing
that water to its neighbouring tiles. This mechanism
restricts water to flow at a maximum of one tile per
simulation tick, which is highly unfeasible for simu-
lation at geological time and space scales.
2.3 Graph-based Algorithms
Graph-based algorithms attempt to draw a graph - typ-
ically a river network - onto a terrain, then use this
graph to fill in the terrain height. This may be done
in either a stochastic or a simulation fashion. Graph-
based algorithms tend to be more structured and re-
alistic than the standard stochastic methods due to
their attention to the dendritic nature of real terrain
features, and they are generally faster than the stan-
dard simulation methods due to their efficient way of
defining rivers and water flow.
(Kelley et al., 1988) defines an initial main river,
then generates a complete river network by recur-
sively generating branches along the river, calculates
the height at varying points on the river based on how
much erosive power that part of the river has, and fi-
nally constructs the rest of the terrain from using the
heights of the points on the river. (G´
enevaux et al.,
2013) adopts the same general approach, with more
developed geological theories. (Zhang et al., 2016)
also uses the same general approach, but they gener-
ate the terrain between rivers using the midpoint dis-
placement algorithm, and their usage of an L-system
to generate the river network results in distinct regions
of terrain with regular hills.
(Gaillard et al., 2019) generates a random den-
dritic fractal shape that can be explicitly used as
mountain ridges. The height of the terrain at any point
is proportionate to its distance from the closest branch
of the fractal. The fractal can be controlled to take on
a particular shape.
(Cordonnier et al., 2016) implements erosion sim-
ulation on a graph-based terrain. The underlying phi-
losophy of the algorithm is that terrain is shaped by
two processes: tectonic uplift and river erosion. Up-
lift raises the terrain, while erosion lowers the terrain.
The simulation runs until the terrain reaches a stable
state where the uplift balances out the erosion at every
pixel.
Every pixel of the height-map is given a point with
a random position within it. Each point is also asso-
ciated a fixed drainage area - representing the area of
locality from which it collects water, and thus how
much water has to be drained from it. Finally, each
pixel also keeps track of an uplift value - how much
the terrain (rock) at that point is raised every tick.
Within a simulation tick, uplift is applied every
pixel, then erosion. For the erosion step, every pixel
first identifies its neighbour with the lowest height.
This represents the neighbour that all its collected wa-
ter is going to flow to. If all its neighbours are higher
than it, it aborts the erosion step. Once every pixel
determines its lowest neighbour, the total drainage A
of each pixel is calculated. The total drainage is the
total sum of the current pixel’s drainage area and the
drainage areas of everything upstream of it. Simulta-
neously, the slope sof each pixel is calculated to be
the gradient between its own point and the point of the
neighbour that it is emptying into. Finally, erosion is
calculated as ks√A, where kis an experimentally de-
rived erosion constant. Every pixel’s terrain height is
reduced by this erosion value for this tick.
2.4 Machine Learning
Machine learning (ML) has in recent years found
many applications throughout the field of informa-
tion technology and beyond, and terrain generation is
no exception. When one regards terrain height-maps
as images, it is clear that existing ML techniques are
highly compatible with height-map generation, given
a large enough database of existing terrain samples to
learn from. (Summerville et al., 2018) is a survey on
ML techniques being used for PCG for functional el-
ements in games.
(Yeu et al., 2006) is an early attempt at generat-
ing terrain using ML techniques - in this case, an ex-
treme learning machine (ELM). (Gu´
erin et al., 2017)
proposes to use a Conditional Generative Adversarial
Network (cGAN) that has been trained on real terrain
in order to generate new terrain. (Wulff-Abramsson
et al., 2018) uses a Deep cGAN to generate alpine
height-maps. (Spick and Walker, 2019) uses a GAN
to generate both a height-map and a corresponding
satellite image.
ML techniques have the capability to produce
high-quality terrain output with fast speed and sim-
ple inputs. However, they can only do so with the
help of many auxiliary resources: First of all, there
needs to be a database of realistic and properly for-