Add Terrain and Water

Alexander Sellite 2026-07-26 14:35:41 +00:00
parent ce15c42a3e
commit 89daa7fc47

147
Terrain-and-Water.md Normal file

@ -0,0 +1,147 @@
# Terrain and Water
This page defines how contributors should build terrain and shorelines for NETFISHING.
## Do not create one giant island mesh
The complete world should not be one enormous Blender mesh.
Prefer one terrain mesh per major region:
- Village
- Starter Pond
- River
- Lake
- Marsh
- Coast
This allows each region to be:
- Replaced independently
- Edited without exporting the whole world
- Assigned separate collision
- Worked on by different contributors
- Rearranged in Godot
## What terrain may include
A regional terrain mesh may include:
- Broad land shape
- Shoreline
- Hills
- Slopes
- Main path shape
- Pond or lake basin
- Underwater slopes
- Visible seabed
Terrain should not include:
- Water surfaces
- Docks
- Bridges
- Trees
- Rocks
- Buildings
- Signs
- Fishable-water areas
- Recovery triggers
- Safe respawn points
- Interaction areas
Those remain separate in Godot or separate reusable assets.
## Water ownership
Blender owns:
- Shoreline shape
- Bank shape
- Underwater slopes
- Beaches
- Visible seabed
- Water-body openings
Godot owns:
- Water surface
- Water shader or material
- Fishable-water volume
- Recovery trigger
- Water animation
- Gameplay behavior
Do not export primary playable water as part of the terrain GLB.
## Water reference plane
A temporary reference plane may be used in Blender.
Recommended name:
REF_WaterLevel
Exclude it from the final export.
Suggested local vertical reference:
Land walking surface: Z = 0
Water reference: Z = 0.1 to 0.2
Shallow shoreline shelf: Z = -0.3 to -1
Main seabed: Z = -4 to -6
Do not place a flat solid slab immediately beneath the water surface.
## Region origins
Model regional terrain around a predictable local origin.
Recommended convention:
- Region center near `0,0,0`
- Ground near `Z = 0`
- Water reference near `Z = 0.2`
- Seabed between `Z = -4` and `Z = -6`
Godot places the region at its final world position.
Do not bake the complete worlds Godot coordinates into every regional Blender file.
## Terrain collision
Terrain collision should be simpler than the visual mesh.
A terrain Blender file may contain:
- `StarterPondTerrain_Visual`
- `StarterPondTerrain_Collision`
The collision mesh should:
- Remove small bumps
- Remove decorative details
- Use broad slopes
- Avoid tiny holes
- Avoid narrow triangles
- Avoid invisible lips
- Follow the visible shoreline reasonably closely
Do not use detailed terrain geometry directly as collision without testing it in Godot.
## Region composition in Godot
A region will typically contain:
StarterPondRegion
├── TerrainVisual
├── TerrainCollision
├── Water
├── FishingRegion
├── WaterRecovery
├── SafeRespawns
└── Props
Contributors normally provide visual models and requested collision.
Gameplay nodes are configured in Godot.