After spending a lot of time studying different approaches to generating maps and or planets (this and or this is a very good starting point) I tried to implement a strategy to generate funky planets that follow three simple rules:
- n Continents must be present
- a varying number of biomes, represented by color
- varying heights across the map (high mountains, large plains)
First I used a rough simplex noise without any octaves. Second I mixed up the rough noise with another simplex noise with 4 octaves. Continents form due to the sea level, which is arbitrarily chosen to enable the possibility of planets with lots of water to planets with almost no water at all
This gives me an elevation map like shown above, that also serves as temperature map, high elevation = low temperature and vice versa.
To define moisture on the planet I generate another simplex noise. Together with elevation = temperature I then have the possibility to introduce dominant biome colors in the form of a pseudo Whittaker diagram where the x-axis represents dry to wet and the y-axis represents low to high altitude:
Everything combined results in this:
There is still a lot of room for improvements, but for a first try it’s already something to look at…
Right now, this works for 2D maps that can be transformed into usable height maps in the game, but in the current form it can’t be rendered to a sphere without distortions. In part II I’ll be exploring the possibility to use noise projected onto a sphere.