吃鸡类游戏应该如何科学使用ELO分

Lion 腾讯互娱游戏策划

导语

 

战术竞技游戏(俗称吃鸡)作为一种多方参与、以排名为目标的游戏玩法,由于采用死亡即淘汰的游戏机制与传统的多方持续参与整局游戏争夺排名的游戏有本质区别,导致传统的排名ELO分算法的计算结果与游戏体验不符。本文从逻辑上推导出一套适合战术竞技游戏的ELO分计算方法。

 

---

 

Q1:ELO分在吃鸡中应用有什么问题?

 

随着战术竞技游戏玩家的全民化,后台匹配机制的设计逐渐进入了大众的视野,ELO分也成为了很多玩家耳熟能详的概念。ELO分算法的核心是一个概率估算公式:

 

RateAtoB=11+10(ELOB−ELOA)/400RateAtoB=11+10(ELOB−ELOA)/400

 

它的作用可以粗略理解为:A的ELO分每比B的ELO分高400分,则A赢了B之后的加分降低一个数量级。这样的好处是使得绝大多数情况下,ELO分可以大致稳定在一个±1200的区域范围内。比如国际象棋是从1800分开始记,世界最高纪录是2882分。ELO分非常简洁而可靠,使其几乎存在于所有PvP对战游戏的后端服务器算法中。

 

ELO分的一个主要缺陷是只能基于两个选手或队伍的对战结果进行计算,而在网络游戏经常会有超过2支队伍参与游戏的情况(例如CF中的个人竞技玩法),在这类玩法中排名成为玩家竞争的主要目标。为使得ELO分算法可以用于排名计算,一种常见的做法是将排名领先的玩家等同于赢了所有排名落后的玩家。

 


举个栗子,假设有A、B、C、D、E 5位选手参与个人竞技游戏,最终的排名分别是1、2、3、4、5名,按照上述模拟计算方法,则他们之间的胜负关系如下:

 


按照两两之间的胜负关系分别计算ELO分加减分,再将每个人面对所有对手的加减分取均值即为最终加减分结果。简单起见,假设所有人的ELO分相同,胜负数即决定了每个人的加减分结果。

 

风靡世界的吃鸡玩法也是一种多人争夺排名的玩法,所以此方法也可以套用在吃鸡游戏上,比如100个人的单排最终排名的胜负数如下:

 


如果用这个胜负数来结算ELO分,有没有什么地方不太对劲呢?

 

 


想象一下:决赛圈最后一分钟,我封烟、走位、卡视野、闪身、拉枪线、一顿操作猛于虎淘汰了第2名成功吃鸡!!!结果……加分只比第2名多2%?差距和前后脚落地成盒的99名和100名一样!???

 

这个算法的问题是,排名虽然都是差了1位,但是第1名和第2名的差距应该远大于第99名和第100名,但在这个算法看来却是一样的!

 

那么在吃鸡游戏中不同名次之间的差距应该是多少才合理呢?

 

---

 

Q2:吃鸡难度如何量化?

 

第1名和第2名到底差多少呢? ——应该是得第1名的难度-得第2名的难度

 

那首先要知道得第1名的难度是多少。是什么东西决定了吃鸡的难度呢? ——对手的数量

 

我们从最简单的情况开始考虑以不同的人数开局:

 

-1个人 - 直接吃鸡了,假设难度为0

-2个人 - 只要战胜1个对手就吃鸡了,这是难度最小的情况,假设难度为1

-3个人 - 可以战胜2个对手,或者等他们火拼之后坐收渔利,难度应该在1~2之间

-4个人 - 理想情况下,应该是2个人各自战胜1个对手然后火拼,这样需要战胜2个对手;最少需要战胜1个、最多3个,平均下来难度应该在2左右。

 

综合上述思考,我们可以得出以下结论:

 

-吃鸡的难度可以用需要击杀的对手数量来描述。

-需要击杀的对手数量在理想情况下与开局的人数是对数关系,即 难度 = log2log2(人数)

 


为了验证第二点结论是否正确,我们调取某吃鸡手游的单排开局玩家数与吃鸡者击杀玩家数的统计数据:

 


可以看到数据几乎完美的吻合log2log2(人数)的曲线,从而证明了这个结论是可靠的:吃鸡难度为入局队伍数以2为底的对数。

 

好,我们现在知道100个人开局的情况下,第1名的难度是log2(100)log2(100),第2名呢?

 

难度=战胜对手数量,第2名的难度就是当游戏进行到还剩余2个人的时候,每个玩家需要战胜多少个对手。显然2个人的难度应该是一样的,即各自战胜log2(100/2)log2(100/2)个对手。

 

第3名呢?log2(100/3)log2(100/3) 按照对数的运算法则log2(100/3)=log2(100)−log2(3)log2(100/3)=log2(100)−log2(3)。故不同名次的难度为:难度 = log2log2(人数) - log2log2(名次)。在Excel里拉一个序列,即可得到100人单排不同名次的难度表:

 


这样算下来,第1名和第2名的难度差距是99名和100名的100倍!这样吃鸡的感觉如何?

 

 

---


Q3:吃鸡应该如何应用ELO分?

 

在明确了不同名次的难度之后,就可以基于难度构建一个合理的吃鸡排名ELO分计算方案了。

 

方法还是基于类似个人竞技的胜负关系,只需在计算完ELO分之后乘以两两之间的排名难度之差,然后取均值即是最终的加减分。

 

100人单排不同名次的加减分倍数均值如下:

 


也就是说,在所有人ELO分相同的情况下,38名得分是不加不减,吃鸡的加分是落地成盒的3.8倍,听上去是不是挺合理的?

 

需要注意的是,这个数值只适合用于100人单排的情况,如果人数有变化或者不是单排,比方100人四排是25支队伍,则加分倍数计算结果如下:

 


可以看到同样是吃鸡,四排的加分比单排要少。所以程序实现的时候不能直接使用表格中的倍数数值,而需要根据实际的队伍数量实时计算倍数。

 

结语

 

本文介绍了一种合理的在吃鸡玩法中根据排名计算ELO分的方法,但在实际的游戏运营中,要有效的利用ELO分准确定位玩家的状态从而优化玩家体验,还需要综合考虑玩家的段位、近期战绩、游戏经验等外围因素,笔者将在后续文章中继续分享相关设计思路。

 

阅读与本文标签相同的文章