Skip to content

Rating system - #112

Draft
Gaming32 wants to merge 16 commits into
fabricfrom
rating-system
Draft

Rating system#112
Gaming32 wants to merge 16 commits into
fabricfrom
rating-system

Conversation

@Gaming32

Copy link
Copy Markdown
Owner

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 balance command 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.

@Gaming32
Gaming32 requested a review from Earthcomputer May 24, 2026 20:15
@Gaming32 Gaming32 added the enhancement New feature or request label May 24, 2026
Gaming32 added 4 commits May 24, 2026 15:21
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
Gaming32 marked this pull request as draft May 25, 2026 05:33
Gaming32 added 8 commits May 25, 2026 21:57
…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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant