The procedural world generation in Replication Extermination is the current iteration of my ongoing love affair withprocedural generation. This syten primarily uses Unity’s Mathf.PerlinNoise() function to create “seeded” randomized values (cellular in nature, as is the point of PerlinNoise).
I’m using a chunking algorithm that uses the player’s current world position to create adjacent world tiles as the player moves. Each of these world tiles has 1600 navigation point objects in a grid. When a world tile is generated, each navigation point’s values
from a variety of offset PerlinNoise maps, such as blocking weight, forest weight, and
hindering weight. These weights on each navigation point are used to determine what world/terrain feature to spawn at the point. Random.InitState() is also called with the tiles position, so that all following random values will be seeded for that tile.
Spawning these world features takes time, so we use a coroutines and every 40 objects spawned we allow a frame to pass. The new world tiles appear in the distance, before the player can see the new world tile.
After the terrain features have been generated, we go through the open vertices and spawn enemies, cores and powerups.
0 comments