文 |游鲨游戏 / 图| 网络/原创
竞技游戏中如何保护新手不被有经验的玩家虐,让高手局中没有新手?如何创造公平的游戏对局,使玩家的游戏乐趣最大化?如何快速匹配到同等级玩家,同等级玩家不足情况下如何合理跨段位匹配玩家?
0、战术竞技游戏设计要点
战术竞技游戏有单局玩法体验优秀,长期游戏目标不明确的问题。玩家在游戏初期会因为玩法新颖好玩而留下来,但是在体验一段时间后,可能会因为失去新鲜感而流失。
因此,竞技游戏必须在核心玩法之外,提供一个玩家可以中长期进行追求的系统。而排位等级系统在过去的各类竞技游戏的实践中证明了它的作用和可行性。
通常,玩家在游戏中的水平依赖于自身的操作技巧、战术战略思维、数值以及对游戏的熟悉程度。而竞技类游戏为了保证其竞技性,会倾向于放大操作技巧的作用并降低数值的作用。玩家在操作能力上的些微差距就有可能决定游戏的胜负。
因此,将不同操作能力的玩家放在一起进行游戏会毁掉所有人的游戏体验。新手玩家会因为被高手碾压产生强挫败感而离开游戏。高手玩家也会因为队友太挫带不动而产生负面情绪。
所以,我们需要一个能够大致反映游戏水平的标签来对玩家进行分类并将近似水平的玩家放到一起进行游戏。
1、ELO等级分制度
ELO等级分制度(ELO Rating System)是当今对弈水平评估的公认权威规则,已被广泛应于国际象棋、围棋、足球和篮球等体育运动以及游戏中。例如星际争霸天梯排行,魔兽世界竞技场,Dota天梯系统,LOL匹配等游戏的竞技比赛系统中。
ELO是一套较为完善的评分规则和机制,比较适合对竞技类游戏的选手的技术等级进行评估,用以计量个体在对决类比赛中相对技能的算法系统,对于游戏而言,需要让每场游戏尽可能的接近公平,创造双方势均力敌的竞赛环境。它最初由美国物理学教授Arpad Elo创立,故命名为埃罗排名。
ELO计算方法
Ra:A玩家当前的积分
Rb:B玩家当前的积分
Sa:实际胜负值,胜=1,平=0.5,负=0
Ea:预期A选手的胜负值,Ea=1/(1+10^[(Rb-Ra)/400])
Eb:预期B选手的胜负值,Eb=1/(1+10^[(Ra-Rb)/400])
因为E值也为预估,则Ea+ Eb=1
R’a=Ra+K(Sa-Ea)
R’a:A玩家进行了一场比赛之后的积分
其中 K 值是一个常量系数,按照国际象棋里的标准, K 值对于大师选手为16,对于一般选手是32。K值的大小直接关系到一局游戏结束,根据胜负关系计算出的积分变化值,因此K值的算法也是不同游戏等级设计不同所在。
2、基于玩家的胜率和K/D值的设计思路
首先假设这样一个情况:基于玩家的胜率和K/D(杀敌数kill和死亡数death的比值),去计算玩家每场比赛的遭遇次数与遭遇并获胜次数,例如:
一个K/D为5的玩家,胜率20%,那么在10场比赛中,这个玩家会死8次,并杀掉40个对手,总计48次遭遇。
每场比赛遭遇次数的公式为:
(1-胜率)(1+K/D)
然后每场比赛遭遇并获胜的公式为:
(1-胜率)(K/D)
试着带入公式到上面的例子:
每场比赛遭遇次数=(1-0.8)(1+5)=4.8
每场比赛遭遇并获胜次数=(1-0.8)5=4
3、建立模型
根据上面的公式,可以得出以下模型:
遭遇获胜的概率=每场遭遇并获胜次数/每场遭遇次数
接着尝试用ELO模型去拟合这个胜率。
ELO模型虽然是基于1V1的单局模型,但也可以用来模拟吃鸡游戏中的多次遭遇战模型。
这里假设单排玩家面对的敌人都属于平均玩家水平,那么一名玩家在进行一次遭遇后的获胜期望为:
p(x)=1/[1+10^(u-x)/400]
这里简单介绍一下,u为玩家平均水平,x为该玩家的ELO分数,400是ELO系统标准差,为了方便计算,将玩家的平均水平设为0。
现在我们得出了一次遭遇获胜的情况,而玩家在一场游戏中可能会遭遇多次敌人,因此存活的期望需要按乘方去计算。那么就有下面这个等式:
每场遭遇并获胜次数/每场遭遇次数=[p(x)]^每场遭遇次数
也就是:
(1-w)*k/(1-w)(1+k)=[1/(1+10^-elo/400]^(1-w)(1+k)
经过一系列的线性变换,得到了我们需要的ELO表达式:
4、注意事项
由于在模型演算中,将玩家所遇到的敌人水平设置为了0,但在实际匹配中,玩家遇到的敌人水平会越来越高,K/D和胜率也会逐渐下降到稳定水平。
因此如果使用平均水平为0的数据去拟合玩家的生涯数据,显然是不够准确的。
在现有模型下,如果玩家的分数高于一定水平后,需要使用其最近场次的敌人平均水平和最近场次的K/D数据重新拟合其ELO。
否则对于显著超出或低于平均水平的玩家的ELO分数将会拟合不准。
作者简介:
游鲨游戏圈是游戏策划资讯分享、入行辅导平台,致力于行业知识分享,能力提升,简历及笔试面试强化,助力广大同学成功迈入游戏行业。了解更多请关注微信公众号【游鲨游戏圈】