Skip to content

Bug reports.

User Avatar
#255
Auto-translated
Sav
Regarding the rating: the system has been changed periodically, but in the latest HD mod updates, obscure elements have been almost completely removed.

The rating in the lobby now is simply an ELO rating with a coefficient that depends on the map size.

The rule for changing the rating as a result of a game is now as follows:
R1 += K*(RES - 1/(1 + 10^((R2 - R1)/400)))
R2 -= K*(RES - 1/(1 + 10^((R2 - R1)/400)))
Here, R1 is the rating of the first player, and R2 is the rating of the second player. RES is 1 if the first player wins; 0.5 if it's a draw; 0 if the second player wins.

The coefficient K depends on the size of the map being played:
K = 60 * ([map width in cells] * (1.5 if with Dungeon) / (144 * 1.5)).
For example:
XL+U: K = 60
L+U: K = 45
XL-U: K = 40
L-U: K = 30
M-U: K = 20
By the way, there's a slightly different formula in HotA. Is there a difference?
Let R1 and R2 be the initial ratings of the players.

The player rating difference coefficients 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.

The points awarded for a win (WP) and a 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.

Statistics

Welcome our newest member: artem