Making Forests and Caves Part 1 – Noise Maps

In this tutorial we will use the Noise Map Generation to build forest and cave maps. To avoid overwhelming articles, this series is split into multiple articles.

This Plugin provides various functions. Each function tries to imitate a work step that a map designer usually does when mapping. These steps are:

  • Map Layout (what is passable and what is not)
  • Shadings (e.g. darker grass, …)
  • Bioms (e.g. desert, snowland, ashes on a Worldmap)
  • A Path from A to B
  • Large objects or assets
  • Details (e.g. plants, flowers, small rocks, …)

With the exception of the first action (Map Layout), all other actions can be done in any order, even multiple times or omitted. We go through all of them and then I will explain how I combined all of them for each map type.

Map Layout

This generation technique uses a combination of multiple noise maps, that overlap. Usually, one noise map is used to define what tiles are passable / walls / ceiling, the second one is used to define different bioms, e.g. grass, long grass, water.., and the third can be used for various things or just left out.

Example: Cave
Example: Snow Forest
(I should have chosen a different tile than the white snow field, it’s difficult to see)

Stop. What have we done? We defined how ceiling and passable tiles look like. Looking at the screenshot, a generated Map could look like them. See, how darker or grass tiles will appear at the ceiling tiles.

By the way, this technique allows putting the same tile multiple times to affect the ratio. So you can put 2 ceiling tiles, and a total of 4 passable tiles, to get a 1:2 ratio.

Calling the Generator

Make a Map Event or Common. Transfer the Player to the Space Map. Then we call the Generator.

MV & MZ

This Plugin is compatible for both, MV and MZ. However, MZ users can enjoy the benefits of the new Plugin Commands, that are far easier to use. MV users must stick with Javascript Calls. On the other hand, due to the complexity of this Plugin, not every possibility is covered by the Plugin Commands. In that cases, MZ users may want to use the Javascript Calls instead of the Plugin Commands.

MZ only: Plugin Commands

Put these 3 Plugin Commands. You can use default settings for each.

MV & MZ: Javascript Call

You can use this JS Code snippet.

$noiseMapGenerator.noiseMap()
.enforceSingleArea()
.generate()
.spawnPlayerAt("here")
.finalize();

The line „enforceSingleArea“ enables some functions under the hood to make the Generator to output a, well you already got it, single area. You can use this line or leave it out.

We add „here“ as argument for „spawnPlayerAt“, but we will change it later.


From this point, our generated Map won’t look nicely yet. So let’s continue with the next Tutorial.