53 lines
2.2 KiB
Markdown
53 lines
2.2 KiB
Markdown
# E1.M2 — IsometricCameraController
|
|
|
|
## Summary
|
|
|
|
| Field | Value |
|
|
|--------|--------|
|
|
| **Module ID** | E1.M2 |
|
|
| **Epic** | [Epic 1 — Core Player Runtime](../epics/epic_01_core_player_runtime.md) |
|
|
| **Stage target** | Prototype |
|
|
| **Status** | Planned (see [dependency register](module_dependency_register.md)) |
|
|
|
|
## Purpose
|
|
|
|
**Authority:** [Client vs server](client_server_authority.md#e1m2-isometriccameracontroller) — camera is client-local for prototype; server does not use camera pose for gameplay checks.
|
|
|
|
Delivers a locked isometric camera that keeps the player readable during motion: follow behavior, discrete zoom bands, occlusion handling, and explicit **no rotation** so combat telegraphs and UI remain consistent with the vision for fixed isometric presentation.
|
|
|
|
## Responsibilities
|
|
|
|
- Locked isometric follow (camera does not freely orbit).
|
|
- Zoom bands and configuration-driven limits.
|
|
- Occlusion policy so critical gameplay elements remain visible where possible.
|
|
- Enforcement of no-rotation rules for the prototype camera model.
|
|
|
|
## Key contracts
|
|
|
|
| Contract | Role |
|
|
|----------|------|
|
|
| `CameraState` | Current follow target, zoom level, and policy flags for consumers (e.g. risk UX). |
|
|
| `ZoomBandConfig` | Data-driven min/max or discrete zoom steps. |
|
|
| `OcclusionPolicy` | Rules for fading, dithering, or offset when geometry blocks the view. |
|
|
|
|
## Module dependencies
|
|
|
|
- **E1.M1** — InputAndMovementRuntime: camera follows the player anchor derived from movement/position.
|
|
|
|
## Dependents (by design)
|
|
|
|
- **E6.M2** — Consent and risk UX may use camera-adjacent presentation; epic lists E1.M2 as a dependency for in-zone risk signaling and readability.
|
|
|
|
## Related implementation slices
|
|
|
|
See Epic 1 **Slice 2 — Locked isometric camera**: follow-center, zoom bands, occlusion policy, no rotation; optional telemetry such as throttled `camera_zoom_changed` and perf stress markers for occluders.
|
|
|
|
## Risks and telemetry
|
|
|
|
- Occlusion hiding telegraphs: tune policy early and include readability checklist in prototype gates.
|
|
|
|
## Source anchors
|
|
|
|
- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Core Epic Map, Epic 1.
|
|
- [Module dependency register](module_dependency_register.md)
|