Files
artlegend/ROADMAP.md
bill ac81ec51f4 Sprint 1 complete: hybrid Compose + LibGDX architecture building
Full AL-001 through AL-008 implementation: shared/ module with ModuleType
enum, GameHost routing, StylusInputBridge, LineCorridorScreen with live
stroke rendering, LineScore (straightness + anglePrecision), score returned
to Compose hub via ActivityResult. Fixes LineScore field mismatch
(pressureConsistency → anglePrecision) caught during AL-009 build check.
Adds .gitignore and handoff notes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 19:21:48 -06:00

124 lines
4.0 KiB
Markdown

# ArtLegend Roadmap
---
## Phase 0 — Foundation (current)
**Goal:** Hybrid architecture running end-to-end. Compose hub launches LibGDX game screen with stylus data flowing.
### Milestones
- [x] LibGDX scaffold (core + android modules)
- [x] `shared/` module with `ModuleType` enum
- [x] `GameHost` routing by `ModuleType`
- [x] `StylusInputBridge` (AtomicReference, thread-safe)
- [x] `StylusFrame` data class (x, y, pressure, tiltRad, orientRad, isStylus)
- [x] `MainActivity` + Compose navigation (Hub → Detail → Game)
- [x] `GameActivity` reads `ModuleType` from Intent, posts stylus frames
- [x] `LineCorridorScreen` renders guided corridor + real-time stroke
- [x] Score calculation for Line Corridor (straightness + pressure consistency)
- [x] Score displayed on return to ModuleDetail (ScoreCard)
---
## Phase 1 — Line Corridor MVP
**Goal:** Shippable first module. Players can train, score, and see improvement over sessions.
### Milestones
- [ ] Corridor generation (random angle, configurable width)
- [ ] Stroke capture and rendering (LibGDX ShapeRenderer)
- [ ] Straightness score algorithm (RMS deviation from ideal line)
- [ ] Pressure consistency score (variance from target pressure profile)
- [ ] Difficulty progression (narrowing corridor, longer strokes)
- [ ] Session summary screen (score + streak)
- [ ] Local persistence (Room or DataStore) for scores per session
- [ ] Progress screen populated with real data (last 7 sessions graph)
---
## Phase 2 — Pressure Ramp Module
**Goal:** Second module ships. Shared infrastructure for module scoring is solid.
### Milestones
- [ ] Pressure Ramp screen: draw a stroke matching a target pressure curve
- [ ] Pressure curve rendering (target vs actual overlay)
- [ ] DTW (Dynamic Time Warping) score for pressure curve matching
- [ ] Unified `ModuleScore` data model shared across modules
- [ ] Difficulty tiers (linear ramp → S-curve → arbitrary profile)
---
## Phase 3 — Curve Sculptor + Vector Snap
**Goal:** Full 4-module training suite. App is content-complete for v1.0.
### Milestones
- [ ] Curve Sculptor: hit bezier control points with stylus
- [ ] Vector Snap: tap precise endpoints within tolerance radius
- [ ] Per-module difficulty levels stored in settings
- [ ] Global XP system across all modules
---
## Phase 4 — Monetization Ready
**Goal:** In-app purchase infrastructure. Free tier vs paid modules enforced.
### Milestones
- [ ] Google Play Billing integration
- [ ] Entitlement check before launching `GameActivity`
- [ ] "Line Corridor" free; others gated behind Skill Pack purchase
- [ ] Pro subscription tier (all modules + cloud sync)
- [ ] Settings screen: manage subscription, restore purchases
---
## Phase 5 — Cloud + Social
**Goal:** Cross-device sync and community features.
### Milestones
- [ ] Firebase Auth (Google sign-in)
- [ ] Firestore sync for scores and progress
- [ ] Global leaderboard per module
- [ ] Weekly challenge mode (fixed seed corridor, global rank)
- [ ] Share score card (image export)
---
## Per-Module Milestones Detail
### Line Corridor
| Milestone | Description |
|-----------|-------------|
| Skeleton | Screen renders, bridge connected |
| Corridor | Guided corridor drawn, stroke captured |
| Score | Straightness + pressure score calculated |
| Persist | Scores saved locally |
| Polish | Animations, streak counter, SFX |
### Pressure Ramp
| Milestone | Description |
|-----------|-------------|
| Skeleton | Screen renders |
| Curve target | Target pressure profile displayed |
| Score | DTW score vs target |
| Difficulty | 3 difficulty tiers |
### Curve Sculptor
| Milestone | Description |
|-----------|-------------|
| Skeleton | Screen renders |
| Bezier display | Target bezier curve shown |
| Stroke eval | How close did the stroke follow the curve? |
| Control points | Optional control point hints |
### Vector Snap
| Milestone | Description |
|-----------|-------------|
| Skeleton | Screen renders |
| Target points | Random endpoint targets displayed |
| Hit detection | Distance from target scored |
| Speed bonus | Faster accurate taps = higher score |