Bracket
Matchmaking, rating and a ladder, with no game attached. Players queue, get paired, a stub decides who won, and the numbers move.
controls
There is nothing to play. That is the point.
- Watch the CONVERGENCE curve
- Pause and resume Esc
- Fullscreen F11
- Debug overlay F3
- Debug console `
- Pause, fullscreen and the debug overlay keys — unless a control for them is listed above
- Debug console, and its on-screen keyboard the CONSOLE button, once you have touched the canvas
what is actually running
Matchmaking quality is a property of a population, not of one match.
A matchmaker that pairs well for four players and badly for four thousand is a matchmaker nobody has tested. Attaching one to a real game would mean needing a real playerbase before you could learn anything about it, so this sample has no game: the match is resolved by a seeded roll weighted by the two players' true skill, and a population of any size runs deterministically from a seed.
Every player here has a true skill that the matchmaker never sees — it is the mark drawn across each bar on the ladder. The bar itself is what the system currently believes, and the whole exercise is getting the one to land on the other. The CONVERGENCE plot is the distance between them, averaged over everybody, drawn as it falls. A rating system nobody can falsify is a number generator, so the number is on screen.
The queue is the other half. A waiting player will accept an opponent within a tolerance that widens the longer they wait, and the stricter of the two tolerances decides — so somebody who just joined is never dragged into a lopsided match by a player who has been waiting a long time. Both sides of that trade are reported rather than asserted: how far apart the average pairing was, and how long the average player waited for it.
One thing worth watching if you leave it running: the curve comes down, and then it slowly climbs again. That is not a bug in the arithmetic. Pairing people against their nearest equal means a small rating gap is preferentially drawn from pairs whose true skills are further apart than the ratings suggest, so the favourite wins a little more often than predicted and the ladder gradually stretches. Tight matchmaking and a trustworthy rating are genuinely in tension, and fixing it needs a rating that tracks how sure it is — not a change to who gets paired.
console.log, so log lines are queued
inside wasm and drained by the page each frame. crcbl.audio(),
crcbl.saves() and crcbl.logLevel(4) are there too.