diff --git a/Modeling-and-Naming-Standards.md b/Modeling-and-Naming-Standards.md new file mode 100644 index 0000000..d32eb43 --- /dev/null +++ b/Modeling-and-Naming-Standards.md @@ -0,0 +1,153 @@ +# Modeling and Naming Standards + +This page defines basic geometry, naming, origin, and scene-organization rules. + +## Geometry priorities + +Prioritize: + +- Strong silhouettes +- Large readable facets +- Broad bevels +- Slightly exaggerated proportions +- Clean topology +- Simple foliage clusters +- Thick supports and posts +- Generous doors and walkways + +Avoid: + +- Needle-thin triangles +- Tiny bevel segments +- Invisible interior faces +- Duplicate faces +- Coplanar geometry +- Non-manifold holes +- Excessive subdivision +- Hidden geometry inside solid objects +- Details too small to see from the gameplay camera + +## Naming files + +Use lowercase file names with underscores. + +Good examples: + +- `pond_rock_small.glb` +- `dock_post_round.glb` +- `mushroom_cluster_red.glb` +- `starter_pond_terrain.glb` +- `fishing_shop_wall_window.glb` + +Avoid: + +- `Cube.glb` +- `Final.glb` +- `FinalFinal2.glb` +- `NewObject.glb` +- `Untitled.glb` + +## Naming Blender objects + +Use descriptive Blender object names. + +Examples: + +- `PondRockSmall_Visual` +- `PondRockSmall_Collision` +- `DockPostRound_Visual` +- `StarterPondTerrain_Visual` + +Avoid leaving default names such as: + +- `Cube` +- `Cube.001` +- `Cylinder.003` +- `Object` +- `Mesh` + +## Origins and pivots + +Place object origins intentionally. + +Recommended origin positions: + +| Asset | Origin position | +|---|---| +| Rock | Bottom center | +| Tree | Center of trunk base | +| Mushroom | Bottom of stem | +| Bench | Bottom center | +| Dock section | Logical snapping corner or center | +| Wall panel | Bottom center or bottom corner | +| Door | Bottom center, or hinge if animated | +| Sign | Bottom center or mounting point | + +Do not leave an origin several meters away from the object. + +## Shading + +Use either: + +- Flat shading +- Carefully controlled smooth shading +- Marked sharp edges where needed + +Avoid accidental smooth shading across hard corners. + +Always inspect the exported GLB in Godot. A model may shade differently after import. + +## Reusable modules + +Prefer modular pieces for structures. + +Example building kit: + +- `wall_plain` +- `wall_window` +- `wall_door` +- `corner_post` +- `roof_panel` +- `roof_end` +- `awning` +- `door` +- `window` +- `sign_bracket` + +Example dock kit: + +- `dock_straight` +- `dock_corner` +- `dock_end` +- `dock_post` +- `dock_ramp` +- `dock_stairs` + +Do not create dozens of tiny modules unless they are needed. + +## File organization + +Use the following structure unless an issue specifies otherwise: + + art/ + ├── source/ + │ ├── environment/ + │ ├── props/ + │ ├── structures/ + │ ├── characters/ + │ ├── fish/ + │ └── items/ + └── exported/ + ├── environment/ + ├── props/ + ├── structures/ + ├── characters/ + ├── fish/ + └── items/ + +Example: + + art/source/props/rocks/pond_rocks.blend + art/exported/props/rocks/pond_rock_small.glb + art/exported/props/rocks/pond_rock_medium.glb + art/exported/props/rocks/pond_rock_large.glb \ No newline at end of file