Terra (Fabric/Forge/Paper)

Terra (Fabric/Forge/Paper)

74.2k Downloads

Alternative to Biome Grids

solonovamax opened this issue ยท 4 comments

commented

Alternatively to biome grids, allow for users to set a value in their config so that they use a custom variable which relies on a noise map to generate the biomes. For example a temperature.
When generating the biomes, it will generate any biome within a specified range of the temperature, or it will increase that range as needed if there are no available biomes.

commented

I will (probably) be doing this for 3.2:

  • Grown Biomes approach
  • "Biome Pipeline" config style, define passes of biome gen yourself (define number & type of zoom operations, smooth, borders, etc)
  • Allow biome configs to specify border biome with other biomes, have BORDER_APPLY biome step option in Biome pipeline
  • Allow biomes to specify which other biomes they can generate next to
  • Biome "groups"? (config defined ofc, examples would be OCEAN and LAND)

We will definitely need to lower biome sampling resolution for this (4x4 like Vanilla probably) and implement some sort of biome cache. Probably look into Guava caches for this and other things.

commented

oops, originally put this on wrong issue:

"Biome Pipeline" config style:

  1. "Biome Source" defines initial ultra low-res biome gen
  2. List of "Biome Mutators" that biome source biomes are passed through one by one. Biome Mutators:
    • Zoom Layer: Zooms the biome selection by a factor of 2 : (n*2)-1
    • Smooth Layer: Smooths out rough biome edges
    • Border Generation: Looks at biomes and generates borders based on their configs
commented

Any other mutators we need? Current mutators:

  • Expanders:
    • Fractal expander - Expands based on cellular automaton with random selections done via noise function.
  • Mutators:
    • Replace - Replace biomes tagged with a from tag to a probability collection of biomes, chosen via noise function.
    • Replace List - Replace but with separate probability collections for certain biomes, and a default from tag and to list, all chosen via same noise function
    • Border - Replace biomes in a replace tag that are bordered by biomes with a from tag with a probability collection of biomes, chosen via noise
    • Border List - Same as replace list but with border
    • Smooth - Smooth out biome selection a bit, to get rid of fractal zoom fuzz.

Also I implemented several biome distributors as well:

  • Pipeline - The pipeline system mentioned above
  • Image - New image system based on closest-color matching biomes.
  • Single - Single-biome provider, useful for debugging/pack development.
commented

Released with 4.0