Шкала XVM

Есть вопросы? Обращайтесь в тему «Шкала XVM» на официальном форуме поддержки XVM.

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

Шкала XVM была задумана и реализована, когда в XVM впервые появилось возможность отображения более одного рейтинга. Встал вопрос, как человек может сравнить значения одного рейтинга со значением другого? Например, с ходу не скажешь, что лучше 1200 по рейтингу эффективности (EFF), или 1400 по WN8, или 7000 по личному рейтингу игрока (WGR), или 52% побед. При сравнении любой пары показателей возникает такой вопрос. Плюс при переходе с одного рейтинга на другой неудобно привыкать к значениям нового рейтинга. Более того даже значения одного и того же рейтинга со временем могут менять смысл, так как многие аспекты игры со временем меняются, а иногда изменяются и резко. Например, при ребалансе артиллерии (когда арту с 8 уровня перенесли на 10-й и т.п.) изменился средний уровень танков у большинства игроков, соответственно численные значения рейтингов изменились.

Задумка шкалы в том, чтобы было так: если при создании шкалы число X по рейтингу A — это хорошо, а число Y- плохо, то и через 5 лет число X по любому рейтингу B — это столь же хорошо, а Y — столь же плохо. Таким образом можно хоть на пару лет отлучиться от игры, потом вернуться во времена популярности других рейтингов, но шкала XVM покажет любой современный рейтинг в том же виде, как старый 2 года назад.

За основу шкалы был взят так называемый процент превосходства (%SUP). Берем всех игроков и считаем их рейтинги. Сортируем игроков по выбранному рейтингу от самого высокого к самому низкому. Процент превосходства- это процент игроков, которые имеют рейтинг ниже данного. Пример графиков процента превосходства для разных рейтингов:

Процент превосходства для разных рейтингов

Каждому проценту превосходства соответствует определенное значение числа от 0 до 100. Соответствие подобрано таким образом, чтобы в привычные диапазоны окраски попадало примерно равное количество значений шкалы. График соответствия процента превосходства и значений по шкале XVM:

График соответствия процента превосходства и значений по шкале XVM

Почему бы не использовать непосредственно процент превосходства?
— Тогда во-первых, придется использовать как минимум 4 знака для отображения рейтинга (даже 6 знаков, если учесть точку и символ процента), во вторых значимость прибавки в разных диапазонах будет совершенно несоизмерима.
Фиолетовые игроки начинаются и 99.9% превосходства. Их между собой надо тоже как-то разделить и выделить еще одну цифру, то есть отображать от 0,00% до 100.00%. При этом скажем %SUP(EFF=750) = 41.50%, %SUP(EFF=800) = 49.45% — прибавили 50 баллов рейтинга и получили весьма существенную разницу 7.95%, а теперь возьмем те же 50 баллов разницы для других значений рейтинга: %SUP(EFF=1750) = 99.80%, %SUP(EFF=1800) = 99.86% и получили какие-то 0,06% разницы (в 130 раз меньше, чем в первом случае). В этом было бы весьма трудно ориентироваться. Для сравнения то же самое по шкале XVM: XEFF(EFF=750) = 26, XEFF(EFF=800) = 29 и XEFF(EFF=1750) = 88, XEFF(EFF=1800) = 90. Во всём значимом диапазоне 15-25 баллов исходного рейтинга соответствуют 1 баллу шкалы XVM.

Для того чтобы реализовать главную задумку шкалы — неизменность смысла значений, нужно было определиться с критериями отбора игроков, который попадают в список, по которому строится %SUP. И этот критерий должен быть по возможности неизменным. Так как в то время API стабильно работал только на РУ кластере, игроки для шкалы отбираются только РУ сервера. Дабы отбросить начинающих игроков, учитываются только игроки от 1000 боев и выше. Дабы отбросить уже не играющих игроков, которых мы не можем встретить в бою, учитываются только игроки, которые были в бою хотя бы один раз за последние 90 дней. Формула соответствия значений шкалы и процента превосходства (по MS Excel):
%Sup = ГАММА.РАСП(19 + Xrating/100*(100-19); 11; 4; ИСТИНА)+0.0005
%Sup = GAMMA.DIST(19 + Xrating/100*(100-19); 11; 4; TRUE)+0.0005

Цветовая шкала.

Цветовая шкала рейтингов строится исходя из того, какие значения рейтингов соответствуют определенным значениям %SUP:

Красный: %SUP < 20%
Оранжевый: 60% > %SUP >= 20%
Желтый: 90% > %SUP >= 60%
Зеленый: 99% > %SUP >= 90%
Бирюзовый: 99.9% > %SUP >= 99%
Фиолетовый: %SUP >= 99.9%

Текущая (патч 0.9.15) таблица цветовой шкалы:

цветовая шкала

 

Формулы перевода в шкалу XVM.

Текущие (патч 0.9.10) формулы перевода значений рейтингов в шкалу XVM:

XEFF = if(EFF>2250; 100; max(min(EFF*(EFF*(EFF*(EFF*(EFF*(0.000000000000000013172*EFF — 0.000000000000092286) + 0.00000000023692) — 0.00000027377) + 0.00012983) + 0.05935) — 31.684; 100); 0))
XWN6 = if(WN6>2350; 100; max(min(WN6*(WN6*(WN6*(WN6*(WN6*(0.000000000000000001225*WN6 — 0.000000000000007167) + 0.000000000005501) + 0.00000002368) — 0.00003668) + 0.05965) — 5.297; 100); 0))
XWN8 = if(WN8>3650; 100; max(min(WN8*(WN8*(WN8*(WN8*(WN8*(-0.00000000000000000007656*WN8 + 0.0000000000000014848) — 0.0000000000099633) + 0.00000002858) — 0.00003836) + 0.0575) — 0.99; 100); 0))
XWGR = if(WGR>11100; 100; max(min(WGR*(WGR*(WGR*(WGR*(WGR*(-0.0000000000000000000013018*WGR + 0.00000000000000004812) — 0.00000000000071831) + 0.0000000055583) — 0.000023362) + 0.059054) — 47.85; 100); 0))
Актуальные формулы в исходном коде XVM: xvm_scale.py

Наглядные графики:График соответствия исходных значений рейтингов и их значений по шкале XVMГрафик соответствия исходных значений рейтингов и их значений по шкале XVM