neon-sprawl/docs/decomposition/modules/E1_M2_IsometricCameraContro...

51 lines
2.0 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
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)