Files
zeekayandHanzo Dev d05e5b8448 feat: drivable arcade racer template, one curve driving every system
Circuit: the track is a closed Catmull-Rom loop and the road ribbon, the
on-track test, the lap checkpoints and the autopilot racing line are all derived
from it. Moving a control point moves every system — no second copy of the track
to keep in sync.

Autopilot runs until the first key press so the demo is alive on load rather than
a parked car in an empty scene.

Why a second playable game: the catalog's differentiator versus static-SPA
builders is that hanzo.app can serve real engine and WASM workloads, and one
example reads as a fluke. This one is input-heavy (continuous steering, brake,
off-track grip loss) where the Godot entry is physics-heavy, so between them the
input and simulation paths are both covered.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 23:21:12 -07:00

1.1 KiB

Circuit — an arcade racer

A drivable kart on a closed circuit. The track curve is the single source of truth: the road ribbon, the on-track test, the lap checkpoints and the autopilot racing line all derive from ONE Catmull-Rom loop, so moving a control point moves every system with it.

Live: https://kart-racer.hanzo.app

Arrows/WASD to drive, SPACE to brake. It runs its own autopilot until you touch a key, so the demo is alive the moment it loads instead of showing a parked car.

Off-track grip drops to 0.42 and top speed with it — the whole handling model is two numbers, which is what makes an arcade racer feel arcade.

Build

npm install && npm run build

Deploy to hanzo.app

Games ship through the release lane, not the artifact lane: the public edge caps a request body at 4 MiB, so stage the built tree to your object space and let POST /v1/sites/:slug/publish promote it server-side.

Fingerprint your asset names — the site server marks a content-hashed filename immutable, and a redeploy that reuses a name serves the old bundle against the new everything-else.

License

MIT. three.js is MIT, (c) the three.js authors.