Files
settled-reach/docs/sprints/sprint-28/planning.md
T
2026-03-17 12:49:21 +01:00

104 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Sprint 28 — Planning Briefing"
description: "Character visuals planning workshop and character creation screen wireframe"
type: sprint
status: planning
sprint: 28
team: "planning"
---
# Sprint 28: Character Visuals — Planning Tasks
**Goal:** Move beyond placeholder art to final product candidate character visuals, from design specs through asset production and compositor implementation.
**Branch:** `planning`
**Agents:** Araminta (art direction — proposer), Gestalt (systems — proposer), Tyre (technical — proposer), Ozzie (player experience — proposer), Qatux (documenter — records decisions, updates domain files), SI (project manager — creates follow-up tickets, updates sprint assignments)
## New Tickets
| # | Title | Blocked by |
|---|-------|------------|
| #684 | Character visuals planning workshop | — |
| #685 | Character creation screen wireframe | #684 |
Use `tooling/db/ticket show <id>` for full details.
## Key Decisions
- `decisions/architecture.md` — D-134 (full character customisation: hair, clothing, colors at tile scale), D-146 (character creation preview: tile-scale sprite with heavy zoom — NO separate portrait system)
- `decisions/scope.md` — D-115 (character creation scope: superseded by Sprint 28 workshop), D-146 (tile-scale preview as the production approach)
- `decisions/content.md` — D-147 (aesthetic taste as character personality trait — shared root for cosmetic + apartment expression)
## Notes
### #684 — Character visuals planning workshop
This ticket gates all downstream work in the sprint. Nothing else starts until this workshop outputs its spec documents.
**Discussion structure — three rounds:**
**Round 1 — Inventory and constraints**
Each domain agent assesses their area:
- Araminta: What does tile-scale readable character art require? What layer order is needed? Color mesh regions — how are they defined per sprite type?
- Gestalt: What data model does the compositor (#693) need? How do layer stacks, color overrides, and 8-direction rotation map to a clean API?
- Tyre: What does the Godot client need from the compositor? How does it plug into the existing `EntityRenderer` (`client/scripts/rendering/entity_renderer.gd`) which currently uses a single `Sprite2D` per entity?
- Ozzie: What does the player need from the character creation screen? What are the emotional beats — first impression, customisation flow, confirmation?
**Round 2 — Specification proposals**
Agents propose specs per deliverable. Each proposal must be concrete enough for Araminta to start drawing:
- Body type spec: shapes, proportions, 8-direction rotation consistency rules, color mesh region definitions
- Face type spec: feature range, skin tone mesh regions, expression state requirements
- Hair style spec: silhouette guidelines, color mesh regions
- Expression state list: named states, how expressions layer over base face
- Scar/tattoo overlay spec: placement grid, additive blending rules
- Injury overlay spec: damage state progression (states TBD — min viable: undamaged / light / heavy)
- Clothing/apparel spec: layer ordering, occlusion rules, color mesh regions
- Compositor API spec: layer enum, color override struct, direction enum, Godot node architecture
**Round 3 — Convergence and sign-off**
Review proposals for consistency conflicts. Lock specs. Qatux records all decisions. SI creates any follow-up tickets identified during the workshop.
**Output specification — what this workshop must produce:**
1. `docs/design/character-visuals-spec.md` — complete spec document covering all layer types, color mesh regions, 8-direction rotation rules, layer ordering, and occlusion rules
2. `docs/design/compositor-api-spec.md` — Godot-side compositor data model and node architecture
3. Any new D-records filed to `decisions/` for architectural decisions made during the workshop (claim IDs before writing: `tooling/db/decision claim D <domain> "title"`)
4. Workshop outcomes captured in `docs/workshops/character-visuals/workshop-outcomes.md`
**Important — D-146 is locked:** The character creation screen uses tile-scale sprite at heavy zoom. No portrait render. Do not reopen this question. Ozzie's dissent is on record.
**Important — D-147 is locked:** The `aesthetic_taste` trait is the shared root for cosmetic choices and apartment expression. The compositor does not pipeline choices into the apartment generator. Do not reopen this question.
### #685 — Character creation screen wireframe
Produces the UI layout artifact that drives client implementation (#694).
**Scope:** Collaborative design between the planning team and Jeroen (project lead) using Frame0 (or equivalent wireframing tool). This is a design document, not a code deliverable.
**Coverage:**
- Layout of all layer selection controls (body, face, hair, clothing, accessories, scars, tattoos)
- Preview pane position and scale (tile-scale sprite at heavy zoom — D-146)
- Color picker / palette selector UX
- Randomise button placement
- Navigation: how player confirms, goes back, returns to main menu
- Keyboard navigation flow (must support controller/keyboard-only — existing character_select.gd is keyboard-friendly)
**Output:** `docs/design/character-creation-screen-wireframe.md` — annotated wireframe (or image file at `docs/design/character-creation-wireframe.png` if drawn). This is the acceptance input for #694 (Character creation screen, client team).
**Dependency note:** #685 must complete before #694 starts. The wireframe IS the spec for the client implementation.
## Dependency Chain
```
#684 (workshop) → #685 (wireframe) → unblocks #694 (client: creation screen)
#684 (workshop) → unblocks ALL visual team tickets (#686#692)
#684 (workshop) → unblocks #693 (client: compositor) via #686 (body type sprites)
```
## PR Workflow
When ready to submit planning artifacts, create a PR with `tea` CLI. **All flags are required** to avoid TTY prompts (see `CLAUDE.md` "Gitea access" section):
```bash
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "chore(meta): character visuals planning workshop outputs" --description "body" --base main --head planning
```