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.
DocumentationServer TelemetryServer StatsServer HTTP LogServer WebSocket Log