Help creating a ranking system

  • Thread starter Thread starter narf0708
  • Start date Start date
  • Tags Tags
    Ranking System
AI Thread Summary
A user seeks assistance in creating a ranking system for a game played with friends, aiming to track skill levels similar to an Elo system. The game accommodates 2 to 31 players, with a total of 2,000 points distributed based on performance, resetting daily until a player reaches 1,000 points or the game ends early by mutual agreement. The desired ranking system should reward survival, prioritize wins, and adjust ratings based on performance while minimizing the impact of the number of games played. The user struggles with the mathematical complexity required to incorporate various factors, such as player scores and the dynamics of competition. A comprehensive algorithm is needed to produce an ordered list of players and their new ratings after each game.
narf0708
Messages
3
Reaction score
0
I've recently been wishing to create a ranking system for a game that several friends and I play, a ranking system that will keep track of our relative skill levels over the course of many games, sort of like a tournament, but with more freedom, more akin to an Elo type system. However, I've found that my mathematical skills are a bit too weak to create something satisfying by myself, so I would appreciate some help in the matter.

To describe the relevant parts of the game:
-Each game can have between 2 and 31 players. 10 players is the most common amount though.
-There are a total of 2,000 points in each game that are distributed to players based on how well they are doing. These points get reset and recalculated every day/iteration of the game until someone wins.
-When a player reaches 1,000 points, he/she wins and ends the game.
-The game can end before someone reaches 1,000 points if there are only three players left in the game and all three agree to end the game as it is, in which case the person with the most points wins.
-Most players have 0 points at the end of the game due to other players taking their points and eliminating them entirely.

Ideally, the system should have all(or at least most) of the following properties:
-It should be easier to increase one's ranting for wins than to decrease one's rating for losses. (due to how most of the players are eliminated and have a score of 0 at the end)
-Higher player ratings should increase more slowly, and decrease more readily.
-Lower player ratings should increase more readily, and decrease more slowly.
-Survival to the end(shown by non-zero point values at the end of the game) should be rewarded, even if the player didn't win.
-There should be a bonus for getting in 1st, 2nd, or 3rd, with the greatest bonus to the person in first and lowest to person in third.
-There should be little to no reward for playing a greater number of games.

Unless I'm missing something, the algorithm should have the following inputs, knowns, and outputs:
Inputs: Game number, name of each player along with their associated score at the end of the game.
Knowns: There will be a database built consisting of all the past games, players, and ratings which can be referenced.
Outputs: An ordered list consisting of each player's name and new rating.

I've tried a few simple things, but none of the simple things are able to encompass everything the ranking system needs to be able to do. When I try to do anything more advanced(namely trying to account for all of the players' scores, the number of competing players, the average, range, and/or deviation of all the players' ratings), I get stuck due to my own limitations of creativity and mathematical knowledge.
 
Mathematics news on Phys.org
Have you tried something like class rank as used by many high schools in determining who will be valedictorian? It's usually based on grades and course difficulty.
 
Had thought that class rankings were determined by averages(with weighting for certain classes), which is both the first thing I tried and too simple for this. For one, someone who consistently wins without getting to the 1,000 points because of agreement with the other players could be ranked lower than someone who doesn't win as often, but wins by passing the 1,000 point mark.
While averaging works excellently for having the valedictorian be the person who has had the highest cumulative grade, it doesn't work for determining the current skill level.
 
Last edited:
Seemingly by some mathematical coincidence, a hexagon of sides 2,2,7,7, 11, and 11 can be inscribed in a circle of radius 7. The other day I saw a math problem on line, which they said came from a Polish Olympiad, where you compute the length x of the 3rd side which is the same as the radius, so that the sides of length 2,x, and 11 are inscribed on the arc of a semi-circle. The law of cosines applied twice gives the answer for x of exactly 7, but the arithmetic is so complex that the...
Back
Top