Bot Volley

A 3D volleyball arena where the players are JavaScript you write.

Bot Volley match in progress: a 3D court with two bots, a ball mid-rally and a 1–0 score.

The problem

Programming games usually hide their physics or run your code on someone else's server. I wanted a game where a bot is a single function you can read, the simulation is honest enough to reason about, and every match counts towards a rating.

How it works

Each bot is a tick(gameState) function edited in Monaco, the editor behind VS Code, and executed in isolation in the browser. The game exposes arena dimensions, ball position and velocity, gravity and match state, so a bot can predict where the ball lands, account for wall bounces and plan an intercept.

Under it is a deterministic physics engine, so the same inputs always produce the same rally. Convex holds real-time match state and server functions, Clerk handles sign-in, and ranked matches adjust an Elo rating. The starter bot is about 26 lines; the best ones run to hundreds.

Highlights

  • Deterministic physics engine written for the game
  • User code runs live in the browser, isolated from the page
  • Real-time state and server functions on Convex
  • Elo rankings, match history and a practice mode against a training bot

Screens

Bot Volley home page with the headline “Code your bot. Dominate the arena.” and links to Bot Lab, Live 3D Arena and Elo Rankings.
Home: open the lab, play a quick match or check the rankings.