Каждый NFT, представленный в Ранговых Сражениях, получает рейтинг в глобальной таблице лидеров.
В режиме рейтинговых сражений в настоящее время используется система подсчета очков ELO.
Elo, названная в честь Arpad Elo, является основой для систем ранжирования во многих играх, начиная от соревновательных видов спорта и заканчивая шахматами. В типичной системе Elo игроки начинают со среднего показателя 1500. Если игроки показывают хорошие результаты (выигрывают у соперника), их рейтинг Elo повышается. Если они выступают плохо (проигрывают противнику), их показатель Elo падает. Система балансирует на уровне среднего балла, то есть с точки зрения Elo каждый матч имеет нулевую сумму (счет победителя растет настолько, насколько падает счет проигравшего).
Со временем счет каждого игрока должен точно отражать его мастерство относительно других игроков в таблице лидеров. На самом деле, система разработана таким образом, чтобы отражать ожидаемый процент побед игроков. В частности, игрок, имеющий на 200 очков больше, чем другой игрок, должен выигрывать у игрока с более низким рейтингом в ~76% случаев, в то время как игрок, имеющий на 100 очков больше, чем другой игрок, должен выигрывать у игрока с более низким рейтингом в ~64% случаев.
Это также означает, что обидные победы больше влияют на счет. Например, в матче между двумя игроками с разным счетом, если победит игрок с более низким счетом, его счет значительно увеличится. Однако если выиграет игрок с более высоким счетом, его счет может не измениться.
Пусть $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 НФТ Челленджера. Затем мы определяем размер пула соперников. Случайный соперник будет выбран из пула соперников и сопоставлен с Челленджером.
Пример
➡️ Челленджер NFT Elo: 1,600
➡️ Допустимое отклонение Elo: 100
➡️ Пул соперников в Диапазоне Elo: 1,500 ≤ x ≤ 1,700
➡️ Размер пула соперников: 30¹
Состав пула соперников
15 соперников будут выбраны в диапазоне от 1 500 до 1 600 и 15 соперников будут выбраны в диапазоне от 1 600 до 1 700.
Заметки:
<aside> ⬅️ Back
</aside>
<aside> ➡️ Next
</aside>