Page 1 of 1

Discussion: New mapgen idea

PostPosted: Thu Feb 23, 2017 14:37
by burli
All current mapgens work in the same way. They generate a terrain with different noises and overlay this with a two dimensional biome map.

There are a lot of downsides. Because of the nature of perlin noise biomes can be huge, but also really tiny. A bigger problem is that there is no control for the terrain. It is nearly impossible to generate specific biomes that need a specific terrain. A nice example is the lavender fields. You can specify a biome in Minetest, but there is no guarantee that this biome spawns in a plain

So I think the biome definition should include the terrain and not only heat and humidity

The basic shape of a biome can be generated by voronoi cells. Each cell has a defined terrain like hills, mountains or plains, topping like snow, sand or grass and a vegetation.

Voronoi cells are generated by placing random points. But they are scattered very uneven. To make it (a little bit) more even the Lloyd relaxation can be used. One or two iterations should be enough. To make the edges less sharp a noise ripple could be added and to blend the biomes a gradient could be used

A voronoi cell could be subdevided by a voronoi treemap to create subbiomes or define the terrain more specific

But the basic idea is to define biomes not only by heat and humidity. A definition of the terrain is also important. A glacier biome doesn't makes sense in a plain. It needs a mountain. A landscape like the "Lüneburg Heath" (a landscape in Germany similar to the lavender fields) doesn't make sense on a mountain.

My biggest concern is: how can I generate a mountain within a mountain biome? I can use normal perlin noise, but I have no guarantee that the noise generates a mountain within the cell.

What do you think about this idea and how could this be implemented?

Re: Discussion: New mapgen idea

PostPosted: Thu Feb 23, 2017 14:56
by Naj
There could be another aproach with mountains. With heat and humidity, there could also have a notion of min and max height.

If min is negative and max positive --> shore,
if max much higher that min --> clifs or mountains,
if max near min --> plains,
and so on.

I'm also convinced that heat should depend on altitude. I always find that strange to have snow in plains and grass in nearby mountains.

Re: Discussion: New mapgen idea

PostPosted: Fri Feb 24, 2017 13:52
by firefox
what i am missing is localization of biomes.
currently we can define min and max heights to separate biomes to low and high land, but in the other directions it's all random and not controllable.
if you could define a min and max X and Y (or X and Z) in addition to height, we could have more control over where to generate biomes.
for example, we could set up a bunch of cold biomes that only appear in the northern parts of the world.
=(^.^)=

Re: Discussion: New mapgen idea

PostPosted: Fri Feb 24, 2017 14:14
by burli
if you could define a min and max X and Y (or X and Z) in addition to height, we could have more control over where to generate biomes.


Then you have the height of one position, but still no idea if it is a hill, mountain, just a small spike or a plain in the heights. I would like to have some kind of terrain biome. Plain, mountains, canyon, hill, whatever