Kombi Rush — an offline-first Unity Android arcade game built for Zimbabwe's phones. One-thumb kombi driving: dodge potholes, dodge roadblocks, pick up passengers, upgrade your kombi.
# Kombi Rush
An offline-first Android arcade game made in Unity, built for the phones people actually use in
Zimbabwe. You drive a kombi: weave through potholes, oncoming traffic and roadblocks, pick up
passengers on the roadside, bank the fares at the stop, and spend what you earn on the kombi.
- **Engine:** Unity 6000.3.22f1, Universal RP (2D renderer)
- **Target:** Android, `minSdk 25`, IL2CPP, ARM64 + ARMv7, portrait, `com.tsorostudios.kombirush`
- **Constraints it is designed around:** no network permission, plays fully offline, under 60MB,
60fps on a 2GB entry-level device
## Why a kombi game
Chosen from live market data rather than taste — the full reasoning and citations are in
PROJECT.md. Short version: driving and vehicle-sim titles are the biggest single
cluster in Zimbabwe's own Play Store chart (12 of the top 45), almost every top title works
offline, mobile data is expensive enough that APK size affects installs, and the kombi theme is
unowned on Play.
## Layout
```
Assets/Scripts/Sim game rules, engine-free (assembly KombiRush.Sim, noEngineReferences)
Assets/Scripts/Game Unity layer: rendering, input, HUD, menus, audio, saving
Assets/Scripts/Editor build entry point and the Boot scene generator
tests/SimTests headless tests for the rules
tools/ test and compile scripts that work without opening the editor
```
The hard rule: **no game rule lives in a MonoBehaviour.** `RoadSim` is a pure state machine
stepped at a fixed 1/60s, so a run is reproducible from `(config, upgrades, seed, input)` and can
be tested, replayed and balanced without the engine.
## Running the tests
No Unity licence and no .NET SDK needed — the script falls back to the Roslyn compiler and .NET
runtime that ship inside the Unity editor:
```bash
tools/run_sim_tests.sh # 20 checks: determinism, fairness, playability, economy, saves
tools/compile_check.sh # compiles all three assemblies against Unity's own DLLs
```
`tool …