Files
moonlit-engine/README.md
T

38 lines
1.4 KiB
Markdown
Raw Normal View History

2026-10-18 00:56:29 +01:00
# moonlit-engine
2026-10-18 00:29:36 +00:00
A SCUMM-style, web-based adventure game engine. Data-driven: a game is a
JSON spec, not code. Engine only — game ideas and asset generation come
later.
- Design spec: [docs/SPEC.md](docs/SPEC.md)
## Quickstart
```sh
./tools/run_all.sh # validate example spec + 68 tests — must be green
node tools/validate_game.js example/game.json # check any game spec
python3 -m http.server 8080 # then open http://localhost:8080/web/index.html
```
The demo (`example/game.json` + `web/`) is a two-room skeleton — jetty,
tavern, a suspicious mug, a barkeep, one branching dialogue — deliberately
minimal: it exists to exercise every engine feature, not to be a game.
It ships with the *Moonlit Mangrove Calypso* track and its loop points.
## Layout
```
src/core/ headless engine (no DOM): loader, world, verbs, dialogue,
walkable, conditions, effects, save, events, engine
src/render/ thin integration layer: asset manifest, audio (loop points),
canvas renderer, HUD model — all testable without a browser
web/ browser harness: index.html + boot.js (~150 lines of glue)
example/ the skeleton game spec
tools/ validate_game.js, run_all.sh
tests/ node --test suite, one file per module
docs/ SPEC.md — the design spec
```
## Requirements
Node 20+ for tests/tooling. Any modern browser for the demo. No dependencies.