# 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)