Problem: A studio wanted to prototype a Wipeout-style racer. Shipping a traditional build means installers, per-platform builds, and a download before anyone plays. They needed it in a browser, with no install, and they needed the AI to be credible.
Approach: We built the WebGL engine from scratch in Three.js: spring-damper hover physics, AI opponents across five difficulty tiers that use the player's own physics, procedural tracks from five tile types, and a weapon set of missiles, mines, and speed dashes.
Technical details:
- Three.js r185 with UnrealBloomPass post-processing
- Custom spring-damper hover physics with magnetic track re-attachment
- AI held to the same physics constraints as the player
- Procedural tracks: straights, corners, ramps, gaps, loops
- Forza-style scoring with streaks, chains, and a multiplier up to 10x
- WebAudio engine with procedural sound synthesis
Play online: playmur.npc-it.co.uk
Outcome: The studio had a playable prototype in weeks, not months. The AI cannot cheat, because it runs the same physics. New track types and game modes are additions to the engine, not rewrites.
Stack: Three.js r185, WebAudio, Node.js + Express, ES Modules
Sandboxed plugin ran for projects/racing-engine and read “3D Racing Engine” through the mediated API.