Design: Biomes — a hand-authored patchwork world (ground + fixtures + move-cost) #135
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo#135
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Design doc:
docs/game-design/systems/biomes.md(agreed; reviewed by a 4-persona critical panel).Bible updated:
docs/game-design/vision.md→ "Designed, not yet built".From the player's POV
The world stops being one endless grass field. Walking it, the ground under you changes —
grassland → dry savanna → cracked salt flats → black volcanic plain → frosted tundra — each region
with its own ground texture and its own scatter of plants and rocks, so you learn to read where you
are without a map label. Some things (pine, boulder, cactus) block your path like trees; some ground
drags at you — the marsh is crossable but slow, a real shortcut-or-detour choice. MVP is
atmosphere + legibility + that one traversal trade-off. Biome identity is the reserved key for future
creature-spawns and gathering (designed-for, not built here).
Six-lens summary
(biome ground: walkable + move-cost; server fixture: blocks-walk + blocks-sight; client-only
decorative scatter). Two-layer map (ground char + object char). No
ProtocolVersionbump(terrain never crosses the wire — verified against
ServerMessage).max(from,into), applied toplayers and creatures), and line-of-sight all validated server-side; a modified client cannot
cross marsh fast. Client scatter is render-only and MUST NEVER feed a server rule.
(contact shadow) + red target-cursor, tall fixtures fade like trees (#66), marsh per-step ripple +
one-time notice, border edge-scatter feathering (bare seams rejected).
max(), player terraingriefing closed by construction, creature-kiting amplification flagged to the combat/AI track.
proc-gen/flying-movers deferred.
Definition of Done (player-observable)
obvious repeat grid) and its own scatter.
over a fixture reads blocked (red).
speed; a creature chasing through marsh is slowed equally (timed run) — not a mob-favored trap;
first marsh step gives a one-time notice + per-step ripple (never reads as lag).
Authoring prerequisites (block art, independent of code)
Technical breakdown to follow (separate review).
Technical breakdown of this design into implementation slices (order: B -> C/D/E, A in parallel):
Deferred follow-ups (separate issues when needed): creature one-step side-step (anti-kiting, combat/AI track), move-rejected bump cue, blend/transition tiles, region names, spawns-by-biome, gathering-by-biome.
⏭️ Heads-up @andrea: #143 (full tiledata data-file) is being implemented now as the foundation for the #113 map editor (owner's call). It absorbs
TerrainInfo+BiomeVisuals+StaticCatalog+ the terrain legend into onecontent/tiledata.txtand replaces theTerrainTypeenum with string ids. This touches the #142 foundation this issue builds on — when you pick it up you'll rebase onto the new model (terrain = string id, flags/art/tint read fromTileData). NoProtocolVersionchange. Design + invariants recorded on #143.Chiudo: il design dei biomi è stato consegnato. Figli: B (#136) e D (#139) chiusi; A (#137) e C (#138) completati e chiusi in questa stessa tornata; E (#140) ridotta al solo residuo di feathering. Il doc
docs/game-design/systems/biomes.mdresta il riferimento. Chiudo il parent di design — il lavoro residuo vive su #140.