文/左左
1. 战斗力的作用
本文意在和大家聊聊战斗力的计算以及在实际工作中的应用。
战斗力,顾名思义,评判战斗能力的分值。
玩家面对战斗力会有两个理解:
1、根据战斗力预判这场战斗的胜负。不考虑操作等其他因素的影响,战斗力高者胜利。
2、通过养成提升的战斗力,评判系统价值。调平经济时,保证玩家投入和收益正比。
所以,只要保证相同战力不同职业互搏平衡。以及不同职业获得相同战力的养成代价相同,我们认为这一套战斗力的计算是无误的。
针对不同的游戏,不同的团队,计算战斗力会有不同的方法。这没有一定之规。本篇文章,也不过是将我之前工作时的一些小技巧分享给大家。
我习惯分模块地计算。并赋予不同模块不同的数值使命。就战斗力来讲,我会从以下两个方面展开,和大家一起探讨:
1、属性带来的战斗力:制作职业间的平衡;
2、技能带来的战斗力:区分职业间的不同。
2. 属性的战斗力
2.1. 战斗节奏
制作属性,我不自然就会想到标准人。一说到标准人,就会想到战斗节奏,或者说是标准战斗时间。
制作游戏数值,最关键就是把握时间。无论是制作战斗还是制作经济。这也将会是我们整套数值体系中,可以根据玩家体验主观设定的数值。体现在战斗中就叫做战斗节奏。
不同的战斗类型,标准不同。我们可以将游戏分为两种类型:
1、即时类:
游戏节奏以秒来体现。基础模型为互相攻击,同时死亡的时间。我们简称为互搏时间。
制作时,需要提前考虑到技能对攻击的放大效果,所以要多预留一些时间,不能把互搏时间做的太短。一般我们会预设一个2倍的效果提升。
还需要考虑重复操作导致无聊,时间也不能过长。主要参考的因素有技能的CD,攻击动作帧数。卡牌类游戏要考虑积攒能量的时间。一般2-3个技能循环为佳。
通过我们长时间对玩家体验的观察,战斗节奏往往设定在40-60秒之间。
2、回合类:
回合制自然是以多少个回合作为评判标准。
同上理论,观察玩家行为,游戏前期我们往往会把战斗节奏定在3-5回合。游戏版本迭代后,回合数会略有延长。
我,会把回合类游戏的战斗节奏定义在3.1回合。为什么?我把它称为:“3.1理论”。
道理很简单, 如一层窗户纸。在标准模式下,玩家互搏时间3.1个回合,在游戏中实际体验为4回合。假设玩家有能力突破3.1个回合,把0.1的份额去掉,那么就会在3回合中解决战斗。在对战中获得决定性胜利。那么,玩家如何能去掉0.1的份额?当然是通过充值,或惊喜类收益啦:)
所以很自信的跟大家分享3.2理论,正因为我们在制作战斗雏形的时候,就已经将经济,付费,惊喜等各种元素考虑在内。简单的几个字,就能体现出游戏的本源。
我们先假定经过团队讨论,将战斗节奏雏形定义在50秒。也为了下文计算方便。接下来开始制作最基本的模型,攻防血。
2.2. 一级属性
一级属性往往是指攻、防、血,也称三维。我们现在就简单的来一起模拟一套数值平衡。
2.2.1. 简单聊聊防御
已经有很多人对防御减伤做了好多讨论。这里简单论述,不是本文重点。比较流行的有以下做法。笔者在工作中都使用过:
1、减法:伤害=攻击-防御。
a) 优点:
i. 简单,玩家理解成本低。
ii. 战斗力计算一般为加减。所以防御在战斗力计算中更加准确。
iii. 可以做到不破防。注意:这真的是加减护甲公式的优点。这样我们可以更加轻松的制作等级压制,对玩家的攻击属性要求更高。更容易拉付费。
b) 缺点:
i. 当有暴击,技能等因素加入之后,导致计算成本提高。自己算一下就明白。一个公式有加减,又有乘除时,很难计算。
ii. 不能加入攻击速度。当游戏中有攻击频率差异时,导致很难计算。即便将护甲计算在攻击速度以内,很难让人理解。更适合回合制游戏。
2、除法:伤害=a*攻击^2/(攻击+防御)。
a) 优点:目前市场,养成较深,养成系统很多的情况下。只要保证攻击、生命、防御按照同比例成长,就可以保证战斗节奏稳定。这样可以在任何角度增加养成系统,而不破坏战斗节奏。
b) 缺点:
i. 战斗力是一个相对值,很难换算成具体战斗能力或者有效生命。计算困难。
ii. 攻防血某一项偏高高者偏低时,会严重破坏战斗节奏。
iii. 不同职业间,攻击和防御价值不匹配。最好能避免不同职业可以通用装备的系统。
3、乘法:战斗时间=生命/(攻击*(1-减伤))。减伤=护甲/(护甲+A)。A是这个阶段的成长标准。
a) 优点:
i. 非常好,非常合理的减伤方式。在同等级条件下,每获得1点护甲增加的有效生命的固定的。那么就能保证护甲、攻击和生命价值等价。
ii. 暴击等数据均为乘法方式,计算方便。
iii. A是唯一一个主观量。但计算平衡时,可以约掉。
iv. 战斗力计算方法显而易见,下文做简单推导。
我们可以把暴击等属性也乘在公式里,这个战斗力是实实在在的。
a) 缺点:减伤公式=护甲/(护甲+A)。其中A为成长曲线。成长曲线中,往往只会添加等级参数。不会把所有系统的标准值全部计算在内。在目前市场形势下,各种养成系统太多,数值膨胀较快,容易冲击成长曲线。系统扩展较难。
1、比例:目前有一些更加简单粗暴的方式——直接使用一个比例。例如:物理减伤10%。
a) 优点:简单粗暴。可极端的体现职业间差异。
b) 缺点:
i. 这个比例无法理性算入战斗力。
ii. 无法正常成长。
2、无甲:没有护甲这个属性。或者护甲全部为0,并且不显示。
护甲存在的意义是什么?不是单纯让玩家体验到有更多的花样。或者有职业间区分。如果你要做这个,不如把精力放在做技能和关卡上。
护甲实际上是让数值策划在另一个维度掌控游戏节奏。例如我们之前聊的不破防,例如可延长有效生命等。
但零护甲本身没有问题。很好算,玩家也不会因为没有护甲跟你较真。
以上几种减伤方式 ,笔者在实际工作中都遇到过。各有优劣。看项目,看团队,看我们对数值的把控能力。
目前除法公式比较流行,我们下文就拿它作为例子,继续探讨战斗力。
□ 职业平衡
我习惯从PVP入手计算战斗。制作标准人,制作职业平衡。
我们先预设标准人是一个均衡类职业。并且符合标准战斗时间50秒。减伤公式为:
表中,我们简单制定20个成长阶段。即在这个阶段,通过等级、强化、装备等等一系列养成后的属性。表格如下:
我们设定生命,攻击,防御在战斗力中的占比相同。因为他们同为一级属性。那么:
1战斗力=1攻击=1防御=25生命。
下边我们增加一个职业,他是一个生存属性较高的职业:
点击图片查看大图
首先,我们要保证A和B的互搏时间是相等的,才说明A、B互相平衡。但是,如果B的战斗力依然按照A战斗力公式推导,就会导致平衡的情况下,战斗力不相同。
很多人到此就要么这样,战斗力不相同就不相同吧。要么会调整B的属性,保证战斗力相同,但会导致职业间互搏不平衡。这二者都是不负责任的,不可取的。
玩家是通过战斗力来评定胜负的。所以我们最好能保证A、B互搏平衡的情况下,A、B的战斗力也是相同的。所以我会改B的战斗力计算公式:
1战斗力=0.8攻击=134.38防御=30生命。
△第三个职业
同理,我们可以加入第三个,第四个职业。但实际操作中,我们会发现,拍脑门定一个第三职业攻防血,并按着相同规律成长,导致AB互搏平衡,AC互搏平衡,CB互搏不平衡。如下表:
点击图片查看大图
这导致B、C之间有误差。虽然误差很小,可以忽略,但是我们可以调整,达到一个更优值。因为我们有防御这个属性!我们可以通过这个维度调整C的生命与防御比例,尽量缩小误差。
我先用C攻击计算A、C互搏时间和B、C互搏时间。并把C生命和防御看做未知数带入这两个公式中计算。解一个二元方程即可得下表:
点击图片查看大图
怎么样,护甲作为另一个维度,帮助了数值策划。同理计算C的战斗力公式,保证A、B、C战斗力相等的条件下,达到理论平衡。
□ 二级属性
我们常定义:命中、暴击、闪避等为二级属性。这些属性一般是以一个乘值的方式计算在公式中。所有二级属性皆通一理,下文只拿命中举例。
命中率判定,如果未命中,则造成0伤害。如果命中造成100%伤害。参与计算的平衡是防御减伤之后的数值。这样我们可以得到以下计算公式:
通过这个公式我们可以看出两个问题:
1、保证三维同比例成长,且命中率不成长的前提下,可以保证不破坏战斗节奏。
2、命中率价值会随着三维变化而变化。三维越高,命中率等同于的三维数值越大,同比战斗力价值越高。
那么,我们既要保证命中率可以成长,又要避免命中战斗力不稳,我会这样处理。
命中率在游戏中产出,就以一个百分比形式产出。同时给它制作一条反属性,例如:未命中率。
这两条属性同时产出,并且同时成长。同上文计算一样,将其计算到多职业中。如下表:
点击图片查看大图
我们同上文去定义不同职业,命中反馈在战斗力中的系数即可。
顺便提一句,我们完全可以制作一套命中等级数值。他和三维一样是一个绝对值数。通过复杂的公式换算成一个命中率。然后参与战斗计算。操作性很好,玩家也可以理解。计算方法同上:
1、制定各职业命中率;
2、根据各职业命中率确定命中等级换算命中率公式;
3、根据不同职业的命中等级换算命中等级战斗力公式。
方法大同小异,就不做表了。
□ 战斗力是加值
△加值的好处与问题
战斗力为什么是加值?即:
先说好处:非常容易理解。毕竟战斗力是给玩家参考的数值。越容易理解,玩家越容易接受。
例如:某个装备提供了各种属性。我们可以根据上文公式计算出这个件装备的战斗力。当我佩戴这件装备时,我的总战斗力提高的值等于装备战斗力。相反,其它公式会导致误差,增加玩家的理解成本。
说说问题:这个公式成立的条件是,战斗节奏不变的前提下。如果战斗节奏发生变化,这个公式将会崩溃。例如:A玩家将100的战斗力,全部投放在生命。B玩家将100的战斗力,全部投放在攻击。两个玩家收益是不等价的。
但是,我并不担心这个问题。就目前市场情况看,养成系统多而广。我们只需要准确的做属性投放,就可以完美规避这个问题。
所以,最后我还是选择了这个公式,并且把它推荐给大家。
△ WOW的战斗力
WOW没有战斗力。但是它计算战斗能力的方式反而是最准确的。我们还是简单推导一下:
他的诸多能力值都可以准确的反馈在公式中。推导过程上文已经聊过了,请见2.2.1简单聊聊防御相关内容。
但是它有一个致命缺点,战斗力反馈在UI上不好理解。因为需要综合角色全身属性才能得到真实战斗力,而单件装备上仅有的战斗力无法计算。这样在目前市场上,玩家需要利用战斗力评判装备好坏的作用就荡然无存了。
既然战斗力变的无效,那么何必还要计算。所以不推荐这样的算法。虽然我不得不承认它很精确。
□多职业困惑
在本章节的最后,我们讨论一下是否有必要在一款游戏中区分职业属性。
卡牌游戏应该是有这样的考虑的。但是我们没有必要那么复杂的去计算战斗平衡。目前来看,卡牌游戏中单职业平衡不存在。我们最多是可以以战斗力作为依据,计算经济方便。并且也没必要费尽心思去为每一张卡牌制作战斗力计算公式。
单职业养成就更加困惑了。我们虽然已经完美的制作了PVP的平衡。但是PVE上是不平衡的。因为单看属性,攻击是保证PVE速度的唯一标准。那么只要存在职业区分,就无法制作PVE平衡。
唯一的变通是可以让防高职业更多的使用群攻技能。或更加讲究多职业间的配合打怪。
2. 技能战斗力
2.1. 战斗力算法
最后,聊聊技能吧。技能要不要算入战斗力?
算是可以算的。我们可以根据技能CD,技能动作长度,以及普通攻击动作长度计算技能效率。然后把这个效率乘进战斗公式。或者将效率对攻击力提升的值,转换成攻击力的提升,加在战斗力中。
那么,我们是不是要考虑这个技能击中多少个目标?或者空放?或者被打断?冲锋类位移技能的价值怎么算?控制类技能的价值怎么算?最后我们只会得到一个非常不准确的值。
我的建议是技能不算入战斗力。或者,技能在属性战斗力之外,根据技能等级额外制定一套规则。并保证不同职业,对应等级的技能之间价值平衡。
2.2. 技能的作用
承上文,我们聊到要制作不同职业之间技能价值的平衡。先聊聊技能的作用。
没错,区分职业,区分玩法,丰富关卡性。回归游戏雏形可以没有技能这个东西。放眼现在的作品,技能就是战斗的玩点。利用此,给玩家带来选择性,差异性。
技能在数值策划手中,是干什么的呢?是最后一步,调平衡用的。
同样是分模块化研发,我们假定已经完成了属性计算。现在开始做技能。当我们发现某职业过强时,调整它的属性是一个非常庞大的工作量。并且会因此影响其他职业,养成平衡等等。那么,我们就来调它的技能,这样一个相对单纯的模块。
可以说,技能是我做平衡的保底。包括我们可以利用技能体系制作等级压制等效果。
罗里吧嗦说了一堆,也不敢说什么高盐阔论,只是工作中的一些心得。给大家抛砖,欢迎一起讨论。
相关阅读:如何高效设计游戏——关于战斗力计算方式的总结
via:GAD