industries

Pyvorin for Matchmaking

ELO, Glicko, and skill-based matching algorithms.

Published May 30, 2026

ELO Rating

Update player ratings after each match with compiled rating calculations.

def update_elo(rating_a, rating_b, score_a, k=32):
    expected_a = 1 / (1 + 10 ** ((rating_b - rating_a) / 400))
    new_a = rating_a + k * (score_a - expected_a)
    new_b = rating_b + k * ((1 - score_a) - (1 - expected_a))
    return new_a, new_b

Glicko-2

More sophisticated rating system with rating deviation.

Skill-Based Matching

Match players by MMR, latency, and party size constraints.