瀑布:掷骰轮次越偏后的属性衰减程度越大,但所有的属性均会生效。 圆桌:只要没有属性被挤出圆桌,则不存在属性效用的衰减。 这里可以看出圆桌算法的优点:
由于不存在判定流程上的先后,所以各属性的实际价值会比较接近,一般不会出现玩家堆了某个判定流程靠后的属性结果很废的情况。 同样也可以看出其缺点:
一旦有属性溢出,则该部分属性的效用为0,完全没有价值。 (3)相同面板数值下的生存能力
圆桌:在面板数值相同的情况下,魔兽世界用圆桌算法大大提高了坦克角色的生存能力,使得他们可以应对来自首领怪的超高攻击,匹配大型团队副本的玩法设计。 瀑布算法下,免伤概率=18%+10.8%+18.36%=47.16% 圆桌算法下,免伤概率=20%+15%+30%=65%
传统的概率为相乘关系,圆桌为相加关系,后者的概率总和要大的多
并且,当防御职业将三维堆至一个阈值(70%)后,配合技能可达100%的免伤覆盖,将命中和暴击全部挤出桌面,从而衍生出特定的玩法(70级年代伊利丹的剪切技能)。 瀑布:相同的面板数值在瀑布算法的框架下,免伤概率相较于圆桌算法要低得多。换言之,角色达到相同的有效生命值,所需的免伤属性要高得多。 这里可以看出:
在圆桌算法的框架之下,属性投放若是脱离了控制超过了阈值,将对平衡性产生较大的冲击(70级的盗贼单刷格鲁尔——当然在暴雪光环的作用下,玩家会认为这是精妙的设计~)。
在国产游戏收入导向的大环境下,设计者是否能顶住收入压力,严守属性投放的极值不越界,是值得慎思的问题。采用瀑布算法,能有更大的数值空间用于能力投放,更为适合现阶段的市场环境。 (4)运算量 瀑布:多次掷骰
圆桌:单次掷骰 显而易见:
掷骰次数越多,运算量越大。圆桌相较于瀑布,有着相对较小的运算量。简单即是美。
注:除魔兽世界外,《冒险与挖矿》的技能施放也采用了圆桌算法,大大简化了技能施放的判定流程。可以想象一下,一次攻击至多发动一个技能。而每一次攻击,一个队伍中有几十个角色的技能施放需要判定,如果采用瀑布算法,将产生多大的运算量。 思考与总结
对战斗数值的研究,应该基于理论推导而归于实践应用。毕竟游戏数值设计不是做数学研究,其本质应是一种体验设计。最后希望交流的是笔者个人对于这两种算法的一些理解。
(1)不同的攻击判定流程会向玩家传达不同的战斗感受
究其本质,不同的攻击判定流程,影响着一场战斗中的各种攻击判定结果将以何种概率分布出现。
假设在一款游戏中,闪避率的投放上限是30%,暴击率的投放上限是40%,命中率的投放上限是100%。瀑布算法下,出现闪避、暴击和普通命中的概率是30%、28%和42%;圆桌算法下,则为30%、40%和30%。这两种不同的概率分布,必然会带给玩家不同的战斗体验,但在缺少其他条件的情况下,并不能判断孰优孰劣。
使战斗体验匹配游戏的核心玩法,使属性投放的极限值能满足游戏的商业化需要,是设计攻击判定流程时首先要考虑的。
注:甚至于部分竞技游戏强调公平性,将暴击做成了伪随机。 使用瀑布算法,则不应该设计种类繁多的事件状态
若是仿照魔兽世界的做法设计一连串的事件状态(未命中、闪避、招架、格挡、暴击、普通命中、偏斜、碾压),非但运算繁杂,而且后置判定的属性衰减幅度较大,效果极不明显。这种隐晦的设计将不易传达,同时还会影响玩家的游戏感受(某个判定流程靠后的属性堆得很高结果却没用)。
使用圆桌算法,则应该严守属性投放的上限,防止平衡崩坏的情况发生
需要澄清的是,并不是说使用瀑布算法就可以无限投放数值,而是说,相较于瀑布算法,圆桌算法的属性投放上限会低很多(免伤概率的相加与相乘) (2)不同的攻击判定流程将影响有效生命EHP和有效攻击EDPS的表达式
几乎每个数值策划都会将角色的属性转化为EHP和EDPS以衡量其的战斗能力,但曾见过不少人对所有的游戏都用统一的EHP、EDPS表达式进行分析模拟。这种偏差较大的模拟方式必然会影响体验设计的精准性。在不同的攻击判定流程之下,EHP与EDPS有着截然不同的表达式,举例说明如下。 瀑布算法下:
若命中闪避分两次判定:
EHP=HP/(1-免伤率)/(1-闪避率)/(1-招架率) EDPS=DPS*命中率*[1+暴击率*(暴击伤害倍率-1)] 若命中闪避合并判定:
EHP=HP/(1-免伤率)/(命中率-闪避率)/(1-招架率) EDPS=DPS*(1+暴击率*(暴击伤害倍率-1)) 圆桌算法下:
EHP=HP/(1-免伤率)/(1-闪避率-招架率)
EDPS=DPS*[命中率-敌方闪避率-敌方招架率+暴击率*(暴击伤害倍率-1)] 注:闪避、招架>暴击>普通命中,且各状态发生概率之和未超过圆桌大小 混合算法下:
EHP=HP/(1-免伤率)/(1-闪避率-招架率) EDPS=DPS*[命中率+暴击率*(暴击伤害倍率-1)]
可能有人会觉得:模拟得这么准又有什么卵用,数值平衡最后还不是靠调?诚然,在数值设计领域,确实有名言曰:数值平衡是调出来的。但在笔者看来,调节应该建立在正确的理论推导的基础之上。依靠调节来掩盖数值模型的错误设计,是本末倒置的行为。即便达到了所谓的平衡,也不过是扭曲的平衡,会为后续版本的迭代埋下隐患。
写在最后
市面上的大多数游戏,都不会设计复杂繁多的攻击事件,且基本采用瀑布算法。如此看来,攻击判定流程的设计十分简单。那么为什么要大费周章地将简单问题复杂化呢?
爱因斯坦曾说过:Everythingmust be made as simple as possible, but not one bit
simpler——凡事应该力求简单,但不能过于简单。从了解一种数值设计方法到理解如此设计的目的,从模仿成功游戏的数值设计到理解其设计的内在意义,这是每个数值策划成长的必经之路。
从全盘照搬一种数值体系到能够融会贯通并根据实际情况灵活运用,这是一条并不好走的路。知其然,也应知其所以然——这是一个入行一年有余的新人的一点感悟。