RCWeb Geometry Dash App
The RCWeb Geometry Dash App (app/geometry-dash) is a Geometry Dash inspired endless runner built for the RCWeb asymmetric controller pattern. The shared screen owns all game logic while a companion controller app sends a single jump action over RCWeb WebSockets.
What it does
- Auto-run arcade loop: The cube races forward automatically while the world scrolls toward the player, creating the same jump-timing pressure that makes Geometry Dash feel so sharp.
- Single-button gameplay: The only action is jump. Players can tap the main screen locally or use the companion
/geometry-dash-control app from a phone.
- Endless obstacle course: The game generates a rotating mix of spikes, stacked platforms, ceiling traps, and lane-switching jump sequences. It opens with easier chunks, then steadily unlocks denser and trickier layouts as the score rises.
- Instant controller pairing: A QR code links phones into the same RCWeb room so the controller app can claim the runner and start jumping immediately.
How it works
script.js maintains the authoritative runner state, multi-level platform stream, scoring, collision detection, and reset loop inside a requestAnimationFrame update cycle.
- Remote input uses
rc.sendFunctionCall("geometry-dash", "geometryDash.joinAndJump", rc.client) on first tap, then geometryDash.jump for later jumps.
- The main app pushes controller feedback back to the phone through
geometryDashControl.onAssignedRunner, onScoreUpdate, onStateUpdate, and onReleased.
- Rendering is done entirely with the HTML5 canvas and CSS HUD overlays, using native browser audio synthesis for jump, score, and crash feedback.