I'm new to gamedev.

I'm currently working on a little peaceful low-poly game using LWJGL3, following ThinMatrix tutorials.

So far, I'm using Perlin noise to generate the heightmap. This is what I got with a 200x200 map :

enter image description here

I would like to have biomes, rivers, mountain not so often and other features.

For biomes : I have read, to generate biomes we often use the heightmap, a moisture one and a temp one based on the height. But imagine, you can have a forest at the same level of a desert but tundra will only be on top of the mountains. Should the biome define the height?

For other features:
Should I generate a Perlin noise layer for each features? If yes, would they only impact the heightmap?

How should I do it? What are the steps of a good terrain generation?

How should my biomes be structured? Currently, my biomes have only 1 color and based on height, the color varies. But the transition between biomes are bad. Yellow to green, green to brown, etc..

I'm generating a terrain with only heights; how should I add more features on my terrain using Perlin noise?


closed as too broad by DMGregory Oct 10 at 10:26

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.

  • 4
    \$\begingroup\$ Please focus on one feature at a time. The technique you use to create biomes will not give you rivers, and vice versa, so they're separate questions. There's also no one true answer to "the steps of a good terrain generation" there's just what worked for this case or what worked for that case, etc. What works for your game might be neither of those! So make your best effort based on your research, then point to one specific aspect of its output you want to change and what it should do instead. \$\endgroup\$ – DMGregory Oct 9 at 21:44
  • \$\begingroup\$ Alright, thanks for the tips, I'll try that \$\endgroup\$ – Tiis Oct 9 at 21:56
  • 1
    \$\begingroup\$ We also have decent sized preexisting collection of questions about procedural generation of terrain. If need something not yet covered, you're welcome to ask; the stack exchange model is to do so one topic at a time. \$\endgroup\$ – Pikalek Oct 10 at 1:07