I'm new to gamedev.
I'm currently working on a little peaceful low-poly game using LWJGL3, follwing ThinMatrix tutorials.
So far, I'm using Perlin noise to generate the heightmap. This is what I got with a 200x200 map : https://puu.sh/EqHpn/26d95a343e.png
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 toundra 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 ?
TLDR : I'm generating a terrain with only heights ? How should I add more features on my terrain using Perlin noise ?