本
文
摘
要
以答主多年的临场抱佛脚的人生体验来看,楼主目测在准备游策的笔试啊~俗话说帮人帮到底,那我不妨给楼主解答这个问题的同时,顺道把整个知识点都梳理一遍吧。少量图预警,建议在WIFI条件下观看!关于数值策划的其他问题欢迎与答主私信交流~文中的图均用MATLAB绘制而成,绘图程序见文章末尾。
既然楼主说什么类型游戏都可以,那么我想还是从最经典的MMORPG类游戏谈起吧~本文分成两个大部分论述:战斗公式判定算法以及命中/闪避公式。先说结论:“瀑布算法与减法公式相性符合,圆桌理论与除法公式相性符合。”
对于mmorpg游戏来讲,每个游戏公式都需要引入进攻属性和防御属性,因此我认为这二者是不能被割裂开来分析的。针对楼主所提出的问题,玩家所可以堆叠的命中等级可以被定义为进攻属性;而闪避等级可以被定义为防御属性。那么我想试图从算法和公式两个角度出发,解释一下常用的命中/闪避公式。
1、战斗公式判定算法。MMORPG游戏中常用的战斗公式判定算法大体有两种:瀑布算法和圆桌理论算法。
瀑布算法,顾名思义,是指各事件的判定顺序像瀑布一样自上而下,判定流程始于最高优先级属性,终于最低优先级属性,它是大多游戏中普遍采用的战斗公式判定算法。一般来说,系统会优先判定防御属性(闪避>招架>偏斜>格挡>.....)其次是进攻属性(暴击>...>普攻),例如,当玩家进行一次攻击后,系统会根据玩家的面板数据,首先判定是否被闪避;其次判定是否被招架;......;最后判定普通攻击。当判定数目较少的情况下,采用瀑布算法相对简洁直观,并且对数值的控制较为方便。圆桌理论算法是指:把理论上所有可能发生的情况比作“菜品”,把实际所可能发生的所有情况比做一张“圆桌”,圆桌上优先摆放重要菜品,摆满为止,没上桌的菜永远没有上桌机会。举个简单的例子:假设玩家未命中率为80%,玩家的面板暴击率为30%,在一场战斗中玩家将会发生80%的MISS、20%的暴击以及0%的普通攻击,这是因为10%的暴击以及剩下的普攻都被挤出了圆桌。当仅有最低优先级属性被挤出圆桌的情况下,各高优先级属性之间不会互相影响,这使得圆桌理论算法的概率更为合理。对比分析。两类算法的共同点在于,他们都对玩家的属性进行了优先级划分;高优先级属性都会在一定程度上对低优先级属性产生影响,并且在判定数目为2的条件下二者趋同。而不同点在于:圆桌理论中各属性之间呈加法关系;而瀑布算法中各属性之间呈乘法关系。并且在双方实力悬殊的极端情况下,尽管进攻属性会被等比稀释,但瀑布算法可以使得弱势的一方仍有机会伤害到对方;而圆桌算法却很可能会让强势的一方毫发无损。2、命中/闪避公式
如果像楼主所问的那样:一场战斗中仅会出现命中与闪避的二元情况下,瀑布算法和圆桌理论所得到的结果是一致的。那么我们给出两种常用的命中/闪避计算公式:减法公式与除法公式。
减法公式: 命中等级闪避等级加成系数基础命中率,基础命中率MAX{(命中等级−闪避等级)∗加成系数+基础命中率,基础命中率}MAX\left\{ \left( 命中等级-闪避等级 \right)*加成系数+基础命中率,基础命中率 \right\} 减法公式的核心思路在于:命中等级减去闪避等级,差距大小决定实际命中概率值。当闪避大于等于命中时,实际命中率为基础命中率(假设为50%);当命中大于闪避时,每一点命中等级转化为若干命中率(假设为0.2%)。我们接下来举个例子来直观的观察减法公式:假设BOSS闪避值为100,根据之前的假设,我们需要堆叠40%的实际命中率,即100+40/0.2=300点命中等级才能达到90%的实际命中率,当玩家的命中等级从1堆叠到300的过程中,命中等级与实际命中率曲线为:由上图我们不难发现:1、当玩家命中等级未超过100点时,命中等级属性的选择对于玩家来说收益为零(甚至为负收益,因为他们放弃了其他属性),劝说玩家“今天很艰难,明天更艰难,但后天会很美好”显然不是一件明智的事情。2、当命中等级超过350点后,命中等级对于玩家的收益再一次归零,这将不利于后续版本的属性投放。3、实际情况下,玩家在装备基本成型的情况下一般可以将实际命中率堆满。如果采用瀑布算法,进攻属性将不会被闪避等防御属性所压缩,有效控制了闪避属性在游戏后期收益过大的的情况。
因此减法公式更适合于“闪避属性的投放被严格控制,战斗情况判定数目较多,游戏内容丰富版本持续时间较长”的大型mmorpg类游戏。
除法公式: 实际命中率命中等级命中等级闪避等级实际命中率=命中等级/(命中等级+闪避等级)实际命中率=命中等级/\left( 命中等级+闪避等级 \right) ,除法公式的核心思路在于:只要防守方闪避属性的存在,进攻方就一定无法达到100%的命中率。这样的设计保证了玩家在对命中、闪避属性进行堆叠时,不会产生像减法公式那样的零收益,变相的增加了玩家选择的自由度。我们继续沿用上文的例子,假设BOSS闪避值为100,玩家基础命中率为0,玩家需要堆叠0.9*100/(1-0.9)=900点命中等级才能到达90%的实际命中率,当玩家的命中等级从1堆叠到900的过程中,命中等级与实际命中率曲线为:由上图我们可知,与减法公式相比较:1、命中等级对于玩家的收益在前期巨大,即便不设置基础命中,玩家只需要堆100点命中等级便可以达到50%的命中率,玩家随着数值效果的提升将感受到DPS的显著提升,促进玩家在游戏中投入第一桶金的消费。2、命中等级达到一定数值后开始产生边际效应,但即便命中的收益不断降低,也不会完全无效,有效维护了玩家的权益。3、由于玩家无法将实际命中率堆到满,如果采用瀑布算法,不可避免的闪避将大大影响后续进攻属性的收益,因此最好减少战斗公式判定数目或采用圆桌理论算法。
对于除法公式本身,我还想进行另一个维度的讨论,那就是“闪避等级对命中等级的稀释效果”。对于减法公式来说,在超过全命中的阈值之前闪避等级的收益同样为0。然而对于除法公式,适当增加闪避值将会促使玩家投入更多的资源在命中等级上,还是上文的那个例子,如下图所示:
由上图不难看出,当BOSS闪避等级为20时,玩家只需要180点左右的命中等级便可以将命中率迅速提升至90%;随着玩家不断地升级或版本的不断开放,我们只需将BOSS闪避等级提升80点,便可以让玩家付出720点的命中属性作为代价,才能维持实际命中率不变。那么玩家怎么提升命中率呢?来来来,单击右上角的商城充个月卡吧~!
综上所述:除法公式更适用于游戏首日留存率、ARPU低,版本更替频繁,战斗情况判定数目少的量产mmorpg类游戏。
文章的结尾是基于MATLAB的绘图程序,有兴趣的同学可以在这个基础上进行数值调整,用心体会减法与除法公式二者的异同。
%减法公式绘图程序 clc clear x=1:300;%命中等级 y=[]; y=max((x-100)*0.2+50,50);%实际命中率计算 plot(x,y,r) axis([1,300,0,100]) legend(减法公式,闪避等级=100) xlabel(玩家命中等级) ylabel(实际命中率 %) title(命中等级收益) %除法公式绘图程序 clc clear x=1:900;%命中等级 y1=[]; y2=[]; y1=100*x./(x+100);%闪避等级为100时的命中收益曲线 y2=100*x./(x+20);%闪避等级为20时的命中收益曲线 plot(x,y1,g,x,y2,b) axis([1,900,0,100]) legend(除法公式,闪避等级=100,除法公式,闪避等级=20) xlabel(玩家命中等级) ylabel(实际命中率 %) title(命中等级收益)