Skip to content

Map and Biomes

Dominik Burger edited this page Jun 10, 2026 · 6 revisions

Map and Biomes [CURRENT]

Map Generation

Three-stage pipeline, ported from the original Java game. Each stage feeds the next, all driven by one seed:

flowchart LR
    S([seed]) --> A[1 · DLA cave carving<br/>carve until ~35% open]
    A --> B[2 · Voronoi biomes<br/>nearest-seed + smoothing]
    B --> C[3 · Tile placement<br/>best color-match × 4 rotations]
    C --> M([identical map<br/>server + every client])
Loading
  1. DLA cave carving — Diffusion-Limited Aggregation carves walkable space until ~35% of the map is open.
  2. Voronoi biomes — biome seeds scatter; each tile takes its nearest seed's biome (with smoothing passes).
  3. Tile placement — for each walkable cell, score candidate tiles from that biome by matching color profiles to neighbors, trying 4 rotations (ROT_MAP), and place the best match.
Parameter Value
Map size 400 × 400 tiles
Walkable target 35%
Tile size / overlap / effective 128 / 48 / 80 px
Monster density 0.5% of walkable tiles
Spawned monster levels Lv. 1–5

Seed-deterministic (P0-T2 done): generation takes a seed and a seeded RNG, so the same seed reproduces an identical map on server and every client — verified by a determinism test. The online view draws culled, biome-colored tiles and a corner minimap; main-view camera zoom is a remaining polish item.

Fog of war (PT1-T08, both modes): the map starts unexplored. Moving reveals a 6-tile radius around you, and revealed ground stays revealed for the rest of the run. Unexplored cells render dark on the main view — with a soft gradient edge that eases into the explored area rather than a hard line — and the corner minimap only paints terrain you've actually walked near, so the map fills in as you explore. Tracked client-side per run; single-player and online behave identically.

Biomes

Biome definitions (name · rarity · size). Biomes are purely visual regions — they color the world + minimap and name your current area, but do not modify movement speed (per-biome speed multipliers were removed 2026-06-09; movement is the same speed everywhere). Biome assignment is seeded + deterministic.

The 12 built-in biomes below are the baseline. Biomes (and the floor tiles within them) can also be AI-generated as data the same way as monsters and items — an inspiration agent gives a 2-4 word region/ground concept, a designer turns it into a biome (name + minimap tint) or a tile (name + base colour the renderer textures). Generated biomes augment this baseline and generated tiles join the world generator's tile pool; the server's pool is delivered to every client so the seeded map stays identical across them.

Biome Rarity Size
Forest 30 80
Plains 40 60
Desert 40 60
Tundra 50 80
Volcano 70 60
Swamp 40 60
Metal 70 60
Stone 30 60
Mushroom 70 40
Astral 90 40
Water 90 80
Crystal 60 50

Clone this wiki locally