GameMaker (2.0 - 2.2.x)
Icon

Procedural Terrain Generation

Chaz13

You must be logged in to obtain assets

Description

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).

Age Rating: None

Version

GMS2 - Version 1.0.0. Published April 18, 2017

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait