Игры Zampo1it Ggg
8 943

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

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

В закладки

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

Вот так

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

Рейтинг Elo

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

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

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

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

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

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

Без паники! На примере всё сразу прояснится. В этом мне поможет игра с открытой (пользователи видят, как изменяется их ранг) 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растёт со временем и падает после очередной игры

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

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

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

Рейтинг Glicko-2

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

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

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

Посткриптум

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

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

Материал дополнен редакцией
{ "author_name": "Zampo1it Ggg", "author_type": "self", "tags": [], "comments": 32, "likes": 162, "favorites": 73, "is_advertisement": false, "subsite_label": "games", "id": 21536, "is_wide": false }
{ "id": 21536, "author_id": 31846, "diff_limit": 1000, "urls": {"diff":"\/comments\/21536\/get","add":"\/comments\/21536\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/21536"}, "attach_limit": 2, "max_comment_text_length": 5000 }

32 комментария 32 комм.

Популярные

По порядку

Написать комментарий...

Zampo1it Ggg

5

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

Ответить

Алекс Макаров

Zampo1it
49

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

Ответить

Капитан Завтра

Алекс
10

Даунгрейд картинок от, ЕА

Ответить

Максим Чёрствый

Капитан
5

На прошлом видео с Е³ было лучше

Ответить

Андрей Верещагин

Zampo1it
3

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

Ответить

Nick Parker

6

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

Ответить

Max Yankov

4

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

Ответить

Михаил Лапин

2

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

Ответить

Zampo1it Ggg

Михаил
0

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

Ответить

Михаил Лапин

Zampo1it
0

Да про кс частично, но ещё и про игры которые обнуляют рейтинг или его понижают если долго не играть.

Ответить

lamurchik

Михаил
0

Это, кстати, плюс. Вернувшись сейчас в кс, я буду играть с такими же ракалами. А вот в овере или дотке (хотя после моего ухода вродь был сброс калибровки) таких толстых куев напихают, что щеки порвутся))) Ваш КО.

Ответить

Михаил Лапин

lamurchik
0

Я не считаю что это плюс, вернувшись в кс сейчас я буду играть на том же уровне что и сейчас и молодые игроки от этого только пострадают.

Ответить

Олег Воскобоев

Михаил
1

Считается, что есть период "восстановления навыков"

Ответить

Михаил Лапин

Олег
1

Считается, но лично я считаю что так считать неправильно, потому что я же не живу в вакууме и наверняка и в другие шутеры/стратегии/моба играю, правда для этого уже нужна куда более сложная формула и влезание в файлы других игр, пограничное с вмешательством в личную жизнь, зато как круто было бы.

Ответить

lamurchik

Михаил
1

Пока ты спишь твой враг качается. Не будешь ты играть на том же уровне после перерыва даже в месяц.

Ответить

Михаил Лапин

lamurchik
0

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

Ответить

Валентин Шишкин

1

Очень интересная статья, спасибо

Ответить

Павел Куприянов

1

Отличная дипломная работа получилась!

Ответить

Evgenyi V.Reshetnyak

0

А где самая распространенная система +25/-25?

Ответить

Просто Обыватель

0

В КС ГО помню классная система: обнуление ранга = снижение на одну позицию. Если на мидл скилле это все легко апается, то с суприма до глобала подниматься сущий ад. На суприме были самые ЧСВшные игроки с без стрессоустойчивости.(личное впечатление, моё и друга)

Так же эти системы не учитывают попадание в твою команду лоускилла с купленным бустом или самого бустера. А учитывая фокус игр на командную работу, наличие в тиме ЛСа или ХСа = равно несправедливое понижение/повышение.

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

Ответить

Роман Николаев

Просто
1

Яро плюсую. Суприм это буквально чан с тилтерами, у которых каждая игра решающая.
Хотя так было по сути во всех мультиплеерных играх с условными "дивизионами", пограничная зона всегда была заполнена людьми тилтящими, из-за того, что надолго застряли на переправе.
Стрессоустойчивый игрок среднего скила всегда > горящего тиммэйта с рефлексами кошки, играющего в игру по сути в соло.

Ответить

Joyse Foster

Просто
0

Ну так репорт, нет?

Ответить

Sergey Goretsky

0

Прекрасный материал. Спасибо.

Ответить

Curio Sity

0

увидел про Elo - вспомнил про шахматы, вот только емнип максимальный рейтинг по этой системе имеет предел

Ответить

Пётр Романов

Curio
0

Ну там сама система подразумевает, что число очков за победу растёт всё медленнее когда победы становятся слишком предсказуемыми.

Ответить

Даниил Булаев

Curio
0

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

Ответить

askhat kakimov

0

Хорошая и интересная статья ^_^

Ответить

Дмитрий Новохацкий

0

Да все понятно

Ответить

Теплый Ламповый

0

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

Наоборот же.

Ответить

Zampo1it Ggg

Теплый
0

нет, не наоборот. вы вообще читали текст после приведенной цитаты?)

Ответить

Григорий Мовчан

0

кстати в тиндере рейтинг ELO используется

Ответить

Kysh

–1

А теперь расскажи все это близзам, а то они никак не научатся. И про мэтчмейкинг...

Ответить
0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]