Game systems case study

Quiz Cruise

Gameplay systems · UI · Content pipeline · Booth tooling

Fuel-limited racing meets hot-reloadable tech quizzes — engineered for booth events where content and difficulty must change without shipping a new build.

Unity 6C#URPRCCPInput SystemDOCX runtime

Gameplay

Core loop: drive → fuel drains → grab coin → quiz → refill / boost → resume.

Overview

Built for walk-up play

Quiz Cruise couples Realistic Car Controller Pro (RCCP) vehicle physics with custom C# systems for fuel, quiz flow, coin spawning, vehicle selection, ambient traffic, billboards, and booth settings. The product goal was not a sim racer — it was a reliable arcade loop that tests tech literacy under time pressure.

A Unity 6 booth racing game where fuel drains while driving. Players collect quiz coins, answer multiple-choice tech questions loaded from a Word document, and compete on a shared leaderboard — designed for walk-up event play with operator-tunable difficulty and hot-reloadable content.

Constraints

Booth / walk-up UX

Players must understand the loop in seconds — no long tutorials.

Content ownership

Organizers need to change questions without a Unity rebuild.

Fairness under pressure

Fuel and quiz timing must feel reachable, not punishing.

Dual vehicles

Truck and Skyline share one track without fighting for control.

Operator control

Fuel drain, speed caps, and assists must be tunable on-site.

Public release

Branding and quiz content had to stay generic and sponsor-ready.

Solution

Decisions that define the loop

  1. 01

    Fuel-as-timer

    Urgency tied to driving style instead of a pure lap clock.

  2. 02

    Waypoint quiz coins

    Coins spawn ahead on the path when fuel is low — reach and answer.

  3. 03

    External Questions.docx

    Runtime parse with hot-reload polling so booth staff can swap banks live.

  4. 04

    Session model

    3 questions × 4 sessions = 12-question race pool, unique when the bank allows.

  5. 05

    Booth tooling layer

    Name/team entry, vehicle toggle, settings, leaderboard, results, JSONL scores.

  6. 06

    Rescue path

    Empty fuel can trigger a last-chance quiz if sessions remain.

Development process

How it was built

01Base race + vehicle stack+

Unity 6 + URP with RCCP. Snow-mountain track with waypoints. Stabilized truck vs Skyline feel — AWD torque direction, input bindings, hill/release behavior — so both vehicles were booth-usable.

02Fuel & coin loop+

Replaced infinite drive with a fuel timer tied to speed and throttle. Playtests forced iteration: longer base fuel, gentler drain, earlier spawn threshold, closer waypoint offset. Quiz score scales rewards (3/3 full + boost, 2/3 full, 1/3 half).

03Quiz content pipeline+

Questions authored in Word for non-developer editors. Runtime loader searches exe / StreamingAssets / editor paths — newest mtime wins. QuizSystem polls (~3s) and hot-reloads. Content iterated to high-school tech literacy with an in-code fallback bank.

04Booth / operator tooling+

Main menu with identity fields, vehicle toggle, and results overlay. Settings for fuel timing, drain multipliers, speed caps, truck knobs, and assist toggles. Settings revisions migrate PlayerPrefs without wiping unrelated tweaks. UI leaderboard clear kept separate from on-disk JSONL quiz scores.

05World, presentation & release+

Ambient traffic with ground-snapped NPCs, replaceable roadside billboards, and a public scrub that removed company IP. Shipped as Quiz Cruise v0.1.0 with tooling scripts for question docs and public assets.

Playtest → fix

Iteration under pressure

Fuel too aggressive

Raised capacity, lowered drain multipliers, spawned coins earlier and closer on the waypoint chain.

Quiz difficulty swing

Replaced toddler-level and then overly advanced banks with high-school tech literacy.

Public release scrub

Removed company branding; added sponsor placeholder ads and generic intro art.

Vehicle select UX

Menu toggle + persisted preference; only the selected vehicle activates on the primary spawn.

Architecture

Key C# systems

FuelSystem

Capacity, speed/throttle drain, uphill reduction, bar UI, empty → rescue or end.

PCCoinSpawner

Arms on low fuel, places coin N waypoints ahead, max 4 coins per run.

QuizSystem

Run pool, 3-question sessions, pause (timeScale), keyboard UI, rescue entry.

QuizDocxLoader

Multi-path search, newest-file-wins, parse A–D options + ANSWER lines.

BoothGameSettings

Persisted operator tuning with revision migration across updates.

BoothLeaderboardManager

Pre-run UI, apply settings, top-N board; clear list vs disk DB.

PlayerVehicleDualSwitcher

Preferred vehicle preference; activate one, disable the other.

HillAssist

Speed caps, temporary boost, rescue penalties, recovery toggles.

RaceGameSetup

Auto-wires systems when a scene already has a RaceManager.

Technical environment

Engine
Unity 6000.4.0f1 · URP 17.4
Language
C#
Vehicles
RCCP (BCG_RCCP)
Input
Unity Input System (Both)
Target
Standalone Windows booth PC
Content
Open XML .docx (ZIP + XML parse)
Persistence
PlayerPrefs · JSONL quiz scores

Trade-offs

Engineering judgment

Fuel-as-timer

Why: Instant urgency for booth play.
Trade-off: Needs careful tuning or coins feel unreachable.

DOCX over JSON-only

Why: Organizers already know Word.
Trade-off: Heavier parse; stricter formatting rules.

Polling hot-reload

Why: Simple and reliable across Windows paths.
Trade-off: Slight delay vs FileSystemWatcher edge cases.

Pause with timeScale = 0

Why: Clean quiz focus during questions.
Trade-off: UI/input must run on unscaled time.

One active vehicle

Why: Avoid dual RCCP controller conflicts.
Trade-off: Scene must manage both prefabs via the switcher.

Settings revision migrate

Why: Booth machines keep old prefs across updates.
Trade-off: Migrations must be additive and explicit.

Outcomes

What shipped

  • Playable booth loop: sign-in → vehicle → race → quiz → results → leaderboard
  • Content updatable after build via Questions.docx
  • Operator-tunable fuel and speed without code changes
  • Dual-vehicle support on a shared track and quiz systems
  • Public GitHub snapshot for portfolio / sharing

Skills

Demonstrated here

Unity gameplay systemsRCCP vehicle integrationInput debuggingRuntime DOCX pipelinesHot-reload contentBooth / event product designPlaytest-driven balancingRelease scrubbingGit delivery

Roadmap

What I'd improve next

  • Booth analytics (session heatmaps, miss rates by question)
  • Gamepad-first quiz navigation presets
  • Stronger first-time onboarding bumper
  • Automated Questions.docx format validation
  • WebGL or lighter kiosk build profile
  • Formal difficulty tiers in the booth menu

Explore the source

Unity game repo and marketing site for Quiz Cruise.