Swing City
0A rain-soaked neon city you can swing across, Spider-Man style — now with multiplayer joust rules.
The story
A low-poly Blade Runner grid, procedurally generated from a single seed — streets, traffic-light-obeying cars, rain, neon towers — built first as a Blender/Python generator, then ported line-for-line into a self-contained Three.js browser game. Web-swing between skyscrapers, knock cars flying, climb buildings, chain combos, and dodge a zombie wave or two. One July 2026 session ran 13 rounds of real-hardware VR playtesting back to back — ship a batch, play it on the headset, get bug reports, ship the next batch. The hardest of those bugs was a right-stick calibration that got re-specified 10 times before a hardware-confirmed fix finally stuck ("LOCK THAT"), and a separate VR avatar-invisible bug that root-caused to a one-line three.js gotcha: Object3D.lookAt() orients +Z for everything except cameras, so the follow-rig was facing 180° away from the player every frame. Multiplayer runs on a from-scratch Cloudflare Worker + Durable Object relay: zero server-side physics, an "attacker computes, server relays, victim applies" message convention reused across every player-vs-player mechanic, and the WebSocket Hibernation API so a room full of idle sockets never pins memory.
Highlights
- ✦Procedural city — same seed, same layout, in both Blender and the browser
- ✦Full physics: web-swinging, wall-crawling, car knockback with momentum-scaled combos
- ✦Opt-in multiplayer — joust rules, random color per player, colored webs, knock players (and cars) around, land on a head to explode them
- ✦13 rounds of real-hardware VR playtesting in one session — the right-stick calibration alone took 10 of them to lock
- ✦VR avatar-invisible bug root-caused to a one-line three.js axis-convention gotcha (Object3D.lookAt())
- ✦Multiplayer relay built from scratch on Cloudflare Workers + Durable Objects, later extracted into a reusable pattern doc
More in Games
Cascade Countdown
A hand-tracked physics arcade game for Apple Vision Pro, built on Godot. Live on TestFlight.
Crystal Caper
A pixel-art platformer where 100% of the art is AI-generated. Playable in your browser.
Tank Commander
A VR tank game for Meta Quest 3 with a physically-operated cockpit. Made for Ani.
Want this level of depth on your own project?
The classes teach the same production techniques these repos are built with — scar tissue included.