注:本⽂部分内容源⾃⼀位论坛⼤神,但具体的来源很抱歉笔者已经忘记,如侵即删。
⽂章⽬录
0 前⾔
近年来,游戏⾏业飞速发展,⼤量不同类型的游戏涌⼊各个平台映⼊⼤众眼帘,⽽对于竞技类游戏⽽⾔,其游戏平衡的关键是如何使博弈的双⽅玩家游戏⽔平接近,势均⼒敌的对⼿更能给予玩家紧张刺激的游戏快感。
传统的排位算法有⼏种,如 ELO 算法、ATP 排名等等,⽬前传统的排位算法为国际象棋中的排位算法-国际等积分系统(ELO-rate-system), 即 ELO 算法,该名字命名于创作者埃洛教授⾃⾝。即使已经过去多年,ELO 算法还是作为基本的思想,⼴泛应⽤在了不同种类的竞技游戏中,如MOBA 游戏《英雄联盟》、《DOTA2》等等。除此之外,许多体育竞技项⽬也依旧基于该算法进⾏排位。
1 ⼀般胜率预测算法
对于⼀场竞技⽐赛,参赛选⼿分别为甲与⼄,作下列假设:
1.两名选⼿表现实⼒有所波动,服从⼀定分布,设为 与 。
2.两名选⼿的表现实⼒相互独⽴。
3. 与 对应的密度函数为 ( )与ℎ( ),密度函数为 ( )与 ( )。
韵达快递价格查询根据上述假设,可以得到胜率概率计算公式 { > },即:
同理有
以上是⼀般的胜率预测算法,通常情况下直接求解⽐较困难,因为⽐赛选⼿的表现实⼒所服从的分布需要⼤量数据⽀撑,为了简化计算,可以做出⼀些相关的特殊假设并加以实验。
2 添加特殊假设后的胜率预测算法
对⼀般的胜率算法,可以在原有基础上新增如下假设,化简运算:
1.⽐赛双⽅甲与⼄的表现实⼒均服从同⼀分布 ,且只由期望 与⽅差 决定。
2.设分布函数为 ( ; , ),密度函数为 ( ; , ),且密度函数关于 = 对称。
3.设密度函数满⾜
则分布函数满⾜
通过新增的假设,可再次得到胜率计算公式如下
通过相关线性变换以及旋转和边际分布的意义,可以化简为
3 基于不同分布的胜率预测算法
由2所得的最终胜率预测算法,可基于不同分布进⾏运算。根据数据统计,埃洛教授起初使⽤了正态分布作为⽐赛选⼿表现实⼒的分布。此时可以得到基于正态分布的胜率预测算法如下:
然⽽,使⽤正态分布假设的效果并不佳,根据⼤量研究数据发现在国际象棋⽐赛中,Logistic 分布更贴近实际情况,因此使⽤了 Logistic 分布函数进⾏假设。
代⼊后化简得到基于 Logistic 分布的胜率预测算法如下:
有关梦想的名言
4 最终的ELO算法
经过埃洛教授经验上的修改与简化,得到了最后的 ELO 算法。
假设某场景中,玩家 A与玩家 B 进⾏⼀场竞技⽐赛,玩家 A 当前的排位分(即量化的实⼒⽔平)为 ,玩家 B 当前的排位分为
谁是mvp,则玩家 A 的胜率预估由下式可得,玩家 B同理可得不做描述。
其中, 为双⽅的分值间隔,对于相同的玩家⽔平差距,T 越⼤,则预估胜率越接近50%,在专业国际象棋赛事中,T 通常采⽤ 400,在⽐赛结束后,可以设 和 为玩家的⽐赛得分,如下:
则⽐赛结束时玩家的排位分更新规则如下:
以上便是⽤于国际象棋⽐赛的 ELO 算法基本内容,所形成的排位分即 ELO 积分,其
始终处于动态的变化中,但随着玩家的⽐赛场次增加会逐渐收敛⾄与玩家实际⽔平的范
围内,但该算法应⽤于不同场合还需要根据实际情况进⾏相应的改进。
5 相关改进
5.1 从1v1到NvN
本⽂在4中已诠释了 ELO 算法在 1v1 时的使⽤⽅式,但是随着⽹络游戏的发展,如今⼤部分游戏特别是 MOBA 类游戏基本模式均为友⽅N ⼈与敌⽅ N 个⼈的 NvN 类型。
所以我们需要将 ELO 算法中的评分机制扩展⾄ N 个⼈的模式。
如4中所说 ELO 算法中最重要的部分是对实⼒的处理,若为 1v1 模式我们可简单采取此⼈的分数作为 。但是涉及到 N ⼈时,我们
需采取某种⽅式来评估整个队伍的实⼒,从⽽可以得出某⼀⽅获胜的概率。所以可以⾃然的想到利⽤某队的实⼒分数的均值作为该队的实⼒。
即: 设 1 号队伍有五⼈ , ∈ {1,2,3,4,5},2 号五⼈ , ∈ {1,2,3,4,5}
更新规则:
但若我们使⽤该种⽅法进⾏NvN的分数计算,该⽅法会解决不了⾼分选⼿特意与低分选⼿共同游戏来增加分值。因为这种做法会使⾼分选⼿较为轻松涨分。所以在该⽅法中的改进为对同⼀队中的某⼀选⼿,会根据其原始分值来调整 K 的取值,使⾼分玩家涨分幅度低于同⼀局中低分玩家的涨分幅度,以提⾼收敛速度,使游戏平衡性提⾼。
5.2 收敛速度的改进
不管是 1v1 模式还是 NvN 模式下的 ELO 评分机制,最终某位玩家的分值将会固定在
其真实实⼒所代表的分值的附近,并有所波动。整个的 ELO 评分系统即是将分数收敛⾄
该真实⽔平的过程。为了使得玩家体验上升,需保证游戏中的平衡,能够快速将每
中秋节放几天假个玩家的实⼒分数固定到其应有的⽔平范围内(即提⾼收敛速度)具有重要意义。否则玩家
双⽅会因实⼒差距过⼤⽽影响弱势玩家的游戏体验。除此之外,收敛速度越快越可有效
防⽌⾼分玩家假装为低分玩家上分、或是代练等不良⾏为。
定级赛机制
在英雄联盟,DOTA2 等游戏中会在玩家加⼊正式排位赛程的前 10 局⽐赛(即定级赛)中采取较⼤的 K 值。这种做法可以使得在该 10 局⽐赛中的排位分波动较⼤,使得玩家可以⼤致收敛⾄包含⾃⼰的⽔平的⼀个⼤区间中。然后再通过之后正式的对局,将分数收敛⾄真实⽔平。该⽅法将之后排位赛的收敛半径(即从某个值开始收敛⾄⾃⼰真实⽔平的范围)缩⼩,因此可以有效提升收敛的速度。
在初始和之后的 K 值的选取会影响收敛的速度,我们可以通过不断的模态的模拟 K 的取值,通过观察收敛速度来选取合适的 K。在开始时设置较⾼的 K值可以更快地将玩家定位置符合⾃⼰实⼒的段位,⽽后降低 K 值则可以使玩家进⼀步细化定位。该法可以在初期⼤幅度提升ELO 算法的收敛速度。
如在英雄联盟 S1-S3 的排位赛中初始 K 值较⾼为 100,后续将会逐步降⾄ 25。除此之外,各类游戏
中也常以分段的⽅式进⾏ K 值的划分,低段位的 K 值通常设置较⾼,⽽⾼段位 K 值通常设置较低,⽬的是为了便于低段位选⼿更快地提⾼排位分,⽽⾼段位选⼿则通过降低K 值保证游戏的稳定性。
连胜奖励机制
引⼊连胜奖励机制,较多的⾼级玩家喜欢开⼩号虐菜或是进⾏代练上分,若引⼊连胜阈值与连胜奖励,也可以在⼀定程度上提⾼ ELO 算法的收敛速度。
连胜奖励定义:当某位选⼿的连胜场数 ′超过⼀个固定值如 = 4,则该选⼿后续获胜时排位分均会额外增加 分,失败则清除连
胜场数。
其中 与 值的设定还需要根据游戏的数据反映情况以及游戏需求⽽定。
段位继承机制范湉湉 功夫
每赛季开始将会有段位衰减,⽽段位继承机制也可加速玩家排位分的收敛过程。系统通常保留了玩家上赛季的数据,可基于这些数据得知玩家的⼤致⽔平,从⽽能够较为准确的给定⼀个 K 值,该⽅法同样能使 ELO 算法的收敛速度得到⼀定提升。
该⽅法还能提⾼游戏性,效果表现如下:
巩俐的胸1.玩家重返低分段,给予了玩家提⾼的机会与动⼒,提⾼游戏留存。
2.即使排位分按⼀定⽐例衰减,但由于玩家实⼒依在与较⾼的 K 值设定依旧会稳定回到真实排位分,对 ELO 系统的稳定性影响较⼩。5.2 匹配策略改进
即使有了改进后的ELO算法作为匹配机制的基础,但在同⼀时间段,能完美到契合同⽔平的对⼿与队友是⼀件困难的事情,因此改进匹配时的机制也有利于游戏平衡的实现,基于各类游戏的体验评测与官⽅通告,主要的匹配策略⼤致围绕分差、时间以及其他附加因素。⽅法⼤致如下:
增加位置匹配系统
在某些竞技游戏中,每位玩家在团队中通常担任不同的游戏⾓⾊,因此可以在匹配开始之前提前提供玩家位置选择机会,通常玩家所玩擅长的位置实⼒会较于其基础的排位分更⾼,因此该策略下双⽅团队的实际分差阈值在⼀定⽔平上会有所缩⼩,但该法会导致匹配时间的延长。
根据数据分析进⾏调节匹配
对于某些游戏玩家体量较⼤的游戏,如王者荣耀等,则会有专门的数据分析专员帮助分类预流失玩家、回流玩家、⾼活跃玩家,根据玩家的分类结果可以对这些玩家匹配规则上进⾏⼀定的改动,如预流失玩家则给予其 ELO 分更低的对⼿,提⾼其胜利概率,增加游戏体验,回流玩家统⼀给予其 ELO 分较低的对⼿,以挽留该玩家,⾼活跃玩家则给予其 ELO 分较低的队友和 ELO 较⾼的对⼿,作为他⼈体验的牺牲品,同时激起求胜欲。
6 优缺点
6.1 优点
1.有效衡量玩家的⽔平。ELO 所产⽣的分数直观的量化了玩家的⽔平。
2.缩短了匹配时间与创造⾼质量对局。因为匹配机制中会利⽤ ELO 积分相近的玩家进⾏匹配,所以会使得实⼒相近的玩家进⾏博弈,从⽽⼤⼤增加⽐赛的质量。
3.激励玩家进⾏竞争。积分与排名可以激发玩家的竞争⼼态,促使玩家提升实⼒,并最终为游戏的⽣态环境带来积极的影响。
4.ELO 算法为零和算法,即玩家总体分数不变,⾼分玩家的分数通常来⾃低分玩家。这使得玩家分数准确,⾼分低能的玩家较少。
6.2 缺点
1.ELO 算法初期的具有不准确性。ELO 算法在初始时,拥有较少的玩家信息,初始分数往往与真实⽔平偏差较⼤。所以需要⼤量数据才能收敛⾄真实⽔平,在该过程中玩家的体验可能会较差,因此提⾼收敛速度是改进 ELO 算法的关键。
2.ELO 算法对时间具有不敏感性,ELO 积分并不会随着时间的变化⽽变化。但在现实中某玩家若长时间没有⽐赛时,他的实⼒⽔平可能会上下浮动较多。此时 ELO 所产⽣的排位分可能⽆法反映玩家的真实⽔平,但通常游戏会根据其流失时间对 ELO 分进⾏衰减措施,以保证其回归时他⼈玩家的游戏体验。
3.ELO 算法对⽐赛⽆差异性。该缺点每⼀场⽐赛都视为同等重要的,但现实中往往⽐赛会有重要程度的区分的。但 ELO 算法⽆法在重要⽐赛中给予更多的权重。
4.由于 ELO 算法的零和效应,玩家达到⾃⼰⽔平的分数后难以通过努⼒提⾼分数,因此低⽔平玩家分数会维持在低分段,成就感低容易流失。此时可以根据玩家的⾏为增加⼀些附加分,以达到⾮零和效果。
发布评论