上分随想——关于战力排行榜的一点想法
2021/05/11292 浏览我的建议
感谢官方的“迎难而上”设定,近来上分速度倍增哈哈哈哈。不过爽快之余,部分高星玩家名不副实也激起了我的思考——当下以星数论排行的排行制度,真的能体现玩家水平吗?如果不能,如何改进呢?
在进入正题之前,我们先来看个小问题助助兴:
以下两名白雪玩家孰强孰弱?
a:总80局60胜胜率75%
b:总80局50胜胜率62.5%
也许你已经有了答案,但先别急着回答,我们再来看下一道题:
以下两名白雪玩家孰强孰弱?
a:总80局60胜胜率75%
b:总10局5胜胜率50%
如果我们再加个前置条件,a玩家名叫“死线”(一个废物),b玩家名叫“屁神”(皮神小号)呢?
答案不言而喻
而第一个问题的答案也浮出水面“无法确定”
这就是我最初的困惑,如果胜率和星数都无法衡量实力的话,什么能够做到呢?唐太宗给出了答案:“以铜为镜,可以正衣冠;以人为镜,可以明得失”。唯有打一架才能真正体现技术差距,实力的参照物只能是敌人!
为了解决这个问题,我尝试引入一个“战力水平”的概念,以下简称p值(power)
当一个萌新刚刚注册,他的P值为初始值(假定100)。好咧,来两把人机,开始锤玩家,战斗数据开始收集,p值随玩家不断战斗而不断变化(评测)着,那么p值根据什么而变化呢?我认为p值变化应遵循2大个规则:
1,对手差距定档次
2,局内表现定分数
(这绝对不是英语作文评分细则)
这两个规则是什么意思呢?对手差距定档次,意为根据自身p值与对手p值差距定大概的p值增长区间。干强的多加,干弱的少加,干相差不大的正常加,被强的干少扣甚至根据局内表现反而加,被弱的干多扣。局内表现无非就那几个因素决定:kd比,击杀/被击杀时击飞值,击杀/被击杀时间隔时间,甚至还有技能搭配率和延迟。以局内表现为辅,以p值差距为主,来决定每场对局p值变化量。
根据这两个原则,强大的萌新可以较快证明自己,而实力弱的苟分玩家也能被及时淘汰,成长起来的玩家不必被曾经弱鸡时期的胜率束缚,万事俱备只差用实力去赢得星数。
但,如果只是这个小想法,我为什么要闲得无聊打这么多字来论坛bb?一是为了整理思路,想到哪里打到哪里,二是因为我才疏学浅,偶尔的灵光一闪不足以解决问题,想要发帖引起大佬关注讨论完善。
那么我们来谈谈问题。
作为一个游戏,对玩家的黏度是必须的,排行榜在大部分游戏都是作为激励玩家游戏的工具。假设fp中完全以p值为参考排名,那么玩家的游戏欲望极有可能大大降低,肝帝们的权益会受到损害,而游戏当前以星数为基石的各种机制也会被波及。所以在使用值判定的同时,还不能忽视星数的基础作用。
我将p值设定为在一个区间(70,140)内浮动的常数,每次增加均是按比例缓慢增加,而用于排行的最终分数也一定要有星数数据来扛大梁。
p值变化应当遵循(95,105)内变化速率较正常,数值越大或越小变化越困难,保证大部分玩家的p值在(85,115)之间。
以下是我尝试构建的一个计算最终分数的公式。(狂徒献丑了)
设p值与100之差的绝对值为x,总星数为t,再设一个分段函数T,总积分用s(score)来暂时代替
以下是计算公式(ps,如果p值少于100,给t那一团加个负号,写的时候疏忽了。)

这是一个简单的计算公式,简单地不过脑子地将p值和星数塞进一个式子里。我们来举几个例子看看具体效果。
(补充一下,本次讨论仅针对单英雄榜,所以星数区间封顶才1500。补充一下设定,总星数至少达到650且总场数80才有资格参与排行)
以下数据均为手算,可能有错
a玩家800星,p值120,计算所得积分为496
b玩家900星,p值110,计算所得积分为509.5
c玩家1000星,p值110,计算所得积分585
d玩家800星,但是p值不知道为什么是130,计算所得积分为562。
综上数据可以窥知,在星数差距不大时(如a和b),p值可以快速拉近差距,只要再赢两把就能超过b。但在星数差距较大时(如a和c,d和c)大p值也无法拉近差距。以此保证星星的作用。
实际上,我很怀疑官方已经有类似p值的设定(比如直接用胜率)来改善匹配机制。
当然,这样的设定可能损害玩家利益,普通玩家难以翻身,混子(比如我)永无出头之日,而算法也会为设备增加负担,带来bug。肝帝动力下降,萌新劝退率上升,梦想很美好,现实很残酷。
但我认为,排行榜的作用就是为了衡量战力,我们应该想着如何让他更精确地反应玩家强度,而不是只想着逼肝(当然不是指fp,是指某些游戏)。
此设定仅为本人YY,极不完善,如为阅读带来不便还请谅解,如有高见,还请移步评论区讨论。
黄口小儿不知天高地厚鬼迷心窍作此文,八方神圣不嫌贫富美丑齐心协力助fp--------越变越好!
(只是简单的想法,不喜勿喷)
![[嗒啦啦2_累]](https://img.tapimg.com/market/images/7bc63f2ddd8fef972ec60e42311e1cac.gif)