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.