Skip to content

Terrain Generation

Shape your world’s mountains, plains, and water. The terrain page also prepares height bands that later guide your climate/paint and spawning filters.

This page explains the Editor Terrain tab (parameters, workflow, tips) and how it interacts with flora/fauna seeding.

In this article


Prerequisites

  • A Unity scene (2022.3 LTS or Unity 6).
  • The add-on imported and the Terrain Generator window opened from the menu.
  • Optional: a Water prefab/plane in the scene for visual reference.

Tip

You can Undo terrain changes with the editor’s standard Undo (⌘Z on macOS).


Quick start

  1. Open Terrain tab.
  2. Set Width/Length, Min Height, Max Height, and Water Level.
  3. Pick a Seed (or click Randomize) and tweak Noise (Frequency, Octaves, Roughness).
  4. Click Generate.
  5. (Optional) Switch to Climate/Paint after generation to assign materials by height bands.

Terrain tab


UI tour

  • Terrain Size: world dimensions in meters (Width × Length).
  • Height Range: Min Height (floor) and Max Height (peaks).
  • Water Level: world Y where water is considered to begin. Areas below this are “underwater” for seeding filters.
  • Seed: controls the noise pattern deterministically.
  • Noise: Frequency / Octaves / Roughness (fractal shaping).
  • Buttons:
  • Generate — builds/updates the heightmap in-place.
  • Randomize Seed — picks a new seed and regenerates immediately (optional, depending on your setup).
  • Flatten / Clear — (if provided) reset the heightmap to a baseline.

Parameters

Group Field What it does Typical range Notes
Size Width / Length Horizontal size of the terrain in meters 256–2048 Bigger → more triangles/LOD considerations
Heights Min Height Vertical floor -50 to 50 Keep near 0 for flat worlds
Max Height Vertical ceiling (mountain tops) 100–600 200–400 feels natural for open worlds
Water Water Level World Y treated as water -20 to 60 Underwater spawn is skipped by default during seeding
Seed Seed Deterministic randomness any int Same seed → same shape
Noise Frequency Base wavelength 0.5–3.0 Higher = more, smaller features
Octaves Fractal layers stacked 2–6 More detail, higher cost
Roughness Amplitude falloff per octave 0.35–0.7 Lower = smoother; higher = rugged

Important

Water Level is a rule, not just visuals. Seeding logic reads it to avoid underwater flora/fauna, unless you explicitly override that in the seeding tab.


Water level & height bands

  • Anything with sampled height \< Water Level is considered water for spawning.
  • You can paint climate/texture with height bands, e.g.:
  • Top 10% → Rock
  • Next 40% → Soil
  • Bottom 50% → Grass
  • Later, flora can be configured to prefer specific bands (e.g., grass-only plants) and fauna can be filtered with min/max height when spawning (e.g., no deer underwater).

Note

Height bands are calculated after generation. If you re-generate the heightmap, repainting may be needed depending on your pipeline.


Noise & seeds

  • The generator uses a fractal noise (octaves layered) to form landmasses:
  • Frequency sets the base feature size.
  • Octaves adds finer detail each layer.
  • Roughness controls how strongly each octave contributes.
  • Seed feeds the noise PRNG. Use a seed you like and keep it noted to reproduce the same map later.

Tip

Click Randomize Seed a few times to browse candidate worlds quickly. When you like one, write down the seed before switching tabs.


Coastal archipelago

  • Min Height: -10, Max Height: 200, Water Level: 0
  • Frequency: 1.2, Octaves: 5, Roughness: 0.55
  • Many small islands with shallow shores—great for birds (pollinators) and shoreline plants.

Rolling plains

  • Min Height: 0, Max Height: 120, Water Level: -5
  • Frequency: 0.8, Octaves: 4, Roughness: 0.45
  • Gentle slopes, ideal for herbivores and broad grass coverage.

Mountain valley

  • Min Height: -20, Max Height: 400, Water Level: 10
  • Frequency: 1.6, Octaves: 6, Roughness: 0.62
  • High ridges with narrow riverbeds; predators get natural chokepoints.

Examples

Biome flavor Size (m) Heights (min/max) Water Noise (F/O/R) Notes
Archipelago 1024×1024 -10 / 220 0 1.2 / 5 / 0.55 Shallow bays; shoreline flora
Plains 1024×1024 0 / 140 -5 0.8 / 4 / 0.45 Stable herbivore population
Valley 2048×2048 -20 / 420 10 1.6 / 6 / 0.62 Strong vertical contrast

(F/O/R = Frequency / Octaves / Roughness)


Troubleshooting

“Most of my map is underwater.”
- Raise Min Height or Water Level.
- Reduce Max Height if cliffs look too extreme.
- Try a lower Frequency for broader landmasses.

“Seeding still puts things under water.”
- Ensure the seeding tab has “skip underwater” enabled (default).
- If you manually spawned objects, the filter doesn’t apply retroactively.

“Performance dips when I crank octaves to 8+.”
- High octaves add detail but cost CPU during generation. 4–6 is usually enough.
- For very large terrains, consider chunking and LOD for runtime visuals.

“My water plane is at Y=200 but Water Level is 0.”
- Either move the plane to match your configured Water Level or set Water Level to that Y.
- The logic uses Water Level (not the plane), so keep them consistent.