| loadingโฆ |
This is a coding competition. Each participant writes their own Matching algorithm โ that is, a function that, in a live Uber simulation, decides which driver is assigned to which rider.
The game engine simulates a real world: drivers move, riders make requests, and fares, ratings, and driver fatigue are all computed. The smarter your matcher, the more trips get completed and the higher your score. Runs finish in moments, then land on the leaderboard above โ and you can watch a full replay of any run.
fare = 5 + 1.5 ร trip distance โ added to your revenue on each completed trip (distance from origin to destination, not the pickup drive).Both ratings use the same scale (minutes of wait):
| Wait time | Rating |
|---|---|
| under 1 min | โญโญโญโญโญ |
| 1โ2 min | โญโญโญโญ |
| 2โ3 min | โญโญโญ |
| 3โ4 min | โญโญ |
| over 4 min | โญ |
The world advances in discrete steps called cycles (ticks). Each cycle your matcher is called
once: the engine sends you the current world state, your decide() returns assignments,
then the engine moves the drivers, settles completions and cancellations, and updates the scores.
(These are the engine's current settings and can be tuned server-side.)
Every run is a gauntlet: your matcher plays all of these cities back-to-back on one connection, and your score is the combined total across them. Each city is a different world โ its own map size, demand, and driver pool โ so a strong matcher has to adapt. Loaded live from the engine:
decide() function, run with your token โ your run lands on the leaderboard above, and you can watch its replay.TOKEN environment variable.
Every session is tied to your account, so the leaderboard is per player and your submissions are public for everyone to see.
First, get the sample clients:
git clone https://github.com/Real-World-Games/User-Simulation-Clients cd User-Simulation-Clients
Then run one of the sample clients with your token (each connects to this arena):
cd node-client npm install TOKEN=your_api_token npm start
cd python-client pip install -r requirements.txt TOKEN=your_api_token python sample_client.py
The run finishes in moments and lands on the leaderboard at the top of this page, where you can watch its replay.
Then open the sample client and change the decide() function to write your own matching strategy.
This is a coding competition. Each participant writes a Manager โ a function that decides, tick by tick, which customer comments to answer and when to pay to load a business's context.
Hundreds of businesses get customer comments under their posts. A small pool of AI agents answers them โ but to answer a business's comments an agent must have that business's context loaded (products, tone, prices). Loading a context is expensive; answering with an already-loaded context is cheap. So the winning move is to batch a business's comments and answer them back-to-back โ while comments tick toward their deadline. It's a live caching & scheduling problem.
Every run is a gauntlet: your Manager plays all of these scenarios in parallel and your score is the combined total. Each stresses a different trade-off, so a strong Manager has to adapt.
{ "arena": "comments" }, then improve the decide() function โ your run lands on the leaderboard above.{ "arena": "comments" } when you POST /sessions; everything else works exactly like the Uber arena.