A cooperative game in which two players share a final score on each match.
I would like to have an individual ranking for each player in the system considering all matches between all players ever played.
A typical score varies from 500 to 7000 (in theory, from 0 to 10000+).
My first thought is to use the score as the ranking itself as follows:
Player-AwithNAmatches (ever played) and rankingRAplays withPlayer-BwithNBmatches and rankingRB.- The expected score is
(RA+RB)/2(this is an assumption that is probably close to reality, but I don't have enough data). - The actual score was
RX, which is distantD = RX-(RA+RB)/2from the expectation. - The new ranking for
Player-AisRA+D/NAandNAis incremented. - The new ranking for
Player-BisRB+D/NBandNBis incremented. - A new player enters the system with
1match and ranking0.
My specific questions:
- Is there an existing ranking system designed for games like this?
- If my assumption is correct, is the proposed system good?
- If my assumption is not entirely correct, what should be changed? It is guaranteed, at least, that
RXis betweenRAandRB.
I would use the Elo Rating system. It’s what is used for chess and a variant of it is used for CSGO.
https://en.m.wikipedia.org/wiki/Elo_rating_system