Procedural Generation Advice

Map generation problem: I’m trying to generate a set number of biome zones, all connected in random ways. Once I have these biomes, I’m planning on using math.noise to generate terrain, tuning the generation based on what biome I’m generating points in. I have a general idea on how to do this with rectangular biomes, since generating random connected rectangles should be simple, and when I start making the height map, it will be easy to tell what biome I’m in based on the rectangle corners. However, I’m wondering how I would make biomes with randomized numbers of edges, to make the map more jagged and uneven. I originally looked into generating a Voronoi diagram, but the math seemed beyond me. Is there any other way I can accomplish this? I’m kinda lost at this point, and need some general guidance. If anyone has played the game Don’t Starve or Don’t Starve Together, I’m trying to get a map generation similar to what they do, but in a 3d grid system like Minecraft.

This is just an idea not too sure how you would implement this in code.

You could use noise to generate the position of your biomes too, not just the value of a block at specific point. You can then give each biome a random or pseudo-random number which defines a “radius” that is the size of the biome. Then when the height value of parts are being calculated, you interpolate the normal biome (outside the circle) by the inverse of how close it is to the radius of the biome. This will allow you to create curved biome regions.

image

1 Like

This seems like a really good idea, I’ll give it a shot

Took a while, but I was able to implement it using your idea, thanks!
ProceduralBiomes