概要


ランクバトルに参加した各NFTは、グローバルリーダーボードでランキングされます。

ランクバトルでは、現在ELOスコアリングシステムが採用されています。

Elo


EloはArpad Eloにちなんで名付けられたもので、競技スポーツからチェスまで多くのゲームにおけるランキングシステムの基礎となっています。一般的なEloシステムでは、プレイヤーは1500の平均スコアからスタートします。 良い成績を収めれば(対戦相手に勝てば)、Eloスコアは上昇します。一方、成績が悪ければ(対戦相手に負ければ)、Eloスコアは低下します。システムは、平均スコアでバランスをとります、つまりEloスコアの観点から、各マッチはゼロサム(勝者のスコアは敗者のスコアが低下すると同じくらい上昇する)であることを意味します。

時間が経つにつれ、各プレイヤーのスコアは、リーダーボード上の他のプレイヤーとの相対的なスキルを正確に表すようになります。実際、このシステムは、プレイヤーの期待勝率を表すように設計されています。具体的には、200点上のプレイヤーが下位のプレイヤーに勝つ確率は76%、100点上のプレイヤーが下位のプレイヤーに勝つ確率は64%です。

これは、逆転勝利がよりスコアに影響することも意味します。例えば、スコアが大きく異なるプレイヤー同士の対戦で、スコアの低いプレイヤーが勝てば、スコアは大きく上昇します。しかし、スコアの高いプレイヤーが勝っても、スコアが変わらないことがあります。

Elo理論


プレイヤー$A$ 、プレイヤー$B$ のレーティングをそれぞれ$R_A$ , $R_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> 💡 Eloレーティング1500のプレイヤー $A$ とEloレーティング1600のプレイヤー $B$ の対戦を考えてみましょう。

$E_A$ は以下のように計算されます。 $\frac{1}{1+10^\frac{1600-1500}{400}}\approx 0.360$ $E_B$ は $\frac{1}{1+10^\frac{1500-1600}{400}}\approx 0.640$ となります。

</aside>

つまり、プレイヤー $A$ がプレイヤー $B$ に勝つ確率は36%程度、プレイヤー $B$ がプレイヤー $A$ に勝つ確率は64%程度と予想されます。

なお、試合は2人のプレーヤーで行われるので、$E_A+E_B = 1$ です。理想的な対戦は、2人のプレイヤーの技量差が最小になる対戦、つまり $E_A \approx E_B$ となる対戦であり、これは $R_A \approx R_B$ の場合にのみ可能です。

プレイヤー $A$ を挑戦者とします(このプレイヤーの視点から試合の結果を検討します)。$Result$ は、プレイヤー $A$ が勝ったか、引き分けたか、負けたかによって、 $1$, $0.5$, または $0$として記録されます。

プレイヤー$A$ の試合後の修正Eloレーティングは以下のように計算されます:

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

プレイヤー $B$ の試合後の修正Eloレーティングは以下のように計算されます:

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

$K$ はKファクターまたは開発係数と呼ばれ、1回のElo更新でプレイヤーのスコアが変化する最大絶対量のことです。言い換えれば、Kファクターが高ければ高いほど、プレイヤーのEloレーティングはより不安定になります。$K$ を決定する方法についてはEloの調整の項を参照してください。

両プレイヤーの計算では,挑戦したプレイヤー(この場合はプレイヤー$A$ )のKファクターが使用されます。

<aside> 💡 Eloレーティング $1500$ のプレイヤー $A$ とEloレーティング $1600$ のプレイヤー $B$ の対戦を考えてみましょう。プレイヤー $B$ がマッチを仕掛け、その $B$ が20であるとします。ここで、$E_A \approx 0.360$ と $E_B \approx 0.640$ を思い出します。

考えられるケースは以下の3つです:

プレイヤー $A$ が勝利した場合、 $Result = 1$。 $A$ の新しいEloは $\approx 1500+20*(1-0.360) = 1512.8$, $B$ の新しいEloは $\approx 1600+20*(1-1-0.640)=1587.2$ となります。

プレイヤー $A$ とプレイヤー $B$ が同点ノア場合、 $Result = 0.5$. $A$ の新しいEloは $\approx 1500+20*(0.5-0.360) = 1502.8$, $A$ の新しいEloは $\approx 1600+20*(1-0.5-0.640)=1597.2$ となります。

プレイヤー $A$ が敗北した場合 $Result=0$. $A$ の新しいEloは $\approx 1500+20*(0-0.360) = 1492.8$ ,$A$ の新しいEloは $\approx 1600+20*(1-0-0.640)=1607.2$ となります。

</aside>

両者の更新に同じKファクターを使用し、 $E_A+E_B = 1$ であるため、勝利した側が得るポイントは、負けた側が失うポイントと全く同じであることに注意してください。また、Eloスコアの高いプレイヤーは失うものが多いことに注意します。高いレートのプレイヤーは、勝った場合は低いレートのプレイヤーより得るものが少なく、負けた場合は低いレートのプレイヤーより失うものが多くなります。これは、高評価のプレイヤーは勝つ可能性が高いと予想されるため(この例では$E_B$ が $E_A$ より高い)、勝ったとしても低評価のプレイヤーが勝った場合より動揺が少ないからです。さらに、たとえ引き分けでも、低評価のプレイヤーが高評価のプレイヤーからEloスコアを獲得していることにも注意します。

Eloの調整


プレイヤーのKファクターを決定する方法は、FIDEレイティングレギュレーションから引用しています。システムは動的であり、基準は以下の通りです:

  1. $K=40$ → この K ファクターは、30 ゲーム未満のプレイヤーに使用されます。 Elo スコアの発見をスピードアップするために、より多くの変動性が必要です。 初期の K ファクターが高いほど変動性が大きくなり、新しいプレーヤーが自分のスキルに見合った範囲にすばやく移動できるようになります。
  2. $K=20$ → この K ファクターは、30 以上のゲームをプレイし、スコアが $2400$ 未満のプレイヤーに使用されます。より経験豊富なプレイヤーは、すでにスキルに見合った範囲にいると想定されます。 評価の変化のばらつきが少ないと、より正確なマッチメイキングに役立ちます。
  3. $K=10$ → この K ファクターは、30 以上のゲームをプレイし、スコアが $2400$ 以上のプレーヤーに使用されます。 プレイヤーの Elo が $2400$ を下回っても、K ファクターは $10$ のままです。経験が豊富でスキルの高いプレイヤーは、正確なスコアを得るために、レーティングの変化に大きなばらつきは必要ありません。

マッチメイキング


プレイヤーが自分のNFT(挑戦者NFT)で対戦を開始すると、マッチメイキングシステムは挑戦者NFTのEloと許容範囲内の偏差を持つNFTのグループをランダムに選択します。次に、対戦相手プールの目標サイズを決定します。そして、対戦相手プールからランダムに対戦相手が選ばれ、チャレンジャーとマッチングされます。

➡️ 挑戦者NFTのElo:1,600

➡️ 許容可能なEloの偏差:100

➡️ 対戦相手プールのEloの範囲: 1,500 ≤ x ≤ 1,700

➡️ 対戦相手のプールのサイズ:30¹

対戦相手のプールの構成

1,500 から 1,600 の間で 15 人の対戦相手が選択され、1,600 から 1,700 の間で 15 人の対戦相手が選択されます。


注:

  1. 対戦相手プールのプレイヤー数は、ゲームの開始が近づくにつれて確定されます。

<aside> ⬅️ 戻る

</aside>

<aside> ➡️ 次のページ

</aside>