Vixen
caa30e12
csharp
public sealed class BayesianRatingModel

A Bayesian skill model of the TrueSkill family: a mean and a variance per player.

Read the guide page for this →

Remarks

What handles teams, parties, uneven sizes and new players honestly. A team's performance is the sum of its players' skills with a per-player performance variance, and a result moves each player in proportion to how uncertain they were — so a newcomer's rating converges in a handful of games while a veteran's barely moves.

⚠ Two teams, and a free-for-all is not supported. The full model handles any number of teams with a factor graph over the whole ranking; two teams is the closed form, it is what every queue in doc 28 needs, and shipping the closed form honestly is better than shipping an approximation of the general one that nobody can check. A queue with three sides is a real gap and the README says so.

⚠ A little uncertainty is added back before every update. Without it a rating converges to a variance of nearly nothing and then cannot move again, which means somebody who improves is stuck at what they used to be for ever.

Fields and properties (5)

  • public double Beta

    How much a single performance varies from a player's skill.

  • public double Tau

    How much uncertainty is added back each game.

  • public double DrawProbability

    How often two even sides draw.

  • public string Name

    What it is called, in a queue definition and in a report.

  • public Rating Starting

    What somebody starts on.

Methods (3)

  • public BayesianRatingModel(double mean = 25, double deviation = 8.333333333333334, double beta = 4.166666666666667, double tau = 0.08333333333333333, double drawProbability = 0.1)

    Makes one with the classical parameters.

  • public IReadOnlyList<Rating[]> Update(IReadOnlyList<Rating[]> teams, IReadOnlyList<int> ranks)

    Updates every team's ratings after a result.

  • public double Quality(IReadOnlyList<Rating[]> teams)

    How even a match would be, from zero to one.

Used by (1)

  • BayesianTestsVixen.Live.Matchmaking.Tests