2
\$\begingroup\$

I used Game Maker to construct a 3D terrain using Perlin Noise. Since I wanted to create an island, I set the noise function to return a value between 0 and 128. Then I checked each point and subtracted 128 from points at the edge of the map, and added 128 to the middle of the map, with linear interpolation in between. Then I change every value below 0 to 0 and called it water. It looks good for making an island with a single point in the middle, but they all look pretty much like this:

enter image description here

I was wondering if there was a way to get more variation in the terrain just by changing how I use the perlin noise function, or if it would just be simpler to extend my "forced mountain" strategy, maybe by randomly moving the position of the peak, or adding more peaks.

I would like to be able to create a large island with many areas of varied terrain. I want to pre-generate everything and break it up into chunks. The two issues I'm having so far is that the map looks boring, and it looks like making an island as large as I'd like would take up humongous amounts of disk space, but that's a different issue.

\$\endgroup\$
  • 1
    \$\begingroup\$ A simple way is to square or increase your perlin noise by some power, this will make more defined peaks and troughs. Also setting the heights between the water and the water+... to sand would add nice beaches which create more variation. \$\endgroup\$ – Shaun Wild Jun 28 '16 at 14:04
  • \$\begingroup\$ The coloration is just to show height differences, actual biomes would be implemented later using moisture and temperature noise maps. I'll give squaring the noise a try. \$\endgroup\$ – user137 Jun 28 '16 at 14:48
  • \$\begingroup\$ Okay, post the results :P \$\endgroup\$ – Shaun Wild Jun 28 '16 at 14:58
  • 1
    \$\begingroup\$ @ShaunWild You were right about more defined peaks! I may have put the exponent in the wrong part of the program. I need to go to bed now. I'll try again later. \$\endgroup\$ – user137 Jun 28 '16 at 15:19
  • 1
    \$\begingroup\$ Raising to a power can help; I also find that using a second perlin noise value adds a lot for variety. My notes \$\endgroup\$ – amitp Jun 28 '16 at 16:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.