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>
This commit is contained in:
123
ROADMAP.md
Normal file
123
ROADMAP.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# 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 |
|
||||
Reference in New Issue
Block a user