MMatchdock

Results and ratings

Only the server decides

Results are accepted from the dedicated server of that session, authenticated by its server secret - never from a game client. A result must name two players of the match, and the winner's score must be higher than the loser's (or the scores equal, for a draw). Reporting is idempotent, so servers can retry safely.

Elo

Every player starts at 1000. After each match:

  • Expected score follows the standard Elo curve (a 400-point gap is about 10 to 1).
  • K = 40 for a player's first 30 matches, so new players reach their level quickly; K = 24 afterwards.
  • A decisive result always moves a rating by at least one point. Ratings never go below zero.
  • A draw between equals changes nothing; a draw against a stronger player earns a little.

Two established players at the same rating exchange 12 points. Beating someone 400 points above you earns 22; beating someone 400 below earns 2.

Forfeits and aborted matches

Situation Outcome
A player quits and the server reports it A normal win for the opponent.
A player quits and the server exits without reporting The player who stayed wins by forfeit (resultReason: FORFEIT).
A player is gone past the reconnect window (30 s) and no result arrives Forfeit, awarded by the platform.
Everybody left, the server crashed, or a node was lost ABORTED / FAILED - nobody's rating changes.
A player cancels before kick-off ABORTED, reported separately from failures.

Leagues and leaderboards

Ratings map to league tiers (every 100 points from 1100 up to a top tier at 2000). GET /me returns the player's league, the next league and its threshold, and their leaderboard rank. GET /leaderboard returns the top players of the project; GET /matches/me/history returns recent matches with the rating change of each.