Files
tokyo-wangan-racing/docs/ROADMAP.md
T
jesse 9a2f2d4dc9
CI / quality (push) Failing after 5m53s
Initial MVP: drivable RX-7 vertical slice + server-authoritative systems
- Rojo + Wally project; ProfileStore (loleris) for safe saves
- Shared: GameConfig, Cars (RX-7 free starter), ProfileTemplate, Remotes
- Server: DataManager, Economy, CarManager, RaceManager, MapBuilder, AntiCheat
- Client: neon HUD + Garage/Dealership UI (buy/equip/upgrade), race/daily
- Procedural Tokyo expressway (spawn pad, finish line, neon pylons, kill walls)
- CI workflow (Gitea/GitHub), Makefile, selene+stylua clean, rojo builds
- Docs: README, GDD, realistic solo ROADMAP
2026-07-21 23:30:53 -04:00

63 lines
2.9 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.
# 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).