# Roadmap — realistic solo-dev plan This replaces the original doc's optimistic 12-week timeline. It assumes **one part-time developer learning as they go**. Ship the vertical slice, then layer polish. Each milestone is independently playable/testable. > Rule of thumb: the original guide's "weeks" are really "milestones." Expect > **4–8 months** of part-time work to a polished, launch-ready MVP. That's normal. > The goal of this order is that you always have something that *runs*. --- ## ✅ M0 — Vertical slice (DONE — this repo) Drive → race → earn → buy/upgrade → **save**. Server-authoritative. Placeholder RX-7 block car, procedural expressway. Proves the whole stack end to end. ## M1 — Make it feel good (the real work) - [ ] Import the **real RX-7 mesh**; swap `CarManager.buildCarModel` only. - [ ] Adopt a proven **constraint chassis** (A-Chassis or modern equivalent) for real suspension/grip instead of the raw VehicleSeat. Do NOT hand-roll physics. - [ ] Tune driving feel: acceleration curve, grip, camera. - [ ] Sound: engine loop, boost, tire screech. **Exit test:** the RX-7 is genuinely fun to just drive around. ## M2 — Race depth - [ ] Checkpoints + lap/segment timing (extend `RaceManager`). - [ ] Personal best times saved to profile. - [ ] A second race type (drag / point-to-point). - [ ] Countdown + results screen. ## M3 — Content & progression polish - [ ] Flesh out the 25-car catalogue across tiers. - [ ] Car customization cosmetics (rims, wraps, neon) — visual only for MVP. - [ ] Daily missions (not just login): "win 3 races", "earn $5k". - [ ] Tutorial for the first 10 minutes. ## M4 — Systems hardening - [ ] Leaderboards (OrderedDataStore: top rep, fastest times). - [ ] Anti-cheat pass 2 (validate race times against car stats). - [ ] DataStore stress test / backup-version restore drill. - [ ] Performance pass: StreamingEnabled tuning, part budget, mobile test. ## M5 — Monetization (only after it's fun) - [ ] 2× Cash gamepass (the classic first product). - [ ] VIP membership (daily bonus, cosmetic-only exclusives). - [ ] Nitro/boost dev-products — **never** pay-to-win on ranked races. - [ ] Receipt handling via ProfileStore `LastSavedData`. ## M6 — Traffic AI (deferred hardest system) - [ ] Start with **spline-following** dummy cars on fixed paths (cheap, no lag). Only attempt true pathfinding AI if performance allows. - [ ] Spawn/despawn by distance to keep part count sane. --- ## Standing engineering rules - Every change must pass `stylua --check`, `selene`, and `rojo build` (CI enforces). - Keep the client dumb: it requests, the server decides. No exceptions for money. - Add new tunables to `GameConfig`, not scattered magic numbers. - Add a save key by adding it to `ProfileTemplate` (auto-reconciles); never remove a key without a migration. - Test in Studio after every server change (ProfileStore uses a mock store there).