GameMaker Studio 2

Procedural Terrain Generation


Contact Publisher


A set of scripts/examples for a fully-fledged terrain generator, based on perlin noise.

Allows the generation of a vast variety of world attributes - from elevation, to temperature, to wind strength and direction. Any of the values can be propagated by another. In other words, you can generate the terrain elevation, and from this decide upon the temperature. The temperature gradient can be used to define a wind speed, and then you can propagate moisture and temperature using the wind direction - forming very realistic worlds!

At its core, it's a number of scripts based around generating attributes using perlin noise, filtering and propagation. The final maps can then be created depending on a mix of any number of the attributes. Is it low elevation, and extremely dry? Maybe it's a desert! Mid-elevation, very wet and with reasonably high temperature? Set it as s jungle.

There's no limit to what the basic framework can be used for. There are two examples included:

1) An island generator. Generates mountainous islands, where the moisture is propagated by the wind. Jungles, tundra, and forests are decided based upon temperature and moisture levels.

2) A desert generator. Generates slowly changing sand dunes with some mountains. Perlin noise is used to determine the location of oil deposits within the terrain, and sandstorms are formed based upon the wind speed, which is based upon temperature gradients.

The best part of generating complex, interlinked terrains in this way, is that changing any parameters will result in interesting changes the the generation - but all terrains generated with the same parameters will have the same basic attributes.

The examples show 2D, top-down uses of the engine, but there's no reason it can't be extended to work with 3D worlds such as in minecraft, or side-view games like Terraria.

The examples also contain rudimental drawing code, to display the results.

For support, please PM me on the gmc. chaz13

End User Licence Agreement (EULA).

Version 1.0.0. Published April 18, 2017

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


Anonymous 27 May 2019


Alexander R 08 April 2019

Just what I needed!

This asset is flexible enough to suit my ambitions.
You can already see how natural the end result looks!


Chaz13 (Publisher) 04 July 2019

Glad you've found it useful!


Justin W 04 March 2019

Just great

The code is clear & well commented. I love how this project is thoughtfully structured, it makes it powerful and easy to follow Ex:

- Create an elevation grid
- Pass it to the noise generator script with a couple of attributes
- Run the included normalise utility script for smoothness.
* Now you have a grid describing elevation.

- Create a heat grid
- Pass it to a generator script along with the elevation grid and attributes
- Pass the result to the normalise utility script for smoothness
* Now you have a grid describing heat across your map

... and so on is the pattern for wind & moisture as well. You really can't ask for more clarity than that and the results look fantastic to boot.


Chaz13 (Publisher) 04 July 2019

Thanks for the great review! :)

Package contents

Loading, please wait

What is the issue?

Back to Top