Обзор


Каждый NFT, представленный в Ранговых Сражениях, получает рейтинг в глобальной таблице лидеров.

В режиме рейтинговых сражений в настоящее время используется система подсчета очков ELO.

Elo


Elo, названная в честь Arpad Elo, является основой для систем ранжирования во многих играх, начиная от соревновательных видов спорта и заканчивая шахматами. В типичной системе Elo игроки начинают со среднего показателя 1500. Если игроки показывают хорошие результаты (выигрывают у соперника), их рейтинг Elo повышается. Если они выступают плохо (проигрывают противнику), их показатель Elo падает. Система балансирует на уровне среднего балла, то есть с точки зрения Elo каждый матч имеет нулевую сумму (счет победителя растет настолько, насколько падает счет проигравшего).

Со временем счет каждого игрока должен точно отражать его мастерство относительно других игроков в таблице лидеров. На самом деле, система разработана таким образом, чтобы отражать ожидаемый процент побед игроков. В частности, игрок, имеющий на 200 очков больше, чем другой игрок, должен выигрывать у игрока с более низким рейтингом в ~76% случаев, в то время как игрок, имеющий на 100 очков больше, чем другой игрок, должен выигрывать у игрока с более низким рейтингом в ~64% случаев.

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

Методология Elo


Пусть $R_A$ и $R_B$ рейтинги Игрока $A$ и Игрока $B$, соответственно.

Ожидаемый коэффициент выигрыша Игрока ******$A$ рассчитывается следующим образом:

$E_A = \frac{1}{1+10^\frac{R_B-R_A}{400}}$

Ожидаемый коэффициент выигрыша Игрока $B$ ******рассчитывается следующим образом:

$E_B = \frac{1}{1+10^\frac{R_A-R_B}{400}}$

$E_A$ и $E_B$ можно интерпретировать как вероятность того, что Игрок $A$ и Игрок $B$ выиграют матч друг у друга, соответственно.

<aside> 💡 Рассмотрим матч между Игроком $A$ с Elo рейтингом $1500$ и Игроком $B$ с Elo $1600$.

Мы считаем $E_A$ как $\frac{1}{1+10^\frac{1600-1500}{400}}\approx 0.360$ и $E_B$ as $\frac{1}{1+10^\frac{1500-1600}{400}}\approx 0.640$.

</aside>

Это значит, что Игрок $A$ имеет около 36% шансов выиграть у Игрока $B$ тогда как Игрок $B$ имеет около 64% шансов выиграть у Игрока $A$.

Заметим, что$E_A+E_B = 1$ поскольку матчи проводятся между двумя игроками. Идеальными матчами являются те, в которых разница в мастерстве двух игроков минимальна, другими словами, матч, в котором $E_A \approx E_B$, что возможно только если $R_A \approx R_B$.

Пусть Игрок $A$ является инициатором (с чьей точки зрения мы рассматриваем результаты матча). Результат $Result$ записывается как $1$, $0.5$, или $0$, в зависимости от того, выиграл ли Игрок $A$ сыграл вничью или проиграл.

Скорректированный рейтинг Elo после матча для Игрока $A$ рассчитывается следующим образом:

$R’_A = R_A + K *(Result-E_A)$

Скорректированный рейтинг Elo после матча для Игрока $B$ рассчитывается следующим образом:

$R’_B = R_B + K *(1-Result-E_B)$

Величина $K$ известна как K-фактор или коэффициент развития, и это максимальная абсолютная величина, на которую может измениться рейтинг игрока за одно обновление Elo. Другими словами, чем выше коэффициент K, тем более изменчив рейтинг Elo игрока. Методологию определения K см. в Elo Adjustments .

В расчетах для обоих игроков будет использоваться K-фактор игрока-инициатора, в данном случае Игрока Player $A$.

<aside> 💡 Рассмотрим матч между Игроком $A$ с Elo $1500$ и Игроком $B$ с Elo $1600$. Предположим, что Игрок $A$ инициировал матч и его $K$ составляет $20$. Мы помним, что $E_A \approx 0.360$ и $E_B \approx 0.640.$

Возможны следующие три случая: Если Игрок $A$ выигрывает, то $Result = 1$. Новый Elo Игрока $A$ $\approx 1500+20*(1-0.360) = 1512.8$ тогда как новый Elo Игрока $B$ $\approx 1600+20*(1-1-0.640)=1587.2$.

если Игрок $A$ и Игрок $B$ получают ничью, то $Result = 0.5$. Новый Elo Игрока $A$ $\approx 1500+20*(0.5-0.360) = 1502.8$ тогда как новый Elo Игрока $B$ $\approx 1600+20*(1-0.5-0.640)=1597.2$.

Если игрок $A$ проигрывает, то$Result=0$. Новый Elo Игрока $A$ $\approx 1500+20*(0-0.360) = 1492.8$ тогда как новый Elo Игрока $B$ $\approx 1600+20*(1-0-0.640)=1607.2$.

</aside>

Заметим, что поскольку мы используем один и тот же коэффициент K для обновления обеих сторон и поскольку $E_A+E_B = 1$, то очки, набранные выигравшей стороной, в точности равны очкам, потерянным проигравшей стороной. Мы также заметили, что игрок с более высоким показателем Elo больше теряет; игрок с более высоким рейтингом получает меньше, чем игрок с более низким рейтингом при выигрыше, но теряет больше, чем игрок с более низким рейтингом при проигрыше. Это происходит потому, что ожидается, что игрок с более высоким рейтингом будет иметь больше шансов на победу (в примере $E_B$ был выше, чем $E_A$), и поэтому, если он выиграет, это будет меньшим разочарованием, чем если бы выиграл игрок с более низким рейтингом. Более того, мы также отмечаем, что даже если два игрока сыграют вничью, игрок с более низким рейтингом все равно получит очки Elo от игрока с более высоким рейтингом.

Корректировка Elo


Методология определения коэффициента К игрока взята из Правил Рейтинга ФИДЕ. Система является динамической, а критерии следующие::

  1. $K=40$ → Этот K-фактор используется для игроков, сыгравших менее 30 игр; нам нужна большая вариативность, чтобы ускорить нахождение очков Elo. Более высокий начальный K-фактор добавляет дополнительную вариативность и гарантирует, что новые игроки могут быть быстро переведены в диапазон, соответствующий их мастерству.
  2. $K=20$ → Этот K-фактор используется для игроков, сыгравших более 30 игр и имеющих рейтинг менее 2400. Предполагается, что более опытные игроки уже находятся в диапазоне, соответствующем их мастерству; меньшая вариативность в изменении рейтинга помогает более точному подбору матчей.
  3. $K=10$ → Этот К-фактор используется для игроков, сыгравших более 30 игр и имеющих рейтинг более 2400; К-фактор остается равным 10, даже если Elo игрока опускается ниже 2400. Высокоопытным и высококвалифицированным игрокам не требуется такой большой вариативности в изменении рейтинга, чтобы иметь точную оценку.

Матч-апы


Когда игрок начинает бой со своим НФТ (мы будем называть его НФТ Челленджера), система матчмейкинга случайным образом выбирает группу НФТ, которые находятся в пределах допустимого отклонения от Elo НФТ Челленджера. Затем мы определяем размер пула соперников. Случайный соперник будет выбран из пула соперников и сопоставлен с Челленджером.

Пример

➡️ Челленджер NFT Elo: 1,600

➡️ Допустимое отклонение Elo: 100

➡️ Пул соперников в Диапазоне Elo: 1,500 ≤ x ≤ 1,700

➡️ Размер пула соперников: 30¹

Состав пула соперников

15 соперников будут выбраны в диапазоне от 1 500 до 1 600 и 15 соперников будут выбраны в диапазоне от 1 600 до 1 700.


Заметки:

  1. Количество игроков для пула соперников будет окончательно определено ближе к запуску игры.

<aside> ⬅️ Back

</aside>

<aside> ➡️ Next

</aside>