A long while back when No Man's Sky was coming out we talked a lot about procedural generation. Would be cool if we could talk about it again.
There are 4 basic types of procedural generation, plus the "new" one I'm working on.
#1 Noise
Think Minecraft and NMS terrain. A random infinite pattern is used over and over to make the world. It's very fast and can get really good looking results when done right, but it tends to have a specific feel to it.
#2 Parameters
Lots of numbers are used to describe the object and then said object is generated. Character creators are a great example of this. It can be used for pretty much anything and allows the results to be "searched." Great method for specific things.
#3 Part Swapping
Real easy method of just assembling premade parts. Lots and lots of games use this method to make levels that are random but not that random. Warframe, God of War 2018, etc. This method also works great for buildings and objects. It's essentially LEGO.
#4 Simulation
Simulating erosion, simulating society, simulating plant growth, etc. This is used a lot during game development to speed things up for artists, but it is also used real time in games.
#5 Procedural Zooming
This is the method I've been working on for a few years. Zooming doesn't specifically refer to camera movement, but instead refers to how it works. A basic design is generated and then the system zooms in to add details. After that it can zoom in to add more details over and over again. This is like using AI to increase a picture's resolution over and over again.
As a result, it always looks good both at the macro and micro scale. With planets this means they can look great in space and on the surface. With worldbuilding this means individual battles fit within larger wars.
It also works as a good middle ground between the speed of noise generation and the power of other methods.
I use all 5 methods in The Forged Kingdoms. Noise for local biomes, parameters for plants and animals, parts for cities, simulations for npcs, and zooming for plant gen. There is lots of overlap and in practice most methods use other methods too.
There are 4 basic types of procedural generation, plus the "new" one I'm working on.
#1 Noise
Think Minecraft and NMS terrain. A random infinite pattern is used over and over to make the world. It's very fast and can get really good looking results when done right, but it tends to have a specific feel to it.
#2 Parameters
Lots of numbers are used to describe the object and then said object is generated. Character creators are a great example of this. It can be used for pretty much anything and allows the results to be "searched." Great method for specific things.
#3 Part Swapping
Real easy method of just assembling premade parts. Lots and lots of games use this method to make levels that are random but not that random. Warframe, God of War 2018, etc. This method also works great for buildings and objects. It's essentially LEGO.
#4 Simulation
Simulating erosion, simulating society, simulating plant growth, etc. This is used a lot during game development to speed things up for artists, but it is also used real time in games.
#5 Procedural Zooming
This is the method I've been working on for a few years. Zooming doesn't specifically refer to camera movement, but instead refers to how it works. A basic design is generated and then the system zooms in to add details. After that it can zoom in to add more details over and over again. This is like using AI to increase a picture's resolution over and over again.
As a result, it always looks good both at the macro and micro scale. With planets this means they can look great in space and on the surface. With worldbuilding this means individual battles fit within larger wars.
It also works as a good middle ground between the speed of noise generation and the power of other methods.
I use all 5 methods in The Forged Kingdoms. Noise for local biomes, parameters for plants and animals, parts for cities, simulations for npcs, and zooming for plant gen. There is lots of overlap and in practice most methods use other methods too.