Garage and tuning — v0.3.0 experimental foundation¶
The garage is an offline, in-game-credits-only prototype. All vehicles are fictional: no third-party branded models, assets, audio, or manufacturer marks are shipped. These are handling and basic geometric silhouette presets on the same engine-primitive starter chassis, not six fully modeled production cars.
Vehicle presets¶
| Profile | Credits to unlock | Acceleration | Lateral grip | Top speed | Starter shape |
|---|---|---|---|---|---|
| Arrow | Free | 1.00× | 1.00× | 1.00× | Baseline canopy |
| Kestrel | 600 | 1.12× | 0.94× | 0.98× | Longer, lower canopy |
| Phantom | 1,200 | 0.96× | 1.12× | 1.08× | Shorter, taller canopy |
| Tempest | 1,800 | 1.18× | 0.89× | 1.14× | Long nose, low wing |
| Glider | 2,500 | 1.00× | 1.23× | 1.04× | Short front, extended rear |
| Nova | 3,400 | 1.08× | 1.08× | 1.20× | Wider wing, balanced canopy |
These multipliers are applied to the starter force-based rigid-body controller. Physics tuning is not a calibrated Chaos Vehicles tire/suspension simulation.
Earned credits and upgrades¶
Credits are awarded only when an offline event completes. Circuit events award 450 base credits; one-lap Time Attack awards 180 base. Faster times grant up to 150 bonus credits and a run with zero manual recoveries earns another 50. The balance is capped to prevent overflow. Purchases and upgrades require sufficient earned credits and cannot charge twice for an owned car.
Both Engine and Grip upgrades have three levels shared across the garage. Engine upgrade costs are 200, 350, 500 credits; Grip costs 150, 275, 400 credits. Engine upgrades add 6% acceleration and 2% top speed per level; Grip upgrades add 5% lateral assistance per level. The levels are not paid entitlements. Donations do not affect the garage.
Prototype controls¶
| Key | Effect |
|---|---|
| Q | Unlock next locked fictional vehicle if credits permit |
| E | Select next owned vehicle |
| U | Purchase next Engine upgrade |
| I | Purchase next Grip upgrade |
| 3 / 4 | Circuit / Time Attack event |
The HUD shows selected vehicle profile, upgrade levels, credit balance and next unlock price. There is no finished garage menu. Gameplay control and mobile touch UI have not been playtested.
Unreleased v0.5.2 career-event transaction lock¶
A timed active career event locks garage editing until the finish. The E, Q, U, and I shortcuts do not switch car, unlock a car, or purchase engine/grip tuning during the event. They show a short explanatory garage message instead. This keeps career objectives tied to the same start-of-event car/tuning and does not consume credits accidentally.
A completed career event permits editing again; restarting it re-locks
the garage. Quick-race garage behavior remains unchanged for compatibility.
CareerGaragePolicy.h contains the portable rule and the four Unreal
GameMode handlers enforce it before touching the garage or writing
SaveGame. Installed UE 5.8 and Android/Win64 QA still needed.
Unreleased v0.5.2: garage edits after a finished career event¶
After finishing a career race, the player can select another owned car or upgrade it. Starting a new attempt then snapshots the newly selected car for unrestricted events; for vehicle-specific challenges, the game re-equips the required owned car and saves that selection before resetting the finished race. A disk write failure rejects the replay and restores the previously selected car and credits without erasing the finish. These semantics are covered by C++20 portable staging tests and remain unqualified on actual Unreal runtime/device hardware.
Persistence and validation¶
The original Unreal SaveGame TotalCredits field remains the balance store for existing profiles. New optional fields preserve the owned vehicle bitmask, selected profile, engine level and grip level. The portable garage state repairs missing or invalid ownership, clamps upgrade levels, rejects invalid IDs and never allows negative balances or arithmetic overflow. Tests run in the GitHub C++20 matrix. SaveGame serialization/migration must be checked in a real Unreal environment.
Next work¶
- Original authored vehicle meshes, collision and skeletal wheel assets, proper Chaos vehicle movement
- Garage menus with mouse/gamepad/touch navigation, confirmation and accessibility
- Vehicle-specific parts, physics balancing and reasonable racing-event difficulty
- Full Unreal Editor, Win64 and Android playtests
See engineering status and release qualification.
v0.3.1 transaction feedback and defensive migration¶
Garage purchases and selection now use the same portable GarageState lookup rules, rather than independent assumptions about car order in the Unreal game mode. The HUD displays whether a purchase or upgrade succeeded, lacked credits, or is already maxed. The UI also previews the next Engine and Grip upgrade prices (zero means fully upgraded).
Malformed negative ownership masks are treated as the starter-car-only state, avoiding the previous risk of granting every vehicle due to a sign bit. Valid positive known ownership bits remain preserved. The portable tests also check that old zero/missing profile fields do not remove the Arrow starter car.
These are code-level behaviors only; real Unreal SaveGame serialization, controller mappings and HUD rendering require manual editor/hardware verification.
v0.3.2 live handling optimization¶
The garage change key consists of selected vehicle, engine level and grip level. Earning credits or unlocking an unselected car does not cause per-frame physics tuning changes. A car selection, an upgrade, or replacement/respawn of the player pawn triggers a live tuning refresh. This logic is checked by C++20 unit tests, while Unreal lifecycle and rendered HUD behavior require further validation.
The HUD also displays a warning when its local SaveGame write fails. In-memory progress may exist without being persisted across restarts; investigate disk permissions/free space before claiming durability.
Prototype vehicle silhouette differences (original three-car milestone)¶
The initial three fictional profiles use distinct engine-primitive cosmetic body proportions: Arrow has a wingless balanced shape, Kestrel a longer front and wider low spoiler, and Phantom a shorter front with a raised wing. These are not finished licensed car meshes, and they do not modify the actual Chaos chassis, garage ownership or vehicle physics. See car silhouette QA for verification limits.
Purchase confirmation¶
Unlocking a new car (Q) and buying engine (U) or grip (I) upgrades now use a preview-first confirmation: press the same key a second time within 8 real seconds. The first press only shows the price and does not spend credits. Moving to another menu page, changing selected cars or restarting the race cancels any pending offer. See garage purchase QA for details and limits.
Six-car production garage source extension (November 2026)¶
Three additional fictional profiles—Tempest, Glider and Nova—now append permanent IDs 3–5 to the original Arrow/Kestrel/Phantom catalog. An existing three-car save keeps its bank, equipment, progress, and already owned car bits, but does not automatically receive new cars. The original two-step purchase confirmation, failed-save rollback, career garage edit lock and no-negative bank rules continue to apply.
The production Unreal garage Canvas menu now shows the equipped car's position in a six-car catalog, its base acceleration/grip/speed values, next locked car's credit cost, upgrade tiers and existing purchase feedback. This is a source-only interaction improvement; a complete UMG garage with car selection thumbnails, readable stats on installed screens and a real 3D showroom is still future work.
See six-car silhouette and migration QA.
Read-only full catalogue menu (November 2026)¶
The Garage Canvas page now lists all six saved-ID car profiles rather than only the equipped car. Every row shows its ownership/lock status, in-game-credit unlock price, and whether current credits are sufficient. Only the first locked car is flagged as the next Q purchase: later locked cars cannot be skipped by clicking an informational line. Wide screens also show the projected Acceleration, Grip and Top Speed multipliers with current shared upgrades, while compact screens show shorter status rows. These are tuning projections, not measured driving performance.
Garage purchase feedback stays near the beginning of the paginated menu so the eight-second second-press confirmation is visible without scrolling. Existing Up/Down detail pagination makes all rows accessible on shorter screens; keyboard E or existing menu SELECT still cycles only owned vehicles. This is a source-only UX improvement, not a finished production UMG showroom. See garage catalogue QA.