Rating system - #112
Draft
Gaming32 wants to merge 16 commits into
Draft
Conversation
Consider: 10 teams all of size 1. Before, this would result in 3,628,800 (10!) possibilities being checked, now it's only 1.
Gaming32
marked this pull request as draft
May 25, 2026 05:33
…es (works up to 14 players) Technically the code would work with any number of players, but due to factorial time complexity, I decided to cap it at 14. Just iterating 14 players with no extra work (of which we do a fair amount of extra work) takes about 3.3 seconds on my Ryzen 9 9950X CPU, so in practice, 14 players would probably take 5-10 seconds on a proper server. For contrast, The above benchmark of pure iteration on 15 players takes the time from 3.3 seconds to 19.3 seconds.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds a new rating system to Bingo, based on the Plackett-Luce model with Weng-Lin (aka OpenSkill). The Plackett-Luce model was chosen due to well supporting multiple teams of potentially different sizes.
This PR also adds the
/bingo teams balancecommand that takes in a list of teams and team sizes and finds the most balanced matchup.It is worth noting that, just as with any rating system, it will take a few games (maybe around 7-10) before the rating is considered to be "confident", however OpenSkill will automatically take the confidence into account when balancing matches, and the displayed rate is lowered based on the confidence, such that there is a 99.7% chance that the displayed rate is lower than the player's true skill.