echo docs tickets done 004-basic-rendering.md
2.2 kB · 44 lines
Markdown
at main

T004: Render Player in a Small Room #

Goal #

Render the first visible prototype scene on top of the fixed-step simulation and headless replay foundation: a player represented by a simple shape inside a small room.

Context #

This ticket should happen after the deterministic simulation substrate and headless text harness are in place. Rendering should observe simulation state, not drive it.

The visual target is intentionally primitive. The goal is to confirm the architecture supports drawing world state cleanly while preserving the ability to test the same behavior without graphics.

Requirements #

  • Render a simple room or arena.
  • Render a player marker from simulation state.
  • Move the player using normalized simulation input and fixed-step updates.
  • Use a player-follow camera.
  • Keep rendering independent from simulation mutation.
  • Add basic debug text for simulation tick, frame timing, and replay/digest state if already available.
  • Preserve hot reload behavior.
  • Do not introduce gameplay behavior that cannot also run through the headless simulation path.

Suggested Prototype Details #

  • Use simple Raylib rectangles/circles.
  • Use a single hard-coded room before building tile maps.
  • Draw the player as a circle with an aim/facing indicator if input already supports aim.
  • Keep the camera centered on the player, with smoothing deferred unless needed.
  • Convert simulation coordinates into render coordinates at the boundary. Avoid storing render-only floats in authoritative simulation state.

Acceptance Criteria #

  • Running the game shows a small room and a controllable player marker.
  • Player movement is simulation-driven and consistent across render frame rates.
  • Rendering uses current simulation state and optional interpolation state; it does not mutate gameplay state.
  • Debug overlay shows at least current simulation tick.
  • The same movement behavior remains testable through the headless harness.
  • just check passes.

Notes #

  • No fog of war, enemies, attacks, inventory, dungeon generation, or echo visuals in this ticket.
  • If interpolation is cheap after T002/T003, include it. Otherwise, defer it.