Initial MVP: drivable RX-7 vertical slice + server-authoritative systems
CI / quality (push) Failing after 5m53s

- 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
This commit is contained in:
2026-07-21 23:30:53 -04:00
commit 9a2f2d4dc9
24 changed files with 1986 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
# Game Design Document — Fast & Furious: Tokyo Expressway (MVP)
## Vision
A progression-fantasy street racer. You start in a humble-but-iconic 1993 Mazda
RX-7 and claw your way up to hypercars on a neon-drenched Tokyo expressway at night.
Easy to pick up, satisfying to grind, fair to spend on.
## The one-sentence pitch
"Start in the RX-7, own the expressway."
## Core loop (the addictive 60 seconds)
1. **Spawn** on the expressway in your equipped car.
2. **Race** the time-trial down the highway to the finish line.
3. **Earn** cash + reputation for finishing.
4. **Spend** in the Garage: upgrade your current car or buy the next tier.
5. A faster car / better tune makes the next race feel better → back to step 1.
Daily rewards + rising rep gates give a reason to come back tomorrow.
## Pillars
- **Progression fantasy** — junker → hypercar, always a visible next goal.
- **Nighttime Tokyo vibe** — neon, speed, style.
- **Fair monetization** — spending accelerates the grind, never buys wins.
- **Server-authoritative** — no exploiting money or unlocking cars.
## MVP feature set (what's built)
- 5-tier car catalogue; **RX-7 is the free starter** (Tier 2).
- Drivable cars via VehicleSeat (proven, swap-in real mesh later).
- Procedural expressway map with kill-walls (can't leave the road).
- Garage + Dealership UI: view / buy / equip / upgrade.
- Upgrade system: Engine / Tires / Nitro, cost-scaled with diminishing returns.
- Solo time-trial race with server-validated payouts.
- Reputation gates on higher-tier cars.
- Daily login reward.
- Robust saving via ProfileStore (session-locked, reconciling).
- Basic movement anti-cheat.
## Deliberately deferred (see ROADMAP)
Traffic AI, head-to-head/drag racing, car customization cosmetics, crews/PvP,
full city map, mobile-tuned optimization pass, monetization products.
## Economy first-pass numbers (tune freely in `GameConfig`)
- Start: $1,500, 0 rep, own the RX-7.
- Race finish: +$650 (base+win) and +15 rep.
- Daily: +$300, +10 rep.
- Upgrades: base $500, ×1.6 per level, cap level 5 per part.
- Car tiers: Junk $800 → S15 $12k (50 rep) → R34 $45k (180 rep) → Hyper $250k (600 rep).
## Win condition / retention
No hard "end" — the chase up the tiers plus daily rewards and (future) leaderboards
supply the long tail. First-session goal: earn enough to feel one upgrade land
inside the first 10 minutes.
+62
View File
@@ -0,0 +1,62 @@
# 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).