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

4.0 KiB

ArtLegend Roadmap


Phase 0 — Foundation (current)

Goal: Hybrid architecture running end-to-end. Compose hub launches LibGDX game screen with stylus data flowing.

Milestones

  • LibGDX scaffold (core + android modules)
  • shared/ module with ModuleType enum
  • GameHost routing by ModuleType
  • StylusInputBridge (AtomicReference, thread-safe)
  • StylusFrame data class (x, y, pressure, tiltRad, orientRad, isStylus)
  • MainActivity + Compose navigation (Hub → Detail → Game)
  • GameActivity reads ModuleType from Intent, posts stylus frames
  • LineCorridorScreen renders guided corridor + real-time stroke
  • Score calculation for Line Corridor (straightness + pressure consistency)
  • 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