Рейтинговые системы: как онлайн-игры определяют вашу крутость

Простыми словами о системах Elo, Glicko, Glicko-2 и TrueSkill.

Рейтинговые системы: как онлайн-игры определяют вашу крутость

Недавно мне стало интересно, как определяется мой ранг в среднестатистической онлайн-игре, поэтому я полез в Google и тут же нашёл ответ на свой вопрос.

Вот так
Вот так

Понятнее не стало. Поэтому я стал копать глубже, чтобы разобраться хотя бы поверхностно, как «для чайников», не вникая во все эти многоэтажные формулы. И нашел четыре рейтинговые системы, на которые опираются большинство современных онлайн-игр. Именно это системы и определяют, насколько хорошо (плохо) вы играете в игру.

Рейтинг Elo

Каждый новый игрок в системе Elo получает некое стартовое количество очков, например — 1500. Само количество непринципиально, главное – чтобы счётчик не ушёл в минус. При победе этот счётчик увеличивается, а при поражении — уменьшается, но количество очков, на которое изменяется рейтинг, непостоянное.

Хоть описание статьи и содержит в себе сочетание «простыми словами», я всё-таки должен вставить пару формул. Маленьких и простых, честно!

ЕА здесь — это то количество очков, которое игрок А получит после победы над игроком В; RA и RB — это текущие рейтинги игроков А и В
ЕА здесь — это то количество очков, которое игрок А получит после победы над игроком В; RA и RB — это текущие рейтинги игроков А и В

Рейтинг устроен так, что игрок с высоким рейтингом получит много очков после победы над игроком с низким, тогда как последний после победы над сильным оппонентом получит мало очков. Звучит несправедливо, вот только эти очки не прибавляются к рейтингу Elo, а проходят через ещё один круг подсчётов.

R’A — это новый рейтинг игрока А. К – это максимальное количество очков, которое игрок может получить или потерять за игру (обычно это 16). SA меняется в зависимости от результата игры: 1 при победе, 0 при поражении, 0,5 при ничье
R’A — это новый рейтинг игрока А. К – это максимальное количество очков, которое игрок может получить или потерять за игру (обычно это 16). SA меняется в зависимости от результата игры: 1 при победе, 0 при поражении, 0,5 при ничье

«Бла-бла-бла, задолбал ты со своими формулами, обещал же, что будет просто!»

Без паники! На примере всё сразу прояснится. В этом мне поможет игра с открытой (пользователи видят, как изменяется их ранг) Elo-системой — Brawlhalla.

Пример игры с Elo — Brawlhalla
Пример игры с Elo — Brawlhalla

Лично я люблю эту игру, но уж очень мне не нравится тамошняя система подбора игроков в рейтинговой игре. Новичка с рейтингом 1300 может спокойно кинуть к платине с рейтингом в 1800, и тогда на экране будет твориться такое, что можно будет заливать на pornhub в раздел «изнасилований». Платина, разумеется, победит. Какой будет её рейтинг после победы?

1800+16*(1-(1 / (1 + 10^((1300-1800)/400)))) = 1800.85. Как изменится рейтинг новичка? 1300+16*(0-(1 / (1 + 10^((1800-1300)/400)))) = 1299.15. Короче говоря, рейтинги почти не поменяются. Что есть правильно: новичка кинуло к профессионалу, и он, очевидно, проиграл. Но что, если новичок выиграет? Изменим значения в формулах и посчитаем заново, как изменятся рейтинг.

Для платины: 1800+16*(0-(1 / (1 + 10^((1300-1800)/400)))) = 1784.85. Для новичка: 1300+16*(1-(1 / (1 + 10^((1800-1300)/400)))) = 1315.15. Рейтинг игроков изменился на 15,15 (а 16 — максимум) очков! Платина ушла в почти максимальный минус, а новичок — в плюс. Справедливо? Справедливо.

Это – ваш рейтинг. Скачки — сыгранные матчи. Вы получаете и теряете очки, но каждый раз — разное их количество
Это – ваш рейтинг. Скачки — сыгранные матчи. Вы получаете и теряете очки, но каждый раз — разное их количество

Рейтинг Glicko

Elo выглядит вполне себе справедливо, да вот не совсем. Допустим, в матче встретились два игрока с рейтингом 1600. Оба должны играть одинаково хорошо, вот только первый играет раз в неделю (или по каким-то причинам вообще не заходил в игру с месяц), а второй играл днями и ночами. Скорее всего, второй игрок победит.

Система Glicko учитывает этот фактор и вводит новый параметр – рейтинговое отклонение, сокращенно – RD (потому что Ratings Deviation). Чем реже игрок заходит в игру, тем выше его RD. Суть системы Glicko заключается в том, что у игрока с высоким RD невозможно точно определить его рейтинг. Система не может определить, насколько хорош игрок, если он редко играет, поэтому задает рейтинги в виде интервалов.

Поскольку игрок в системе Glicko имеет и рейтинг, и RD, то обычно более информативно описать силу игрока в виде интервала (нежели просто указать его значение). Одним из путей является создание 95% доверительного интервала.

Наименьшим значением интервала является рейтинг игрока минус двойной RD, а наивысшим значением является рейтинг игрока плюс двойной RD. Так, например, если чей-либо рейтинг равен 1850 и RD равно 50, то интервал будет простираться между 1750 и 1950. Мы можем сказать тогда, что мы на 95% уверены, что реальная сила игрока лежит между 1750 и 1950. Если у игрока низкий RD, то интервал будет уже, и мы будем на 95% уверены в реальной силе игрока в меньшем интервале значений.

Марк Е. Гликман, профессор Бостонского университета
Зависимость упомянутого RD от времени. Скачки — сыгранные матчи. RDрастёт со временем и падает после очередной игры
Зависимость упомянутого RD от времени. Скачки — сыгранные матчи. RDрастёт со временем и падает после очередной игры

Здесь могли находиться формулы расчета рейтинга, но их нет. Хотите их увидеть — они вверху поста. Считается рейтинг Glicko гораздо сложнее рейтинга Elo.

Так что же с той игрой, где у игрока А и В по 1600 очков? Если победит тот, кто играл днями напролёт, то он получит меньшее количество очков, чем если бы победил его оппонент. А после игры RD обоих оппонентов снизится.

Пример игры с Glicko — Planetary Annihilation
Пример игры с Glicko — Planetary Annihilation

Рейтинг Glicko-2

Вводим ещё один параметр! Теперь помимо основного рейтинга и RD появляется рейтинг изменчивости. Здесь система учитывает вероятность вашей победы или проигрыша.

Если вы играете стабильно, побеждая там, где должны победить и проигрывая более сильным соперникам, рейтинг изменчивости падает. Но если вы, имея платину, проигрываете бронзе или разрываете лучших игроков с подрубленными читами — рейтинг изменчивости будет расти.

Пример игры с модернизированной Glicko-2 — Counter-Strike: Global Offensive
Пример игры с модернизированной Glicko-2 — Counter-Strike: Global Offensive

Для меня Global Offensive — это пример игры, где вообще максимально непонятно, как меняется твой ранг. Ты можешь безрезультатно побеждать бесконечное количество игр, но после одного поражения тебя понизят. Valve не разглашает, как именно работает их рейтинговая система, и такой политики придерживаются и многие другие разработчики.

Можно было бы начать рассуждения со слов «с одной стороны, это плохо, потому что игроки не знают, сколько им играть до следующего ранга», но нет. Это – хорошо. Потому что будь их система на виду, как в упомянутой Brawlhalla, игроки смогли бы определить, за что даётся больше очков рейтинга, а за что – меньше. Игроки бы поняли, что за обезвреживание бомбы, например, даётся больше очков, чем за убийства в голову, а за высокую точность – больше, чем за спасение заложников.

С этой информацией армия игроков стала бы фармить, и уже через пару дней игру заполонили бы псевдо-элиты. А пока игроки просто знают, что для повышения нужно побеждать, и это – вся информация, которая и необходима для нормальной игры, не переходящей в задротство. Если интересно, то на DTF уже есть подробная статья про рейтинг в CS (есть даже график, похожий на тот, что я использовал выше, но как-то я не осилил тамошнее объяснение). Однако что-то я отвлекся от темы, скажем — это было небольшое отступление на конкретном примере.

Резюмируя, можно определить, из каких параметров состоит рейтинг Glicko-2. Во-первых, это основной рейтинг, показывающий, насколько хорош игрок. Во-вторых, это RD — показатель, определяющий, насколько точен основной рейтинг. В-третьих, это рейтинг изменчивости, определяющий стабильность игры у игрока. В-четвертых, это период времени, на котором производится расчёт. Ну и, если хотите посмотреть, как считается Glicko-2 — вот так. А может и не так, у меня просто интеллекта не хватило понять описанное (RD вроде есть, рейтинг изменчивости — тоже, а вообще, отстаньте от меня, я гуманитарий).

Рейтинг TrueSkill

Разработан компанией Microsoft для игр сервиса Xbox Live. О работе этой системы в интернете есть даже отдельная презентация, разобраться в которой весьма затруднительно.

В отличие от Glicko-2, имеет всего два параметра. Больше никаких там рейтингов изменчивости, только «мю» и «сигма». Первый определяет скилл игрока, второй — степень неопределённости в этом скилле (что-то похожее на RD).

Мю— вертикальная линия на отметке 25 (это не основной рейтинг, а отметка, указывающая положение диапазона на кривой); сигма — горизонтальная, описывающая конкретный диапазон. Зелёная область — рейтинг игрока (сама кривая) при значении мю в пределах от 15 до 20
Мю— вертикальная линия на отметке 25 (это не основной рейтинг, а отметка, указывающая положение диапазона на кривой); сигма — горизонтальная, описывающая конкретный диапазон. Зелёная область — рейтинг игрока (сама кривая) при значении мю в пределах от 15 до 20

Игроки с такой системой начинают на отметке 25 (это мю) при сигме в 25/3. Это означает, что истинный рейтинг новичков колеблется примерно в районе 21-29 очков. Чем больше матчей сыграл игрок, тем меньше диапазон сигма и тем точнее система определяет рейтинг. Крутость игрока определяется его средней эффективностью в нескольких последних матчах.

Посткриптум

Есть ещё какая-то неведомая система Ree, находящаяся в открытом доступе, но информации о ней — кот наплакал. Как я понял, она не используется в видеоиграх напрямую, но позволяет вести учёт рейтинга чего-либо непосредственно на сайте.

Засим откланяюсь. Всем хороших игр и высокого рейтинга.

155155
38 комментариев

Опять сожрало картинки! Ведутся танцы с бубном.
Эй, модерация, почему ДТФ режет картинки?)

5

Опять ЕА, так и знал что они тут замешаны, спасибо что открыл глаза, лайк!1!

51

Над этим работаем! Спасибо вам за текст, чутка его подредактировали, чтобы в соцсети вывести.

3

Люблю дтф-познавательный

6

Не очень хорошо знаком с другими системами, но абсолютно не прописана суть эло: этот рейтинг, по сути, просто баесовская переменная, с помощью которой высчитывается вероятность победы одного игрока над другим. То есть дело не в какой-то "справедливости", а в том, что эта система стремится предсказывать итог столкновения. Так что в случае, когда выигрывает более "вероятный" игрок логично, что рейтинги обоих изменяются мало (так как ожидания системы оказываются близко к реальности), а вот когда побеждает underdog, рейтинги обоих меняются довольно сильно.

4

Хорошая статья. В некоторых случаях фактор "не играния игроком n-дней" не вписывается в формулу, а тупо обнуляет рейтинг.

2

это вы про КС что ли? с калибровкой? я думаю, там не обнуление. просто система прячет рейтинг при слишком высокой РД