Can I use Perlin Noise?

Can I use Perlin Noise?

Perlin noise can be used to generate various effects with natural qualities, such as clouds, landscapes, and patterned textures like marble. Perlin noise has a more organic appearance because it produces a naturally ordered (“smooth”) sequence of pseudo-random numbers.

How do you generate a random terrain?

Correct way to “randomly” generate flowing terrain

  1. Fill the terrain in with all grass.
  2. Go back and add some random spurts of gravel.
  3. Round out the gravel.
  4. Draw Mountain Landscape on second layer.
  5. Round out mountains.
  6. etc. etc.

How is a 3D Perlin noise function used?

Since 2D perlin noise generates nice/smooth looking hills, 3d perlin noise will generate nice/smooth hills and nice holes in your 3D voxel grid. An implementation can be found here (while that is an N-dimensional solution). In other use-cases the Z component of a 3D perlin noise is set to the current time.

What can I do with procedurally generated terrain?

These can be fun to play with when generating terrain; they will make it smooth and flat or bumpy and spiky. Homework assignment: try merging two noise datasets that have been generated with different octave / persistence values. Once you have access to random 2D data, it’s pretty straight forward to convert that noise into usable data.

How to create an infinite world of terrain?

An infinite world of terrain isn’t all that interesting for very long without something in it. We want to add things like trees, caves, and towns to our game. We can simply use the same random number generator (RNG) that we used to generate our noise to determine when to place and how to build objects.

How to create an infinite procedurally generated world?

Homework assignment: try merging two noise datasets that have been generated with different octave / persistence values. Once you have access to random 2D data, it’s pretty straight forward to convert that noise into usable data. Simply set up thresholds for each tile type you want to support, eg: