Как работает рейтинг игроков по чемпионам
Эта страница объясняет от начала до конца, как Top of League отвечает на вопрос «кто лучше всех играет на этом чемпионе»: кто попадает в таблицу, как считаются очки, почему ровно 30 игр, через какие шаги проходят данные и чего таблица не может сказать.
Содержание
- В одном абзаце
- Почему рейтинг по чемпионам
- Кто попадает в таблицу
- Очки
- Почему ровно 30 игр
- Как мы узнаём, что игра была лобби Мастер+
- Откуда берутся данные
- Как читать таблицу
- Чего таблица не может сказать
- Приватность и политика Riot
- Глоссарий
- Частые вопросы
В одном абзаце
У каждого чемпиона своя таблица. Игрок попадает в таблицу чемпиона X, если он сейчас Мастер или выше и у него ровно 30 последних игр соло/дуо на X в лобби Мастер+. Порядок — Очки = LP + 300 × (WR₃₀ − 0,5): официальный LP Riot решает почти всё, винрейт за эти 30 игр только разбивает ничьи. Все числа приходят из Riot Games API и пересчитываются каждый час.
Почему рейтинг по чемпионам
Общий ранг отвечает на вопрос «насколько ты хорош в League», а не «насколько ты хорош на Азире». Претендент с 400 играми на Азире и Претендент на пятой игре делят ранг, но явно не уровень на этом чемпионе. Очки мастерства тоже не помогают: они измеряют время игры, а не результат.
Таблица по чемпиону закрывает этот пробел, рассматривая только тех, кто доказал две вещи одновременно: они на вершине ладдера и действительно играют на этом чемпионе на этом уровне. Именно это нужно тому, кто учит чемпиона: кого смотреть, у кого учиться, на своём сервере.
Кто попадает в таблицу
Игрок появляется в таблице чемпиона X, когда одновременно выполняются четыре условия:
- Текущий ранг Мастер или выше в соло/дуо по последнему снимку. Мастер, Грандмастер и Претендент делят шкалу LP, так что сравнение осмысленно.
- Ровно 30 последних зачётных игр. Не «не менее 30»: берутся 30 новейших, более старые отбрасываются.
- Зачётная игра — лобби Мастер+ (см. оценку ниже), не переигровка, очередь 420.
- Условия по винрейту нет. 12 из 30 остаётся в рейтинге, просто ниже.
Условие 3 существует, чтобы закрыть один конкретный случай: сыграть 30 игр на X в Изумруде, а затем подняться до Мастера на другом чемпионе. В тех изумрудных играх почти нет никого из пула Мастер+, поэтому они не считаются.
Очки
Очки = LP + K × (WR₃₀ − 0,5) при K = 300. LP — официальные очки из последнего снимка. WR₃₀ — винрейт за 30 последних зачётных игр на чемпионе.
Почему K = 300? LP Мастер+ идёт от 0 до более 3 000. При K = 300 винрейт сдвигает максимум на ±150 очков (крайний случай 0 % или 100 %), на практике около ±30. Ранг по-прежнему доминирует, а винрейта хватает, чтобы разделить двух игроков с равным LP.
Пример
| Игрок | LP | Победы / 30 | WR₃₀ | Очки |
|---|---|---|---|---|
| A | 1 200 | 18 | 60 % | 1 200 + 300 × 0,10 = 1 230 |
| B | 1 250 | 12 | 40 % | 1 250 − 300 × 0,10 = 1 220 |
| C | 1 500 | 12 | 40 % | 1 500 − 30 = 1 470 |
A обгоняет B, несмотря на 50 LP меньше, благодаря лучшей форме на этом чемпионе. C остаётся выше обоих: разрыв в 250 LP — реальный разрыв в ранге, и винрейт его не переворачивает.
Почему ровно 30 игр
Фиксация окна на ровно 30 играх даёт одно изящное свойство: у всех одинаковый размер выборки. Поэтому два винрейта сравниваются напрямую, без байесовского сжатия, коэффициента доверия и порогов «минимум N игр». Этого нет у формул в стиле League of Graphs.
Цена: стандартная ошибка на 30 играх — 9,1 процентного пункта; ±1 стандартное отклонение равно ±27 очкам. Приемлемо для ничьих, ненадёжно для переворота реального разрыва в ранге — именно то поведение, которое нам нужно. Окно также измеряет текущую форму: тот, кто бросил чемпиона на три месяца, постепенно выпадает из таблицы по мере устаревания игр.
Как мы узнаём, что игра была лобби Мастер+
Riot API показывает только текущий ранг игрока, без истории. Нельзя спросить, какой ранг был у игрока три месяца назад. Поэтому эло игры выводится из её 10 игроков: если хотя бы 8 из 10 есть в снимках ладдера Мастер+ за последние 14 дней, это лобби Мастер+. Эта информация уже есть в деталях матча и не требует дополнительных вызовов API.
Приближение ошибается на старых играх: тот, кто был Мастером и выпал, больше не в снимке. Снимки сохраняются ежедневно с первого дня, поэтому ошибка со временем уменьшается. Порог 8/10 можно снизить до 7, если подходящих игроков слишком мало; текущее значение всегда показано на странице «Формула».
Откуда берутся данные
- Снимок ладдера (ежедневно, 3 вызова): все Претенденты, Грандмастеры и Мастера с LP, победами и поражениями. Источник LP и условия Мастер+.
- Поиск ID матчей (ежедневно, один вызов на игрока): новые ID соло/дуо с прошлого обхода.
- Детали матча (один вызов на матч, каждый матч один раз): извлекаются 10 строк с чемпионом, исходом, KDA и позицией; сырой JSON сразу отбрасывается. Один вызов даёт данные по 10 игрокам, так что обход по матчам примерно в 9 раз дешевле обхода по игрокам.
- Рейтинг (каждый час, без API): один SQL-запрос нумерует игры каждой пары игрок–чемпион от новых к старым, оставляет ровно 30, считает очки и пишет один статический JSON на чемпиона.
Вся система работает на маленьком сервере, потому что её ограничивает квота Riot API, а не процессор. Лимиты читаются из заголовков ответов Riot и держатся на уровне 85 % разрешённого.
Как читать таблицу
- Ранг, LP: официальный ранг на момент последнего снимка.
- WR за 30 игр, П–П: винрейт и победы–поражения за ровно 30 последних зачётных игр на этом чемпионе, не за весь сезон.
- KDA: (убийства + помощь) / смерти за эти 30 игр; только для справки, в очки не входит.
- Очки: значение для сортировки. Ничьи разбиваются большим LP, затем большим числом побед.
- Последняя игра: когда была последняя игра на этом чемпионе; неактивные игроки остаются в таблице, пока их не вытеснят или они не выпадут из Мастера.
Чего таблица не может сказать
Открытость об ограничениях отличает эту таблицу от существующих. Ниже сказано прямо:
- Только Мастер и выше (≈0,1 % игроков). Игроки Алмаза себя здесь не найдут.
- «Лобби Мастер+» выводится из состава матча (≥ 8/10 в снимке). Ошибается на старых играх с игроками, позже выпавшими из Мастера; ошибка уменьшается по мере накопления истории снимков.
- Окно в 30 игр несёт ±9,1 процентного пункта шума. Это цена измерения текущей формы, а не всего сезона.
- Сложность матча не измеряется. Затащить и прокатиться — одинаково одна победа.
- Пока нет разделения по ролям. Один чемпион на миде и топе делит одну таблицу.
- Riot API возвращает не более 10 000 игроков Мастера. На серверах, где Мастеров больше (VN), игроки с самым низким LP не могут попасть в рейтинг.
- Данные обновляются раз в день, не в реальном времени.
Приватность и политика Riot
Хранится и показывается только текущий Riot ID; после смены имени старое исчезает, истории имён нет. Нет поиска текущих матчей и ничего, что даёт преимущество в игре. Нет ставок, нет платного доступа. Ключ API остаётся на сервере. Сайт не связан с Riot Games; порядок основан на официальном ранге Riot и не является альтернативной рейтинговой системой.
Глоссарий
- LP (League Points)
- Официальные рейтинговые очки Riot. С Мастера дивизионов нет; три высших ранга делят одну непрерывную шкалу.
- Мастер+
- Мастер, Грандмастер и Претендент вместе; около 0,1 % рейтинговых игроков.
- WR₃₀
- Винрейт за ровно 30 последних зачётных игр на одном чемпионе.
- Лобби Мастер+
- Игра, где не менее 8 из 10 игроков входят в пул Мастер+ по последним 14 ежедневным снимкам.
- Переигровка
- Игра, завершённая досрочно из-за неподключившегося игрока; LP не меняется, не учитывается.
- Снимок ладдера
- Полная копия списка Мастер+ с LP на момент времени, сохраняется ежедневно.
Частые вопросы
- Я Алмаз, почему меня нет?
- Рейтинги охватывают только Мастер и выше, около 0,1 % игроков. Это осознанный обмен на надёжность данных.
- Как часто обновление?
- Снимки ладдера и новые матчи загружаются ежедневно; рейтинги пересчитываются каждый час. У каждой таблицы указано время обновления.
- Почему ровно 30 игр?
- У всех одинаковый размер выборки, поэтому два винрейта сравниваются напрямую без коэффициента доверия. Стандартная ошибка на 30 играх — 9,1 пункта: достаточно, чтобы разбить ничью, недостаточно, чтобы перевернуть реальный разрыв в LP.
- Это альтернатива рейтинговой системе Riot?
- Нет. Порядок основан на официальном LP Riot; винрейт только разбивает ничьи. Таблица отвечает на вопрос «кто лучше всех играет на этом чемпионе», а не измеряет общий уровень заново.
- Исключаются ли игроки с винрейтом ниже 50 %?
- Нет. Игрок с 12 победами из 30 остаётся в рейтинге, просто ниже тех, кто при равном LP выиграл больше.
- Откуда данные?
- Из Riot Games API (league-v4 и match-v5). Хранится и показывается только текущий Riot ID; истории имён и поиска текущих матчей нет.