This article will go about the high level pipeline for creating a terrain.
We will go over the quickest methods to create a playable terrain for your game world.
These are the programs I mainly use in my own personal workflow.
But you can use any program that gets you the desired result.
to create the geological features for your terrain.'
to fix artifacts and add additional features.
Program to Bridge between the game engine
used to instantiate for example: trees and rocks to create complex eco systems
All methods of creating terrain is acceptable, there is no right or wrong method to create terrain.
I like to start with a base from satellite data and sculpt on top of it to create the desired terrain shape.
For this example we will use satellite data:
[STEP 1 - GETTING YOUR SATELLITE DATA]
Get your heightmap from Terrain.Party, its the easiest way to get real world data with no cost.
Make sure the blue square is within what you want to get, check the scale and download the file.
You can create your own heightmap by sculpting it, but to speed up the process, we will use satellite data. If we want to we can later on sculpt on top of the terrain to tweak the shapes.
[STEP 2 - IMPORT IT IN WORLDMACHINE OR GAEA]
Add a file node and import the terrain data.
Make sure the settings are set as you want them to be. (Height, pixel density etc.)
At times the height data might be too noisy, I like to clean it up in Zbrush or by procedural blurring out parts.
Worldmachine is more user friendly compared to Gaea in this case as you can determine the pixel density and set the real height of the terrain. Gaea is expected to get this feature in the future.
We now have our base terrain shape, in which we can now add more detail on it.
[STEP 3 - ADDING EROSION]
In the actual world, we have different kind of erosions, wind, water acid, frost etc. There are many forms of erosion.
It will give us cool features like crevasses and flow lines.
Be subtle with the erosion, don't over do it, just enough to create the flow lines and the appearance of sedimentation.
I like to duplicate the erosion node, give it a different setting to see what kind of results it could give me. If you want you can even create a mask to have different kind of erosions depending on the mask.
At times I use a warp or displace node to give the terrain an unique / other worldly look.
It makes it look more interesting.
[STEP 4 - ADDING GROUND DETAILS (ADDITIONAL)]
Like rocks, trees, roads, rivers, etc.
This step is optional, at times I like to add fake trees, rocks and roads to have an impression of how it might look like when we add some vegetation on top of the terrain.
[STEP 5 - CREATING MASKS]
Mask based on
GAEA has some cool nodes that makes it easy to create the macro terrain texture. Overall you can texture your terrain based on slope, height, angle and based on the procedural rules you have set for each biome.
The vegetation node color the terrain and also gives us a mask that we can use to instantiate foliage assets on the terrain.
We can do the same with the flow map, most often I subtract masks from each other to create new masks. For example: For the vegetation, I would like to subtract the vegetation mask from the flow map to make sure there won't be plants growing nearby it.
[STEP 6 - TEXTURING]
Texture by masks and terrain information.
With all the masks we can now start to texture the terrain. Similar to photoshop, we layer the colors on top of each other to create an interesting color map. Don't be afraid to add a bit of jitter to break up the uniform patterns.
The terrain looks complex but in actuality it isn't. The terrain gets it details from the texture. There is no need to make it super complex as that will impact the gameplay
[STEP 7 - EXPORT THE TERRAIN]
Export the heightmap. colormap and all other mask you want to use inside the game engine
Depending on how you want to use the terrain, you could also export it as a mesh with normal maps. Handy if you want to use it as a vista in the background.
[STEP 8 - IMPORT TO A GAME ENGINE -> THE PIPELINE]
After you exported your terrain as tiles, you can import them into your game engine
Create a terrain material and set it up to your liking
Playability is king
The most important thing to keep in mind while creating a terrain is to think about how the players will interact with the terrain.
Is it perhaps a racing game? If it is, is it handy to have a really bumpy terrain or to have it butter smooth with no friction?
But if you have no friction, wouldn't the gameplay be boring?
Most often you will have to ask yourself these questions, what does the player want?
The player wants to have fun. So does adding more detail and bumpiness add to the gameplay of the player? Is it a great experience?
You will have to experiment to see what works for your game