# Terrain Generation - Advanced [closed]

I need to generate terrain. Easy enough you might say, but I need to create Biomes if you will(Can't link of another name) lakes. Trees and on a height map.

So I have really no idea how to use a height map or even perlin noise. If you could help me out. I need 3D and 2D help. If you could explain the math behind it, really help me understand this for good.

## closed as not a real question by MichaelHouse♦, msell, Trevor Powell, bummzack, AnkoMay 22 '13 at 12:42

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. If this question can be reworded to fit the rules in the help center, please edit the question.

• A comment on generating biomes: it's a huge topic, one that could fill a book, so I'd treat it as a separate question. The simplest ones only look at altitude and proximity to water, but you can take it as far as simulating water cycles (to find out where the rivers are), ocean and air currents, seasons, and interactions with terrain, not to mention effects based on biology. – congusbongus May 21 '13 at 4:00
• I'll post the canonical link for this type of question: Polygonal Map Generation by Amit Patel. This is about 2D (top-down) terrain, but the same ideas should also be a great starting point for 3D terrain. – Nathan Reed May 21 '13 at 4:11
• -1. There's no actual question here. – Trevor Powell May 22 '13 at 5:44

Can I just suggest that you absolutely forget about biomes if you can't make and use height-maps yet.

Step by step is the way to go.

A +---+---+ B
|\..|\..|
|.\.|.\.|
|..\|..\|
+---+---+      Y
|\..|\..|      |
|.\.|.\.|      |
|..\|..\|      |
C +---+---+ D    ---------x


imagine the +'s as the vertices of your mesh. Simply randomize the height of the corner verts (A,B,C,D), then average the mid-verts between these, with a little randomness as well. Keep doing this foreach mid-vert until all your verts are positioned in the z direction. You'll end up with a fairly natural looking terrain. There are all sorts of ways in which you can modify your height algorithm, using various noise and smoothing methods.

There's not really any math behind generating a simple terrain mesh. Not until you look at more complex methods, when you're after more interesting results. But you have to be comfortable with generating height maps first.

I agree with the people in the comments. It's very hard to do these kinds of things. I recommend looking into Perlin Noise more before you attempt anything. Another thing is to look into Simplex Noise, but I'd start with Perlin Noise, just classier :).

Hope this gets you started. Good luck!