Рейтинг Эло — ядро приложения: он превращает результаты партий в число, которое отражает силу каждого игрока. В этой статье — что рейтинг означает, по каким формулам он считается и каким играм подходит.
Система рейтингов Elo — математический метод расчёта относительного уровня игроков в соревновательных играх. Разработана венгерско-американским физиком Арпадом Ело для шахмат и впоследствии адаптирована для многих других игр.
Ключевая идея: рейтинг отражает не абсолютный навык, а ожидаемый результат в сравнении с конкретным противником. После каждой партии рейтинг победителя растёт, а проигравшего — падает ровно на столько, на сколько вырос у победителя.
Приложение отображает рейтинг как целое число, однако внутри хранится точное дробное значение. Дробная часть учитывается в каждом последующем расчёте, поэтому накопленные изменения корректно отражаются в рейтинге со временем.
Все игроки начинают с одного значения (1000), и чем больше партий сыграно, тем точнее рейтинг отражает реальный уровень: каждый результат уточняет оценку. Поэтому стабильная игра важнее одной громкой победы.
Для многопользовательской партии из игроков приложение использует обобщённую версию алгоритма Elo.
1. Ожидаемый результат игрока i
Для каждой пары игроков вычисляется вероятность того, что игрок опередит игрока :
и — рейтинги игроков и до партии.
— масштабирующий параметр (обычно 400): при разнице рейтингов в пунктов более сильный побеждает в 91% случаев.
Затем вероятности суммируются по всем соперникам и нормируются на количество пар :
Где - количество игроков, — ожидаемый результат игрока в диапазоне . При этом .
Вычитание компенсирует то, что каждый игрок учитывает себя в сумме.
2. Фактический нормализованный счёт
Очки в партии нормируются относительно минимального результата, чтобы счёт лежал в диапазоне :
Нормализация происходит пропорционально степени (WinReward) победных очков. При нормализация линейна (поведение как в классическом Elo). При победители получают непропорционально бо́льшую долю рейтинга.
Если все игроки набрали одинаковое количество очков, каждый получает (ничья).
3. Изменение рейтинга
— коэффициент волатильности. Чем он выше, тем сильнее одна партия меняет рейтинг. Типичное значение — 32.
В данном приложении настроены , , и начальный рейтинг .
Удобно раскрыть формулу через два слагаемых в единицах рейтинга:
— заработанные очки рейтинга: сколько рейтинга игрок получил бы, если бы побеждал бесплатно. Зависит только от его результата в партии относительно остальных.
— плата за участие: сколько рейтинга система автоматически «списывает», исходя из ожидаемого результата. Чем сильнее соперники, тем меньше плата — и тем выгоднее победа.
Итог: когда игрок выступил лучше ожидания, и — хуже. Сумма всех изменений по партии равна нулю: рейтинг перераспределяется между участниками.
Задайте коэффициенты и результаты партии — начисления пересчитаются на лету. Значения по умолчанию берутся из настроек приложения.
Волатильность — насколько сильно меняется рейтинг за партию
Масштаб разницы рейтингов при расчёте ожидания
Степень нормализации очков — при значении 1 нормализация линейна, при значении >1 победа вознаграждается больше
| # | Текущий Elo | Очки | −K·E | K·S | ΔR | Elo |
|---|---|---|---|---|---|---|
| 1 | -10.7 | 21.3 | +10.7 | 1011 | ||
| 2 | -10.7 | 10.7 | +0.0 | 1000 | ||
| 3 | -10.7 | 0.0 | -10.7 | 989 |
K·E — плата за участие
K·S — заработанные очки
ΔR = K·S − K·E
Сумма всех ΔR по партии равна нулю — рейтинг перераспределяется между игроками.
Рейтинг Эло имеет смысл только тогда, когда игроки напрямую соревнуются друг с другом и их результаты можно сравнить в рамках одной партии.
Подходит
Не подходит
Главное условие: в партии должен быть личный счёт каждого игрока, по которому можно определить, кто выступил лучше или хуже остальных. В кооперативных играх такого разделения нет — все игроки либо побеждают, либо проигрывают вместе, поэтому индивидуальный рейтинг не имеет смысла.
Если в игре победитель определяется не накопленными очками, а специальным условием (мат в шахматах, последняя взятка, выбывание соперника), вместо реального счёта используются условные баллы: победа = 1, поражение = 0, ничья = 0,5. Алгоритм от этого не меняется — нормализованный счёт по-прежнему корректно отражает итог партии.
В играх, где есть и личный счёт и специальные условия победы (Инновация, Карта звёзд), также применяются условные баллы победа = 1, поражение = 0.
Понимание формулы помогает принимать решения — не только внутри партии, но и при выборе соперников.
Побеждать сильных выгоднее, чем слабых
Плата против сильных игроков низкая, а заработок при победе над ними большой — итоговое максимально. Разгром слабых при высокой плате приносит мало.
Не бойся играть с сильными — потери минимальны
Если плата мала, то и потеря при проигрыше мала: , а . Избегать таких партий невыгодно — риск невелик, а потенциал роста велик.
Важен отрыв по очкам, а не просто порядок мест
Если игроков больше двух, имеет значение разница в очках: победа с отрывом приносит больше рейтинга, чем победа в одно очко. Если один игрок побеждает с большим отрывом, а остальные примерно равны, он получает почти весь заработок. Разрешение ничейной ситуации (tie break) не влияет на формулу — она учитывает только очки, поэтому равный счёт даёт равный заработок независимо от порядка мест.
Стабильность важнее редких всплесков
Рейтинг растёт при стабильном превышении фактического результата над ожидаемым. Начисление за одну партию ограничено коэффициентом , поэтому несколько уверенных побед лучше одной громкой.