Why Whiteout?
Whiteout is not a tech demo: it is a complete, playable 3D zombie runner shooter that runs in any modern browser and as an Android app ready to build into an APK. You run non-stop across a frozen field in a snowstorm, a dead city on the horizon, while the dead stagger out of the fog. Aim, shoot and survive as many meters as you can.
- First person with free aim: headshots kill instantly, body shots take two and leg shots leave a zombie crawling (dismemberment)
- 4 weapons: pistol, pump shotgun, lever rifle (piercing) and a full-auto SMG
- 6 stackable roguelite perks, offered every few hundred meters
- 6 levels of horror: the white field, the hanged, the crucified, the big one, mutation and the pack
- Bullet cam in ultra slow motion, plus a kill cam on kill streaks
- Fences you vault automatically, thickets where you hear before you see, wind-swept grass shader
- Fully synthesized Web Audio: positional groans, footsteps in the snow, gunshots and wind that drops to a hush when something gets close
- Keyboard/mouse and touch controls, portrait or landscape
- English and Spanish (auto-detected), graphics quality, volume, haptics and saved records
01. Hordes that never stop
Every run lays out a brand-new course. Difficulty climbs with distance: more zombies, faster ones, runners that sprint straight at you and ever bigger packs. One reaches you and the run is over.
02. Bullet cam on headshots
Now and then a headshot is replayed from the bullet's side: the camera spins around the round in ultra slow motion all the way to impact. Kill streaks trigger a zoomed kill cam.
03. Weapons and perks
Weapons lie in the field under a beam of light. Touch one and time slows down while you decide whether to swap your gun. Every few hundred meters you pick one of three perks: Quick Hands, Piercing Rounds, Extended Mag, Hair Trigger, Fleet Foot or Second Wind (shoves off the next grab).
04. Six levels of horror
Each level adds a new threat: hanged bodies that grab you if you run underneath, crucified zombies screaming as you pass, the big one who soaks up a whole magazine, a mutant that gallops in weaving and, last, packs of dogs.
05. Web and Android
The Capacitor project comes fully set up: icon, splash, fullscreen, portrait or landscape, and the screen stays awake. One command builds the debug APK and, with your keystore, the signed APK for Google Play. On the web it deploys as a static site to any host.
100% procedural: no licensing headaches
Zombies, dogs, the boss, trees, weapons, fences, the frozen grass and the city are all built from blocks in code. Sound is synthesized in real time. There are no third-party models, textures or audio files to license.
Clean, easy-to-modify architecture
- ~6,500 lines of strict TypeScript; three.js is the only runtime dependency
- Every gameplay value lives in
config.ts: speeds, waves, ammo, fog, levels
- Pure rules kept apart from rendering in
logic.ts, with 56 unit tests (Vitest)
- Strings in
i18n.ts: adding a language means adding one dictionary
- README covering setup, controls, project layout and the Android build
Tech stack
- TypeScript · three.js (WebGL)
- Vite
- Capacitor (Android)
- Vitest
- Web Audio API
Requirements
- Node.js 20+
- A browser with WebGL (desktop or mobile)
- For Android: JDK 21 and Android SDK 35 (or Android Studio)