概览


每个提交到排位战的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$ as $\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$ 对玩家 $B$ 有大约36%的预期获胜机会,而玩家 $B$ 对玩家 $A$ 有大约64%的预期获胜机会。

我们注意到 $E_A+E_B = 1$ ,因为比赛是在两个玩家之间进行。理想的比赛是两个玩家之间的技术差异最小的比赛,换句话说,就是 $E_A \approx E_B$ 的比赛,这只有在 $R_A \approx R_B$ 时才可能。

让玩家 $A$ 为挑战者(从其角度考虑比赛结果)。根据玩家 $A$ 的胜利、平局或失败,$Result$ 被记录为 $1$, $0.5$, or $0$。

玩家 $A$ 赛后调整后的Elo等级计算如下:

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

玩家 $B$ 赛后调整后的Elo等级计算如下:

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

$K$ 被称为K因子或发展系数,它是一个玩家的分数在一次Elo更新中所能改变的最大绝对量。换句话说,K因子越高,玩家的Elo评分就越不稳定。参见 Elo调整 关于确定 $K$ 的方法的章节。

在计算这两名玩家时,将使用挑战者玩家的K因子,在本例中为玩家 $A$ 。

<aside> 💡 考虑一个玩家 $A$ Elo等级为 $1500$ 分和玩家 $B$ Elo等级为 $1600$ 分之间的对决。假设玩家 $A$ 挑起了这场比赛,他们的 $K$ 为 $20$。我们记得 $E_A \approx 0.360$ 和 $E_B \approx 0.640.$

三种可能的情况如下:

如果玩家 $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$,而玩家 $B$ 的新Elo为 $\approx 1600+20*(1-0.5-0.640)=1597.2$.

如果玩家 $A$ 输了,那么 $Result=0$. 玩家 $A$ 的新Elo为 $\approx 1500+20*(0-0.360) = 1492.8$ ,而玩家 $B$ 的新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因子的方法来自于国际棋联评级规则。该系统是动态的,其标准如下:

  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,这些NFT与挑战者NFT的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> ⬅️ 上一页

</aside>

<aside> ➡️ 下一页

</aside>