57 lines
1.2 KiB
Markdown
57 lines
1.2 KiB
Markdown
# Phaser Architecture
|
|
|
|
This is the default 2D structure for the plugin.
|
|
|
|
## Recommended module split
|
|
|
|
```text
|
|
src/
|
|
game/
|
|
simulation/
|
|
state.ts
|
|
systems/
|
|
rules/
|
|
content/
|
|
encounters/
|
|
items/
|
|
maps/
|
|
input/
|
|
actions.ts
|
|
bindings.ts
|
|
assets/
|
|
manifest.ts
|
|
phaser/
|
|
boot/
|
|
scenes/
|
|
BootScene.ts
|
|
MenuScene.ts
|
|
BattleScene.ts
|
|
view/
|
|
sprites/
|
|
fx/
|
|
camera/
|
|
adapters/
|
|
sceneBridge.ts
|
|
ui/
|
|
hud/
|
|
menus/
|
|
overlays/
|
|
```
|
|
|
|
## Responsibilities
|
|
|
|
- `simulation/`: source of truth for rules and saveable state
|
|
- `content/`: authored data and encounter configuration
|
|
- `input/`: action map and physical control bindings
|
|
- `assets/`: stable manifest keys and asset metadata
|
|
- `phaser/scenes/`: scene orchestration, not game rules
|
|
- `phaser/view/`: render and effect helpers
|
|
- `ui/`: DOM HUD, menus, and narrative panels
|
|
|
|
## Rules
|
|
|
|
- Phaser scenes read from and write to the simulation through a defined bridge.
|
|
- Game state changes should not depend on sprite or tween lifetime.
|
|
- Camera behavior should be isolated from combat or movement rules.
|
|
- Use DOM for dense text and settings surfaces.
|