I work on a voxel-like game, and I have finally managed to create some basic terrain generation using simplex noise. Heres what it looks like:

Sure I can generate different kind of terrains (more or less hilly/aggressive), but there wont really be any variation.

At the moment I only know one way to make it more interesting, and that would be to add stone blocks under the grass (I would simply check the above block).

So my questions are: What techniques would I need to use, to generate different kind of terrains, which still kind of blended together at the edges. And how would I go about caves and rivers? And lastly how would I make a better variation of blocks?

If any could lead me in the right directions, I would appreciate it a lot.

Ps. It's not a valid answer to say that I just need to mix a lot of noises, to generate it. How?

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

\$\begingroup\$Different parameters give different results so you should create regions, perhaps with noise and apply different terrain parameters to these regions.\$\endgroup\$
– MadmenyoJul 17 '15 at 10:19

1 Answer
1

It's all about adding more features and doing some processing on your output.
You are currently generating a heightmap but what seems to be missing? First off there are no rivers or trees. To generate this I would sugest creating a second noise map that contains rainfall. Then maybe add a third one for fertility. The areas with high rainfall and fertilty become forests, high rainfall low fertility might become something like a swamp (it elevation is low) or might be a place to start a river and places with low fertility and low rainfall can become desert. This will automatically generate good looking biomes that make it all look more interesting.

After that you can do some proccessing cycles. A good second step is to take the rivers and forrest from step 1 and let them influence the terrain a bit. A forrest naturally puts down dirt on the ground (slighly more fertility) and a river carves a path trough the ground. By respawning the rivers several times on different randomly chosen points you can simulate the natural proces by which rivers normally form from many sources and often have a history of changing the point of origin to reflect changes in rainfall. With this as a basis you can then continue to expand the proccessing step to create natural valleys, canyons and river paths.

You should also use a different texture depening on the type of ground currently it's a solid green but it would look more interesting if slighly steeper hills (esp when facing the north) were more dirt colored and really steep cliff faces were painted grey ish for the stone walls that they probably are.

\$\begingroup\$The biggest point to take away from this, IMO, is that biomes are an emergent feature of the terrain. I'm sick of biomes being a first-class element in the generation process - it leads to nonsensical and jarring terrain transitions.\$\endgroup\$
– jmegaffinJul 4 '15 at 21:47