godot-genre-sandbox
Installation
SKILL.md
Genre: Sandbox
Physical simulation, emergent play, and player creativity define this genre.
NEVER Do (Expert Anti-Patterns)
Performance & Scalability
- NEVER use individual
RigidBodynodes for every block; strictly use Static Colliders for the world and reserve physics for dynamic props. - NEVER simulate the entire world every frame; strictly process "Dirty" chunks with active changes. Sleeping chunks must consume zero CPU.
- NEVER update
MultiMeshbuffers every frame; strictly batch changes and only rebuild the buffer when a modification completes (e.g., player stops painting). - NEVER use standard Godot
Nodesfor every grid cell; strictly use PackedInt32Arrays or typed Dictionaries to keep RAM overhead minimal. - NEVER raycast against every individual voxel for placement; strictly use Grid Quantization (
floor(pos/size)) for direct O(1) cell calculation. - NEVER render every block face in a chunk; strictly generate an
ArrayMeshthat only pushes visible exterior faces to the GPU (Culling/Greedy Meshing).
Data & Persistence
- NEVER save raw arrays of every block transform; strictly use Run-Length Encoding (RLE) (e.g., "Air x 50,000") to compress uniform spaces.
- NEVER load massive terrain chunks synchronously; strictly use
ResourceLoader.load_threaded_request()to prevent frame stutter. - NEVER use standard text
.tscnfiles for voxel datasets; strictly use binary.resfiles for 10x faster parsing. - NEVER ignore Floating-Point Precision limits (32,768 units); strictly implement floating-origin shifting for massive worlds.