Skip to content

Player rating for online battles on full maps.

User Avatar
#39
Auto-translated
In our section, the rating system has been in use for a very long time. Since 2009, we have been using the formula that is used to calculate the FIDE rating in Chess. The system has proven itself well. Of course, for the objectivity of any rating, there needs to be a distance of at least several hundred games. Our rating looks like THIS
2. Rating calculation formulas.

From November 2007 to February 2009, the rating was calculated according to the formula proposed by SS-D and reset each season.
The Spring 2009 season was calculated using two systems: the old SS-D system and the new one proposed by StickyFingaz. Starting from Summer 2009, the forum voted to switch completely to the new system, which calculates both the seasonal rating (reset at the beginning of the season) and the permanent rating (not reset since March 1, 2009).
"Zero" level is considered to be 1500 rating points, which are given to all players before their first game that is taken into account in the rating.

The rating is calculated as follows:

Let R1 and R2 be the initial ratings of the players.

The coefficients for the difference between player ratings are calculated as follows:
f1=max(-1, min((R1-R2)/400, 1));
f2=max(-1, min((R2-R1)/400, 1));
where min and max are functions that return the minimum and maximum of two numbers.

Points awarded for a win (WP) and loss (LP) are calculated as follows:
WP1=max(1, 16*(1+f1));
WP2=max(1, 16*(1+f2));
LP1=min(-1, 16*(-1+f1));
LP2=min(-1, 16*(-1+f2));

If the first player wins, then
R1->R1+(int)WP2;
R2->R2+(int)LP1;

if the second player wins, then
R1->R1+(int)LP2;
R2->R2+(int)WP1;

if the game ends in a draw, then
R1->R1+(int)((WP2-WP1)/2+0.5);
R2->R2+(int)((WP1-WP2)/2+0.5);

where (int) is a function that returns the integer part of a number.

Although it's not so important what formula will be used, the main thing is how to automate this process. First, you need to implement report forms in a unified format, and then simply copy and process them.