Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Good noise algorithm for creating biomes (not Perlin noise)

Discussion in 'Scripting' started by Jack-van-der-Bilt, Apr 23, 2020.

  1. Jack-van-der-Bilt

    Jack-van-der-Bilt

    Joined:
    Jul 13, 2015
    Posts:
    17
    Hi everyone,

    I've been looking around the internet for a couple hours now but I fail to find a good algorithm suitable for my project.

    I'm looking for an algorithm that I can use to create a biome map that looks like the link below.
    I don't need the rivers, beaches or any pre-defined meanings for values.

    oh, and before the people that only watch 'brackeys' start writing replies:
    No. stepped Perlin noise heightmaps are not what I'm looking for

    As far as I know the way Minecraft does it is through a self-made algorithm called a 'growth map'.
    Sadly how it works infinitely in both X and Y directions isn't described anywhere.

    http://mineatlas.com/?levelName=&se...les=false&Witch+Huts=false&Slime+Chunks=false

    Does anyone here have a good algorithm they found on GitHub, some article or video on YouTube?
    Any point in the right direction helps a ton!

    Thanks in advance!
     
  2. matkoniecz

    matkoniecz

    Joined:
    Feb 23, 2020
    Posts:
    170
  3. Yoreki

    Yoreki

    Joined:
    Apr 10, 2019
    Posts:
    2,590
    I dont really like it when people look down on others, especially when they themselves do not seem to be a lot further in expertise. That's just a super unnecessary comment to add imho.

    Biome maps, just like the actual generated terrain, are compositions of different noise functions. You may find this helpful: http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
    Since you said you do not want rivers and such, it may be a bit in-depths for your purposes, but the general idea remains the same. You want to use some noise to define the biomes, have biomes (optionally) transition to others according to some temperature / moisture function, and (optionally) blurr the map to look more interresting.
    Also note that the biomes in the above article are defined by the main nodes drawn at the beginning and the rest is mostly visually. Depending on the implementation, this may or may not be the case for the image you posted, but it definitely makes sense for performance reasons.

    I'm not even sure if you are actually after a visual representation, or just want a way to determine the biome of a given voxel in your world tho. Like with everything involved in procedurally generated 'infinite' worlds, the biome maps need to be generated procedurally as well. So it's basically a 2D noise function you define yourself and sample for each vertical row of voxels to determine their biome. You would most likely want to generate it on a per-chunk basis, as you do with the rest of your terrain. If you are already doing that, it's really not such a hard concept and mostly about mixing and layering noises until you are happy with the results.
     
  4. Jack-van-der-Bilt

    Jack-van-der-Bilt

    Joined:
    Jul 13, 2015
    Posts:
    17
    I wasn't trying to be rude. I wanted to prevent stereotypical "I watched brackeys once and now a game-dev expert" members of this forum to reply to this post. Because, like I said; "stepped Perlin noise heightmaps are not what I'm looking for". I'm looking for something more advanced. How people interpret my comment is up to them. I kinda meant is as a "semi-funny-but-serious" joke. Sorry to anyone that feels offended or personally attacked.

    I'm looking for clever solutions people use to select random area's in 2d space based on neighboring area's.
    The output of that 'solution' doesn't matter to me. I just want to see multiple clever solutions to use as inspiration.

    The article you send is nice. The info as well is useful but I already looked in to those solutions and they don't fit my needs. I'll be looking further since it sadly isn't the 'ultimate' clever solution I'm looking for.
     
    Last edited: Apr 23, 2020
  5. FranGhigli

    FranGhigli

    Joined:
    Aug 6, 2017
    Posts:
    2
    Voronoi Diagrams (specially distorted voronoi) is pretty much exactly what you're looking for. Here's a paper explaining how it works + other options like "growing biomes" cuberite.xoft.cz/docs/Generator.html