Closed Browsit closed 8 months ago
Noise distributing biomes for the most part is arbitrarily scaled. There's no absolute reference that says 'with this list of noise functions at x frequency, with a biome generating within ranges y of the each noise output, within area z there will be a biome on average n blocks wide'. This arbitrary noise scale is what each 'meta scale' modifies, so a scale of 1 means well.. a scaling of 1 i.e no scaling of that noise function (which could produce biomes of any size). A scale of 2 would increase the 'sizes' of applicable noise samplers by 2. (See https://terra.polydev.org/config/development/samplers/index.html#frequency)
To know the exact average block radius that something like 'mushroom-island-radius: 4' produces, you would need to go through and figure out how whatever particular noise algorithm is being used produces noise, determine some kind of 'unit length' between noise 'details' (e.g the size of the simplex grid used for simplex noise), and factor in everything that could possibly a affect that absolute reference size (which would probably require knowing how every step of the biome distribution process works for that particular biome provider).
Figuring out how things translate to exact block sizes is kinda an ass process and not really practical for anybody to do, it's way easier to just eyeball how big things are and adjust accordingly rather than being super scientific with exact block sizes. These meta scales simply provide an easy method to modify the arbitrary size of things by a factor.
Picking and choosing from presets only provides macro changes to biome distribution, for more specific things that we don't already have an easy way of changing (e.g removing all mountain biomes) would require modifications to the stage(s) that generate them. Making guides for specific modifications like this not really a priority and for such modifications it would be easier to just ask how to in Discord for the meantime.
This should be documented, just hasn't been done :P
Thanks for the clarification. It would great if meta.yml
could have a header comment stating that all values are arbitrary and to use a "try it and see" approach.
Not expecting specific guides, but how would one generally determine which stage needs to be modified? Looking at default.yml
there's a cacophony of stages with no clear indication of which one generates biomes (basic_continents jumps out but as you say there's only a macro-level pool). Is there some rule of thumb to go by?
Something like that can be added
The current pipeline is setup such that the base ocean/land zones are distributed via the source, then slowly subdivided into more specific areas according to different noise maps.
The process is Continental (ocean/coast/land) -> Elevation (group biomes into zones based on terrain height) -> Temperature -> Precipitation -> Biome specific variants
Between those stages misc stuff like volcanoes, mushroom islands, etc are added.
This ordering should probably be documented somewhere, however is going to be slightly changed with 2.0 as elevation zones within the pipeline will be replaced by a global terrain height map.
What I'm understanding is that the file equivalent of that process is:
biome-providers/sources/basic_continents.yml
-> biome-providers/stages/distribute_elevation_zones.yml
-> biome-providers/stages/distribute_temperature_zones.yml
-> providers/stages/distribute_precipitation_zones.yml
-> biomes/{NESTED_FOLDERS}/{BIOME_FILE}.yml
So deleting a biome file requires working backwards through the pipeline and removing any trace of that biome, which might be feasible for one biome but complex for many. If you don't mind we'll submit a PR to share that information.
Yeah, after precipitation zones it'll either split off into actual biomes or into the variants stage - PRs are welcomed. The headers of the main stages should have most of that information already but if you think it should be somewhere else feel free to PR that
Also I should note that there will be a wiki for the overworld some time in the future:tm: where stuff like this will be explained - if you want to make markdown pages for that add them to the .wiki
subdirectory which will be set up to sync with https://github.com/PolyhedralDev/TerraOverworldConfig/wiki
About https://github.com/PolyhedralDev/TerraOverworldConfig#customization
How do I make biomes larger / smaller?
It's said that
meta.yml
can be used, but the file itself doesn't specify units. For example:What is that, 4 blocks? Meters? Yards? For anything
-scale
what does 1 unit represent -global-scale
says 300:1 in blocks but is that the same for the rest?How do I remove all oceans / all land / all hot biomes / etc?
Notice the "etc" ... let's say we want to remove all Mountain biomes. We're led to
biome-providers/presets/default.yml
so is there something to do here or would it be at the source (and if so, how?). Also, biome-providers/README.md doesn't explain what the Extrusions subdirectory is for.Please update with clarification.