From 89daa7fc47f864b4f3c2057e465a7bd746a0d5ae Mon Sep 17 00:00:00 2001 From: Alexander Sellite Date: Sun, 26 Jul 2026 14:35:41 +0000 Subject: [PATCH] Add Terrain and Water --- Terrain-and-Water.md | 147 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 Terrain-and-Water.md diff --git a/Terrain-and-Water.md b/Terrain-and-Water.md new file mode 100644 index 0000000..3d6aea8 --- /dev/null +++ b/Terrain-and-Water.md @@ -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 world’s 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. \ No newline at end of file