While working on my 2D tile based game, I encountered a problem. I use Perlin Noise to generate the terrain. Some biomes (Desert, Forest, etc) have different flatness values depending on terrain, which causes the end/start of a new biome to have a big cliff because the terrain is different. When 2 biomes have the same flatness, they are fine, but if they are different, this can happen. Is there any way to keep this from happening?

Example (In programmer art) enter image description here

  • 5
    \$\begingroup\$ I'd simply lerp the border regions evenly, so that the last 5-10 tiles of desert are higher than average and the fist 5-10 tiles of mountains are lower than average. \$\endgroup\$ Nov 11, 2012 at 23:15
  • 2
    \$\begingroup\$ For any attribute which you can blend across a biome border, you probably should. \$\endgroup\$
    – Kevin Reid
    Nov 12, 2012 at 4:50

1 Answer 1


When I had this problem in 3D, i solved it by blending values from both noise generators near seam. I blended not only height, but everything: textures, terraint details, etc.

Here's how it worked out: http://nevermind.wdfiles.com/local--files/_unity%3Aroentgen/WebPlayer.html (unity web player). As you can see, blending works almost perfectly.

  • \$\begingroup\$ This is only tangentially related, but what code are you using for your mouselook in there? It's much smoother than anything I've done in unity, and I'd be interested in duplicating its functionality. \$\endgroup\$ Nov 12, 2012 at 12:20
  • \$\begingroup\$ @Raven Dreamer umm... It's the standard CharacterController with MouseLook script from Standard Assets, nothing fancy at all. \$\endgroup\$
    – Nevermind
    Nov 12, 2012 at 18:33
  • \$\begingroup\$ How is this the correct answer? \$\endgroup\$ Aug 28, 2019 at 21:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .