Browser reference stack for PSX-era third-person adventure: fixed cameras, inventory puzzles, Box3D physics, host-authoritative P2P co-op, and a modular character harness. Ships the Ashgrove Precinct Level 1 investigation demo with a full cast and nine linked rooms.
41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
# Contributing
|
|
|
|
Thanks for looking at the project. A few conventions keep the monorepo tidy.
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm typecheck
|
|
pnpm test
|
|
```
|
|
|
|
## Packages
|
|
|
|
| Package | Responsibility |
|
|
| --- | --- |
|
|
| `client` | Game runtime (must stay free of Node-only APIs) |
|
|
| `server` | Auth, lobbies, signalling |
|
|
| `shared` | Types and schemas used by both ends |
|
|
| `tools` | Character pipeline (Node only) |
|
|
|
|
Put new gameplay types in `shared` before wiring them into client/server.
|
|
|
|
## Style
|
|
|
|
- TypeScript strict; no `any` without a comment why.
|
|
- Prefer small declarative room / item / cast data over one-off engine forks.
|
|
- Keep PSX constraints intentional: low poly, fixed cams, fog, nearest textures.
|
|
|
|
## Pull requests
|
|
|
|
1. One concern per PR when possible.
|
|
2. `pnpm typecheck && pnpm test` green.
|
|
3. Update `README.md` / `GDD.md` when behaviour or demo layout changes.
|
|
|
|
## Character assets
|
|
|
|
Prefer `pnpm cast` / the creator UI over hand-editing GLBs. Ship
|
|
`assets/characters/{id}.glb` plus `.recipe.json` (and albedo if textured).
|
|
Do not commit `.grok-texture-cache` or `*.analysis.json`.
|