Custom Terrain Generation


Changes how land and water are generated. Highly customizable.

11 months ago
0.16 - 1.1
1.66K
Environment

g Generation Question

4 years ago

Is there a way to generate a map where everything to the left is water, maybe sporadic small islands if it has to have them but I'm thinking a way to do what the Endless Shoreline mod did. To the left all water... north south is the coastline and all land to the right. Possibly pockets of water but not necessary. I'm having a hard time wrapping my head around how to customize the terrain generation but it seems like that might be possible?

3 years ago

Sorry for my slow response.

"Halfplane()" will make the left water, and the right land. If you want the boundary to not be a straight line, there's no good way to do that (that's the sort of thing I'd want to work on in the future).

If you want to add some islands or lakes, you can modify it a bit. (Unfortunately it seems it didn't occur to me to add an xor transform, I'll try to remember that for the next version.)

Try: "Intersection(Not(Intersection(Halfplane(), v1)), Union(Halfplane(), v2))". Here "v1" is a pattern that has land where you want the lakes to be, and "v2" is pattern that has land where you want the islands to be. I don't have great ways for creating nice-looking lakes and islands, probably the best would be something like "NoiseExponent({land_percent = 0.02, exponent = 2.3, start_on_land = false, start_on_beach = false})" or maybe some tuning with the NoiseCustom method (see the examples).

3 years ago

About the xnor, with intersection and union and not, could you combine them?

Something like:

Union(Intersection(a, Not(b)), Intersection(b, Not(a))

2 years ago

Maybe add a elevation function that has the vanilla function on the right (left, top, bottom) and your function on the other half. Parallel to that only generate map chunks for half the map. One could then set the vanilla generator to create islands to get a split map.

You could also use a ramp to get a kind of fade between the vanilla map gen. Add 'x / m' to the vanilla elevation function, where m determines the width of the transition zone. And then only generate tiles in new chunks when the tile is not water. That should give you a nicer coastline with some island next to it and then water all the way further out.

1 year, 20 days ago

The two new coast line presets now accomplish this

New response