# Random Continent Generating With Perlin Noise

## Recommended Posts

Barrett    174

Hello!

I have got a problem with random map generation.

I'm trying to generate a map based on fantastic Perlin noise.

Here my results

[url=http://imageshack.us/photo/my-images/208/84df35003a0f42f3ac21851.png/][/URL][url=http://imageshack.us/photo/my-images/16/396981a3b2684d059b8feed.png/][/URL][url=http://imageshack.us/photo/my-images/94/55b8feee3be543c6a7d6ce7.png/][/URL]

And now I want to create only a continent with nearest islands.

I tried to use Gauss function for reducing squares far from center and I tried to use a simple circular reduction for ignoring squares far from center.

Both of this ways gives me a map with good-loking maps, but with circular contour of reduction at edges of reduction zone.

Here an example

[url=http://imageshack.us/photo/my-images/191/a3b30e4f834642839a4b8f6.png/][/URL]

I need your opinion to solve this problrm. What another methodics I can use to create best random maps?

I'm using C#.

Denis

P.S. Sorry for my English

Edited by Barrett

##### Share on other sites
hupsilardee    491

Grow/shrink the circle using 1D perlin noise? Make the radius a function of the angle, something like this:

// PerlinNoise1D(x) returns a value in [0, 1]



##### Share on other sites
Barrett    174

I found a solution that look like good for me.

I 'm creating a radom "fuzzy" rectangle as reduction area/

Here are some examples

[URL=http://imageshack.us/photo/my-images/824/040ed4232e7d422d82c503b.png/][/URL][URL=http://imageshack.us/photo/my-images/836/7eb4aa7a04b24f138a8a945.png/][/URL]

And get some maps like that

[URL=http://imageshack.us/photo/my-images/507/7b16caaff11e45fcb9fd129.png/][/URL]

It looks nice.

Any ideas of improving this algorythm?

##### Share on other sites
Barrett    174

Grow/shrink the circle using 1D perlin noise? Make the radius a function of the angle, something like this:

// PerlinNoise1D(x) returns a value in [0, 1]



Oh, good idea! I will try it and upload here some results.

Edited by Barrett

##### Share on other sites
FLeBlanc    3141

Grow/shrink the circle using 1D perlin noise? Make the radius a function of the angle, something like this:

// PerlinNoise1D(x) returns a value in [0, 1]



Oh, good idea! I will try it and upload here some results.

Here's some results for you:

Since you are using a 1D function indexed by angle, the pattern ends up as a randomized star-like shape. You can't generate disconnected islands this way. All pixels lying along a given angle will use the same radius.

However, if you use a 2D noise function, indexed by (x,y) to modify the radius, you can get some disconnects:
radius=radius+noise2(x,y)


Pixels lying along a given angle won't use the same radius, so some pixels further out might use a shorter radius than pixels lying nearer in. This means that voids, or holes, open up, providing the necessary turbulence to create disconnects.

##### Share on other sites
Barrett    174

Oh, thank you so much!