作者:tetsu,首发知乎
https://zhuanlan.zhihu.com/p/1931051941196203285
写在前面:
在文章
【以《原神》为例のRPG数值核心设计思路梳理】中,笔者已经分别讨论了RPG三大系统(养成、战斗、经济)的基本数值思路。本文进一步讨论战斗数值的做法。
做战斗数值最终需要拿出来的东西有三个:
- 角色、装备、怪物、buff的【属性数值】;
- 角色、装备、怪物、buff的【主被动技能数值】;
- 局内的策略设计(出题解题奖励,不只是干巴战斗)、节奏设计(时间轴设计,玩家的压力周期),局外的角色维度设计、配套环境设计、坑位投放规划、强度膨胀规划。
关于(1),这个在前文的养成数值部分已经讨论清楚了,其实就是控个损血比/生存周期;
关于(2),这是本文讨论的核心。本文会在前两个章节深入讨论做战斗数值的两个常用工具——属性价值和战力公式,然后在第三个章节讨论主被动数值的具体做法,如何使用这两个工具;
关于(3),高阶内容,需要老数值的血泪经验,属于「道」的部分,本文只讨论「术」的部分,其余就靠自行参悟了(^ω^)
一、再谈属性价值
属性价值可以理解为每点属性带来的战力提升。
在这一章中,本文会先回顾一下计算属性价值的两种基本方法,然后深入讨论一些与属性价值相关的tricky问题。
1.1 基本方法介绍
属性价值有两种算法:平均收益法和边际收益法。设s表示战力,t表示生存周期,r表示损血比,则:
【平均收益】可理解为:平均每点该属性,能够提供百分之多少的s提升/百分之多少的t缩减/百分之多少的r缩减。
【边际收益】可理解为:该属性每增加一点/百分之一,s提升百分之多少/t减少百分之多少/r下降百分之多少。
注:之所以不用s/t/r的绝对值,是因为只有百分比才会影响玩家的战斗体验。
属性价值的原始算法:
属性价值的简化算法:
把s/t/r的变化转化为APS和EHP提升。
注:APS(attack per second)指只考虑我方攻击类乘区(攻击力、技能倍率、暴击暴伤等)、不考虑敌方防御类乘区(防御、抗性、抗暴击等)的每秒输出量。EHP(Effective HP)指实际生命值加上我方所有防御类属性(防御、抗性、抗暴击等)提供的等价血量。
【平均收益】角度的属性价值≈(APS提升百分比+EHP提升百分比)/该属性投放量。
严谨计算(以r为例,s/t的计算是类似的):
EHP2和APS2是敌方数值故视为常数,EHP1和APS1是我方数值故省略下标
一些计算示例:
平均收益的计算非常简单,此处不做示例,仅示例边际收益法。
攻击力百分比(ATK%):
防御力百分比(DEF%):
减防百分比/穿透率(Pen):
1.2 讨论一下基准模型
基准模型就是一个属性模板,所有职业所有角色的属性都从这个模板调整而来。基准模型保证了所有职业所有角色的属性都大差不差,在某个数值策划控制好的范围内,此时就要问一个问题了,为什么要把属性投放约束在一定范围内?我不要任何模板,我就随便拍,然后保证所有角色战力一样就行了,有何不可?
回答:假如就是个一次性活动玩法,就这么几个角色,也没别的系统,那确实可以。假如是持续更新延展的游戏,那不行,随意投放数值会导致属性价值混乱,属性价值混乱会导致平衡很难做,要check的东西太多,按下左边抬起右边,根本平衡不了。
举例来说,你做了两个角色,A角色有1000点攻击力,B角色只有100点攻击力,但有1000%的增伤,这俩角色虽然属性投放差异巨大,但战力确实是一样的,在一次性玩法里完全没问题,甚至如果增伤会多一个彩色跳字,这俩角色还做出了表现差异。
但假如是个长线游戏,游戏内的属性价值就会十分混乱。对A角色来说,1点攻击力的属性价值是0.1%,对B角色来说,1点攻击力的属性价值是1%,相差10倍,攻击力没办法投放。对A角色来说,1%增伤的属性价值是1%,对B角色来说,1%增伤的属性价值是0.1%,相差10倍,增伤也没办法投放。下面举两个具体的投放例子:
现在你要出一个加攻击力的通用辅助角色,预期把主C的DPS提升50%左右,这个辅助角色应该加多少攻击?和A角色组队,50%的DPS提升意味着他要加500点攻击,但假如他真的加了500点攻击,他会把B角色的DPS直接翻5倍,然后你需要5年来让他退环境。和B角色组队,50%的DPS提升意味着他要加50点攻击,但假如他真的加了50点攻击,他对A角色来说就是个废物,他只能和B组队,变成了专辅,输出膨胀一下,B退环境了,他也跟着退环境了。
现在你要出一个提供增伤的通用装备,预期把主C的DPS提升50%左右,这个装备应该提供多少增伤?装备在B角色身上,50%的DPS提升意味着他要提供500%的增伤,但假如他真的提供了500%的增伤,他会把A角色的DPS直接翻5倍,然后你需要5年来让他退环境。装备在A角色身上,50%的DPS提升意味着他要提供50%的增伤,但假如他真的提供了50%的增伤,他对B角色来说就是个垃圾,他只能给A角色穿,变成了专属装备,输出膨胀一下,A退环境了,他也跟着退环境了。
玩法策划可能会非常喜欢差异很大的角色设计以及非常互补的装备BD,但这是需要控制的,角色之间差异不能太大,各种装备BD的联动互补效果也不能太强。长线运营游戏需要严格控制,不能偏离基准模型太多,任何偏离都可能会在未来引发严重的超模问题。一次性玩法可以放宽,无须考虑未来规划,只要当前玩法成立并且能平衡就行,但也不能完全不控制,完全不控制可能会导致当前这个一次性的玩法都平衡不了。
通过属性价值进行投放,能够保证:1)不同角色的同一坑位价值是基本一致的,以《原神》为例就是,对任意输出角色来说,一命对战力的提升都是10%,圣遗物随机主词条对战力的提升都是30%(这两个数是乱说的)。2)当玩家养满了固定坑位,对随机坑位做出选择时,每个坑位的收益接近。当然,由于每个角色的固定坑位、技能设计、被动效果存在差异,实际上对每个角色都会有一个收益最高的选择,但不会存在一个通解选择。
1.3 乱七八糟的属性价值口径
属性价值的口径是非常多的,到底应该按哪个投?本小节主要讨论这一问题。
增伤(dmg):
首先以增伤(dmg)这一最简单的属性开始分析。如下图所示,第1列是增伤的5个投放量,分别是0%,25%,50%,75%,100%。
增伤(dmg)的属性价值
要计算边际收益,需要一个基准模型,以此为基准计算切线。要计算平均收益,需要一个白板模型和一个毕业模型,以次为基准计算割线。
分别将第1列的5个投放量作为基准模型计算边际收益,结果列示在第3列,按照该列属性价值计算的属性投放列示在第5列。将0%的dmg投放作为白板模型,分别将第一列的后4个投放量作为毕业模型计算平均收益,结果列示在第4列,按照该列属性价值计算的属性投放列示在第6列。
第7-9列表示按照初始边际属性价值投放,也就是按照第5列第1行(标黄)进行投放,第7列表示每份投放相对于当前DPS的提升,第8列表示每份投放相对于初始DPS的提升。
第10-12列表示按照毕业平均属性价值投放,选择75%的dmg投放作为毕业模型,也就是按照第6列第4行(标黄)进行投放,第10列表示每份投放相对于当前DPS的提升,第11列表示每份投放相对于初始DPS的提升。
各种指标都计算出来了,现在需要问一个问题,作为策划,我们关心哪个指标?
其实我们关心的是相对于初始DPS的提升,也就是第9列和第12列(标红)。这很好理解,你想知道的是,角色穿上装备之后DPS是白板的几倍,配上队友之后呢?命座全点亮之后呢?当然你也关心角色穿上装备配上队友之后,点亮命座会让当前DPS提升多少,但是建模的时候,你只关心他是白板的几倍。
我们希望这个指标是多少呢?我们希望它是1%,因为第5-6列的属性投放就是根据APS提升1%来算的,我们希望能精准控制属性投放对白板战力的加成。
从上图可以看到,对于增伤这个简单属性来说,无论是按照初始边际属性价值投放,还是按照毕业平均属性价值投放(毕业模型可以任选,属性价值是一样的),每份投放带来的相对于初始DPS的提升都是1%,这很好理解,增伤是线性提升的,切线割线就是同一条。
暴击率(crit):
下面分析一个很复杂但也很常用的属性,暴击率(crit)。
此处假设暴击伤害(critdam)的投放恒定是暴击率的两倍,在这种情况下,暴击率的属性价值恒定是暴击伤害的两倍,这一点会在1.4中详细讨论,这里先当做既定事实来看待。如下图所示,由于暴击率的属性价值恒定是暴击伤害的两倍,可以将暴击伤害投放以2:1的比例换算成暴击率投放,以此计算暴击率的属性价值。
暴击率(crit)的属性价值
各列的含义与dmg的表格类似,此处不多赘述。为了方便理解,将暴击率的边际属性价值和平均属性价值随投放量的变化绘图如下:
从上图中可以看到,随着暴击率投放量的增加,暴击率的平均属性价值线性增长,边际属性价值先增后减。在投放量很小的时候,不论是平均属性价值还是边际属性价值都是非常失真的,所以暴击率要用毕业模型的边际属性价值或平均属性价值来做投放。
基准模型怎么选:
由上述分析可知,增伤和暴击率都可以用毕业模型的平均属性价值来做投放。实际上对所有属性都是如此,因此我们可以省掉上述分析,对所有属性都选择毕业平均属性价值来做投放,这就是最优口径。
在计算之前还需要解决最后一个问题:白板模型和毕业模型怎么选?
白板模型一般会用那些每个角色都有的固定属性坑位,以《原神》为例,固定属性坑位就是角色自带的攻防血+武器自带的攻击+圣遗物固定主词条。毕业模型会考虑所有可养成的坑位,是已成型角色的模板,以《原神》为例,毕业模型会在白板的基础上,进一步将武器副词条、武器特效、圣遗物随机主副词条、圣遗物套装效果这些因角色而异的坑位也考虑在内。
值得注意的是,在玩家达到毕业模型之前,属性价值可能是很不准的,根据玩家每个阶段的练度每个坑位都会有一个最优的物品,一般来说就是能提供当前比较欠缺的乘区的物品(因为大部分属性都是边际收益递减的),玩家不断做着当前的最优选择,更新迭代着各个坑位的选择,最终达到毕业模型。
关于乘区爆炸:
容易踩坑的点在于,上述分析中计算的指标【DPS提升-相对于初始DPS】是单乘区的情况。以dmg为例,该指标是完全不稀释的,永远1%。此时如果存在其他乘区的成长,其收益还可能>1%。比如此时有另一个独立乘区成长了100%,每1%的增伤实际上能带来的【DPS提升-相对于初始DPS】是2%。实际上,对于【DPS提升-相对于初始DPS】来说,某个乘区的每点投放都会让其他所有乘区的价值有所提升,详见下表总结:
在多乘区的情况下,【毕业平均属性价值】会低估属性价值。但我们在投放的时候,实际上并不关注属性价值的绝对准确性,而是比较关注各个属性的相对价值。那么多乘区会扭曲属性的相对价值么?需要分情况讨论:
情况一:各个乘区均衡投放。假设有n个独立的乘区,每个乘区的单乘区DPS提升都是a%,毕业时所有乘区对初始DPS的总提升是(1+a%)^n-1。其中,某个乘区一共投放了b点属性,单乘区情况下其属性价值是a%/b=c%,多乘区情况下,毕业时其他乘区对初始DPS的总提升是(1+a%)^(n-1)-1,该乘区投放实际带来的DPS提升是a%*(1+a%)^(n-1),实际属性价值为a%*(1+a%)^(n-1)/b=c%*(1+a%)^(n-1)。对于任意乘区都是如此,其属性价值被低估了(1+a%)^(n-1)倍,所以各个属性的相对价值其实是没有被扭曲的,直接按单乘区属性价值去投就行了。唯一需要注意的就是,怪物数值要匹配多乘区的爆炸数值。
情况二:某个乘区投得少。这类乘区就是数值策划通常所说的稀有乘区。一般来说稀有乘区会做投放折损,为什么呢?还是假设有n个独立的乘区,其中某个稀有乘区的单乘区DPS提升是z%<a%,其他乘区的单乘区DPS提升都是a%,那么这个稀有乘区的属性价值被低估了(1+a%)^(n-1)倍,其他乘区的属性价值则是被低估了(1+z%)*(1+a%)^(n-2)倍,稀有乘区的属性价值被低估得更多。为了保持相对属性价值不扭曲,该稀有乘区不能按单乘区属性价值投,而应该按【单乘区属性价值*(1+a%)/(1+z%)】去投。实际实践过程中不可能算这么准,估个大致的数做投放折损就行了。
1.4 其他相关问题
关于属性价值有些面试常考的小问题,这里讨论其中两个:
Question1:哪些战斗属性的边际收益是递增的?哪些是递减的?哪些是不单调的?
大部分战斗属性的边际收益都是递减的;双暴属性的边际收益是不单调的(在Question2中详细讨论),此外存在阈值的战斗属性其边际收益也是不单调的,如回合制战斗里的速度属性;递增的战斗属性主要有两个,减法公式里的防御属性和乘法公式里的减防属性,严谨计算:
减法公式里的防御属性:如下图所示,DEF越大,边际收益越大。
下标2表示敌方的属性,视为常数即可
乘法公式里的减防属性:如下图所示,Pen越大,边际收益越大。直观理解是,乘法公式里的防御属性是边际收益递减的,防御力越大,边际收益越小,而逆过来,防御力越小(也就是Pen越大的时候),边际收益就会越大。
Question2:暴击和暴伤的属性价值有什么关系?为什么原神里暴伤的价值是暴击的2倍?
为了说清楚这个问题,先来讨论一个更具体的问题:假设装备有12个词条位,一个词条位上要么是1点暴击率要么是n*1点暴击伤害,如何堆才能最大化收益?如果玩家按上述堆法来堆暴击率和暴击伤害,那么这个综合的双暴属性边际收益怎样?
设 α 表示暴击率, β 表示暴击伤害,f表示双暴乘区的值,h表示总伤害,则有:
由(1)可知,当一半词条堆暴击,一半词条堆暴伤时,收益最大。裸体角色自带少量暴击暴伤并不影响该结果:以原神为例,角色自带5%暴击和50%暴伤,f=1+(0.05+α)*(0.5+n(12-α))=1+αn(12-α)+(0.5-0.05n)α+0.025,12nα和(0.5-0.05n)α对比,(0.5-0.05n)这个系数和12n比可以忽略不计,α还是取6。以n=2为例,α=(24+0.5-0.1)/4=6.1≈6。
从这个问题中我们能得到一个重要启发:属性价值和属性投放是相辅相成的。正向看,根据属性价值来投放属性,反向看,投放量和投放方式也决定了属性价值。投放量决定属性价值很好理解,大部分属性的属性价值是稀释的,边际收益递减,投得越多越不值钱。投放方式决定属性价值可以通过双暴属性理解,总是按固定比例来投暴击暴伤的话,当玩家毕业时,暴击暴伤的堆叠比例也会是1:n(假设玩家按收益最大化的方式堆暴击暴伤),此时二者的边际属性价值比例就会是n:1。从直觉上解释就是,之前一半的养成坑位给了暴击,另一半给了暴伤,给得比较均衡,如果现在有一个新的养成坑位,给暴击和给暴伤应该是没区别的,而新的坑位要么给1暴击要么给2暴伤,所以1暴击和2暴伤价值相等。严谨计算:
事实上,由于双暴属性基本总是按固定比例投放,有的游戏已经将这两个属性合二为一了,《重返未来1999》就是如此。
二、再谈战力公式
在文章《(99+ 封私信 / 99+ 条消息) 《原神》为例のRPG数值核心设计思路梳理 - 知乎》中已经讨论了战力公式:战力=EHP*APS。先回顾一下相关内容:
设t表示生存时长,则t=HP/DPS=EHP/APS,故:
比较A与B的战力 ⇔ 比较A与B的生存时长 ⇔ 比较“A的EHP/B的APS”与“B的EHP/A的APS”的大小 ⇔ 比较“A的EHP*A的APS”与“B的EHP*B的APS”的大小,故可以令战力=EHP*APS。
注:之所以不直接用HP/DPS或HP*DPS,是因为DPS不仅与攻方的攻击类属性有关,还与守方的防御类属性相关,仅靠一方的属性求不出HP/DPS或HP*DPS。
绝对战力只是一个数字而已,没有任何意义,只有相对战力能说明问题。下面分别讨论1v1和2v2的情况:
1v1:
情况一:n=1,A和B战力相等。其实际意义是:当A和B进行1v1对战时,二者将同时死亡。
情况二:n>1,A的战力是B的n倍。其实际意义是:(1)当A和n个B进行车轮战,A和最后一个上场的B将同时死亡。(2)当A和n个B进行对战,n个B同时上场,A锚定1个目标进行攻击,则A和其目标同时死亡,其余B存活。
2v2:
2v2的情况是多对多情况的简化,这里通过2v2的情况分析为什么团战最好既有抗伤坦克又有脆皮输出,而不是全队同职业。
假设A是抗伤坦克,B是脆皮输出,C是均衡型战士,有以下关系:
由于三者战力相等,任意两个角色进行1v1战斗,都会同时死亡。那如果组队进行2v2呢,最强配队是什么?直觉上就是【坦克+输出】,严谨计算的结果也是如此。下面以【坦克+输出 vs 战士+战士】为例演示计算过程:
因此当存在同战力的多职业时,即使他们1v1都是同时死亡的,团战也会存在最优配队。
在2v2的情况下,假设a=b,则2v2的强弱关系是【坦克+输出】>【坦克+战士】=【战士+输出】>【战士+战士】=【坦克+坦克】=【输出+输出】。
在实际处理中,还需要考虑不同职业模板的实际作战优势:(1)输出大部分手都比较长,战力会低10-20%,1v1劣势明显。(2)坦克能和输出组成最强配队,这使得他在团战时比战士稍有优势,故坦克的战力会比战士稍低,1v1稍有劣势。
故1v1的实际强弱关系是战士>坦克>输出,2v2的实际强弱关系是【坦克+输出】>【坦克+战士】>【战士+输出】≈【战士+战士】>【坦克+坦克】>【输出+输出】。
三、主被动技能如何做
3.1 主动技
STEP1:基础数值:
要获得主动技的基础数值,你需要:
首先,设定一个你想要的基础DPS。(根据怪物的血量和你预期的关卡时长来拍)
然后,招式基础伤害=主动技时长*你设定的基础DPS。(这个公式假设玩家一直在输出)
STEP2:根据资源消耗修正数值:
一场战斗的心流有张有驰是最优的,这很好理解,假如一直平缓玩家就会觉得无聊,假如一直高潮玩家又会觉得疲惫并逐渐脱敏。
制造高潮一般有两种方式:一是做局内资源条,玩家积累一定资源然后爆发时就会有高峰体验,一种主动体验;二是和怪物挡拆互动,在怪物释放高压招式时产生高峰体验,一种被动体验。
STEP2讨论第一种方式,对于能够积累或释放资源的招式需要修正数值:
- 对于能够积累资源的招式:有很多种处理方式,一般都是任意招式平均积累,特定招式大幅积累。此处的“特定招式”既然能够大幅积累资源,必然在其他方面有所削弱,要么操作难度高,要么释放限制多,要么战斗性能差,否则玩家一直放这类招式就行了。可以配合这些削弱进行小幅的伤害数值削弱,但不能仅仅对其进行数值削弱,因为削弱的目的是让玩家在不同情境下释放不同招式,在不同情境下有不同最优解,仅伤害数值削弱在单局内做不到这一点。
- 对于能够释放资源的招式:毫无疑问要加强招式表现量级,加强招式战斗性能(攻击范围大、抗打断),同时加强数值,因为此类招式承载资源倾泻也承载节奏高潮,需要在各个方面予以加强。下面详细讨论加强的方式。
最简单的方法就是让1点资源对应a点伤害,招式伤害=招式基础伤害+该招式所需资源*a=主动技时长*基础DPS+该招式所需资源*a。
缺点就是难以对比,无法直观的看出这个资源带来了多少DPS提升。为了看清该资源在DPS中的占比,可以先设定这个资源带来了a%的DPS提升,然后估计该资源的平均积累速度,招式伤害=主动技时长*基础DPS+(该招式所需资源/资源积累速度)*(基础DPS*a%)。
赋予不同资源不同的DPS提升和不同的积累速度,就能制造高潮迭起的局内节奏和心流体验。
STEP3:根据操作难度修正数值:
STEP3讨论第二种方式,对于操作难度较高/达成条件严苛的招式需要修正数值:
资源会有一个稳定的积累速度,因此消耗资源的招式也会有一个稳定的释放频率,但此类强交互的高难招式却没有稳定的释放频率,原因:一方面不同怪风格不同,另一方面不同玩家水平差异也很大,高玩打高难怪的时候可能会频繁进行高难操作,小白打简单怪的时候可能全程不会进行高难操作。
由于此类高难招式没有稳定的释放频率,由高难招式带来的DPS提升也是极不稳定的,因此没必要计算具体CD,用一个固定伤害作为操作奖励即可,招式伤害=招式基础伤害+固定伤害奖励。关于这个固定伤害的计算,可以假设该招式最多能为高手带来百分之多少的DPS提升,然后粗估一个高手CD,二者相乘,但这个数是比较粗糙的,只是给出一个大致的上限,最终这个固定伤害奖励基本是脑拍的。
脑拍的依据是【操作难度】和【操作的重要性】。【操作难度】不消多说,【操作的重要性】是指在这个玩法里,你鼓不鼓励玩家这样玩。
举例来说,你战斗玩法的核心是部位破坏,怪物设计聚焦在特殊部位的设计上,A部位需要短时间高DPS爆发来部位破坏,B部位需要定点打击来部位破坏,等等,此时你的战斗系统即使也包含闪避反击、格挡处决的设计,其收益也不能太高,因为你不鼓励玩家通过闪避反击/格挡处决的方式轻松通关所有Boss,这等于无视了你苦心孤诣而丰富多彩的部位破坏设计。
再举例来说,你做了一个回合制玩法,想加入一些即时要素,比如qte、精准格挡等,假如你的核心依旧是回合制,你重视组队逻辑、环境对策卡、box深度等策略要素,这些qte和精准格挡即使再难触发,也不应该给太多收益,因为玩家可以通过这些他们无脑通关所有高难本,让你苦心孤诣而丰富多彩的策略设计都失去意义。
有些招式即使【操作难度】不高,但属于你所鼓励的玩法循环中的关键一环,【操作的重要性】很高,也可以给予一定的固定伤害奖励。
此外,数值统一性也值得注意。A和B两个高难招式的【操作难度】是一致的,【操作的重要性】也是一致的,那么他们的固定伤害奖励也需要是一致的。你可以根据不同【操作难度】和【操作的重要性】做一张固定伤害奖励表,每个招式从这两个维度进行评级,然后再从表中取数。A和B两个高难招式的【操作难度】都是2级,【操作的重要性】也都是3级,那么它们的固定伤害奖励就会是同一个数。
STEP4:其他要考虑的:
根据玩法特点可以灵活调整主动技数值:
比如这是一个校验生存的类魂玩法,核心体验是招式挡拆,局外养成只有招式解锁,那就可以把STEP3的操作修正给高一点,把STEP2的资源修正给低一点。
比如该玩法有多个可选角色,近战角色可以挡拆吃操作奖励,远程角色没有能吃操作奖励的招式,那就可以把远程角色的伤害整体抬一下,抬高幅度等于普通熟练玩家用近战角色能打出的DPS。从而做到:让小白用远程角色放风筝,让高玩用近战角色打出比远程角色更高的DPS。
3.2 被动技
确定了主动技数值之后,基础DPS就定下来了。接下来就可以确定被动技的数值了。
被动技可以分为两大类,一是角色本体的被动,二是本体之外的被动,比如装备被动、芯片被动、buff被动等等,本文中统称为装备被动。
对于被动数值的确定,数值策划的第一反应可能是用属性价值拉表,但本体被动其实最好是用比较原始的战力公式(EHP*APS)来做,下面分别讨论。
本体被动-靠战力公式平衡:
本体数值最好先别用属性价值,回顾一下第一章中的内容,属性价值是基于一个基准模型做的,本体被动本来是应该包含在白板模型内的,假如要用属性价值做,就得把白板模型缩一缩,让白板模型不包含本体被动。这样确实也可以做,但因为属性价值并不完全准确,并且在达到毕业模型之前可能极其不准,用属性价值投本体被动,会导致本体被动的强度非常不一致,假如有人力,可以用属性价值先投,然后通过跑测来调试本体被动数值,但如果没办法挨个跑测,或者希望初版数值的强度更准确一点,更推荐的做法是用战力公式做平衡——算出包含本体被动的战力,然后让各个角色的战力相等,这样做出来的初版数值,能够保证角色之间1v1基本是同时死亡的。
装备被动-靠属性价值拉表:
本体被动之外的所有被动,都可以用属性价值直接投,因为对准确性的要求降低了,用属性价值是效率最高的做法。后续跑测或者beta测试也不用挨个跑,多打打游戏,假如发现某个东西特别强/特别弱,很可能就是其对应的属性价值的算法有问题,调整该属性价值,然后把该属性价值的所有投放都重刷一遍即可。如此反复,直到打起来不存在很明显的问题,战斗数值的工作就基本结束了
一般来说属性价值的准确度有限,无须强求模型精度,作为战斗数值只需要保证:1)玩家在养成后期不存在废物物品和神级物品,同级别的物品(同级别指同为五星同为S级,其实就是同为后期物品)每个都有自身的适用环境。2)监测并控制不同坑位的各个物品之间的组合效果,不存在捏核弹的可能,不存在玩家能钻的空子。
关于条件管理:
被动数值一般都不是全覆盖,会有各种各样的覆盖差异,下面举几个例子:
- 时间覆盖率:有的buff持续时间长,有的持续时间短。
- 技能覆盖率:有的作用于全部主动技,有的只作用于部分。
- 单位覆盖率:有的是单体buff,有的可覆盖多人。
- 触发覆盖率:有的是击杀敌人后生效,有的是任意单位死亡后生效,有的是受到攻击后生效,有的是我方释放技能后生效,有的是使用技能造成击杀后生效。
不论是用战力公式还是用属性价值,都需要根据覆盖率对数值进行调整,覆盖率高数值就低一点,覆盖率低数值就高一点,覆盖率对被动价值的影响无法准确估计,脑拍一个大致的调整参数即可。但需要特别注意的是,最好有一张单独的表对所有影响覆盖率的条件进行统一管理。比如,A被动和B被动都是击杀敌人后生效,他们俩的调整参数应该是一致的,都通过【击杀敌人后生效】这个条件在条件表里取数,取到同一个数。
tetsu
原文:https://zhuanlan.zhihu.com/p/1931051941196203285