chore: share game-studio hermes plugin
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Three WebGL Architecture
|
||||
|
||||
This is the default 3D structure for the plugin.
|
||||
|
||||
## Recommended module split
|
||||
|
||||
```text
|
||||
src/
|
||||
game/
|
||||
simulation/
|
||||
content/
|
||||
input/
|
||||
save/
|
||||
render/
|
||||
app/
|
||||
createRenderer.ts
|
||||
createScene.ts
|
||||
createCamera.ts
|
||||
createLoop.ts
|
||||
loaders/
|
||||
loadGltf.ts
|
||||
loadEnvironment.ts
|
||||
loadTextures.ts
|
||||
objects/
|
||||
materials/
|
||||
lights/
|
||||
post/
|
||||
adapters/
|
||||
renderBridge.ts
|
||||
physics/
|
||||
world.ts
|
||||
colliders.ts
|
||||
sync.ts
|
||||
diagnostics/
|
||||
debugFlags.ts
|
||||
perf.ts
|
||||
ui/
|
||||
hud/
|
||||
menus/
|
||||
overlays/
|
||||
```
|
||||
|
||||
## Responsibilities
|
||||
|
||||
- `simulation/`: rules, state, AI, progression, save data
|
||||
- `render/app/`: renderer, scene, camera, resize, context lifecycle
|
||||
- `render/loaders/`: GLTF, compression, texture, and environment loading
|
||||
- `render/objects/`: scene graph construction and disposal
|
||||
- `render/materials/`: material setup and shader boundaries
|
||||
- `physics/`: Rapier world and simulation bridge
|
||||
- `diagnostics/`: performance probes and GPU debugging hooks
|
||||
- `ui/`: DOM HUD and menus
|
||||
|
||||
## Rules
|
||||
|
||||
- Scene graph objects are not the source of truth for game rules.
|
||||
- Keep camera logic explicit and testable.
|
||||
- Handle resize and context-loss as real browser concerns.
|
||||
- Keep high-density UI in DOM even when the world is fully 3D.
|
||||
- Treat GLB or glTF 2.0 as the default content format.
|
||||
- Add physics and diagnostics as real subsystems, not temporary one-off utilities.
|
||||
Reference in New Issue
Block a user