The idea
We set out to make a 3D obstacle course runner with the rhythm and snappy restart flow of classic arcade games. Fast courses, simple controls, and instant retries where falling is just part of mastering the track.
The game is built for portrait-mode play on mobile phones as well as wide screens on desktop, letting players jump in with a single thumb during short breaks.
What we built
A suite of 3D obstacle courses engineered around a structured 3-lane running track. We integrated Kay Lousberg’s CC0 asset packs with custom third-person camera tracking, moving hazards, rotating spinners, and elevation slopes.
All course data is stored in modular JSON files snapped strictly to a 1.0-unit grid. This allowed us to iterate on hazard spacing, jump arcs, and coin placement quickly without re-baking complex level geometries.
The hard part
Compressing a rich 3D Godot 4 web export down to mobile-friendly sizes. The original build weighed 67.8 MB, which was too heavy for quick web play.
We restructured our web deployment to use our shared Godot 4.6 engine architecture and re-exported optimized mesh assets. This shaved 50 MB off the transfer, bringing the cached web payload down to 17.8 MB while preserving 60 FPS platforming and zero-lag swipe response.
Result
An arcade 3D obstacle runner that loads smoothly in mobile browsers without requiring an app store download. Players switch lanes with horizontal swipes and clear gaps with vertical flicks.
