Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been learning about Procedurally Generated Content lately (in particular, Perlin noise). Perlin noise works great for making things like landscapes, height maps, and stuff like that. But now I am trying to generate structures more like mountain ranges (in 2D, as 3D would be way over my head right now) or underground veins of ores.

I can't manage to manipulate Perlin Noise to do this. Making a cut off point (i.e. using only the tops of the 'mountains' of a heightmap) wouldn't work, because I would get lumps of mountains/veins. Any suggestions?


share|improve this question
This question is a bit vague - can you be more specific about what you want to create, and why Perlin noise isn't doing it for you? Perhaps you could post a screenshot of the results you're getting now, and a drawing or photo-reference of what you're trying to achieve? That being said, you should have a look at Giliam de Carpentier's "Scape" articles on advanced terrain generation using Perlin noise as a base. – Nathan Reed Jun 26 '13 at 3:40
What is a 2D mountain range? a side-scroller? – Justin L. Jun 26 '13 at 4:18
Sorry for being vague! I mean like mountain ranges viewed from above. In my sojourns into perlin noise, all I have managed to generate are peaks and valleys, whereas I'm looking to connect peaks into a line. Thank you for your time! – Numeri Jun 26 '13 at 4:33
I think you are incorrect in your presumption - that you should manipulate Perlin noise into making mountain ranges. It will be much easier to combine it with another technique that makes mountain ranges. – congusbongus Jun 26 '13 at 4:57
@CongXu Such as? – Sidar Jun 26 '13 at 10:19
up vote 7 down vote accepted

Perlin noise is great for many things - localised terrain, clouds, waves - but when it comes to mountain ranges it's somewhat lacking. The problem is that the output looks like, well, noise. Mountain ranges however are the result of tectonic plates pushing against each other, forming ridges, and so look somewhat like ripples on fabric or paper that's scrunched inwards, albeit very noisy:

A ridge

enter image description here

This is what real mountains look like when you're far enough up

enter image description here

There's no way a single Perlin noise generator, no matter how well tweaked, will recreate these features. Hence my suggestion to use a multi-phase generator, with something to create those ranges, and Perlin noise to add the fine detail like peaks.

Have a look at libnoise, an open source terrain generation library. It uses a composite generator, which includes one that generates ridges. Here's a sneak peek of what it's capable of:

enter image description here

Now compare this with a typical Perlin noise generator, and you can see how it's much better at resembling mountain ranges. This just looks like blobs to me:

enter image description here

share|improve this answer
One more question: What would the something be that creates those ranges? Thanks for the link to the library! – Numeri Jun 26 '13 at 19:26
Ridged multifractals, as explained in the libnoise tutorial which is linked in the answer. – sarahm Jun 26 '13 at 20:12

You might want to have a look at Inigo Quilez' website. Especially his article on advanced perlin noise and terrain raymarching could be interesting.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.