游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6983|回复: 2

[分享] 战斗力综述:战斗力的作用与属性解析

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2016-8-19 13:30:40 | 显示全部楼层 |阅读模式
QQ截图20160819133420.png


  文/左左

  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. 战斗力计算方法显而易见,下文做简单推导。

QQ截图20160819132546.png

  我们可以把暴击等属性也乘在公式里,这个战斗力是实实在在的。

  a) 缺点:减伤公式=护甲/(护甲+A)。其中A为成长曲线。成长曲线中,往往只会添加等级参数。不会把所有系统的标准值全部计算在内。在目前市场形势下,各种养成系统太多,数值膨胀较快,容易冲击成长曲线。系统扩展较难。

  1、比例:目前有一些更加简单粗暴的方式——直接使用一个比例。例如:物理减伤10%。

  a) 优点:简单粗暴。可极端的体现职业间差异。

  b) 缺点:

  i. 这个比例无法理性算入战斗力。

  ii. 无法正常成长。

  2、无甲:没有护甲这个属性。或者护甲全部为0,并且不显示。

  护甲存在的意义是什么?不是单纯让玩家体验到有更多的花样。或者有职业间区分。如果你要做这个,不如把精力放在做技能和关卡上。

  护甲实际上是让数值策划在另一个维度掌控游戏节奏。例如我们之前聊的不破防,例如可延长有效生命等。

  但零护甲本身没有问题。很好算,玩家也不会因为没有护甲跟你较真。

  以上几种减伤方式 ,笔者在实际工作中都遇到过。各有优劣。看项目,看团队,看我们对数值的把控能力。

  目前除法公式比较流行,我们下文就拿它作为例子,继续探讨战斗力。

  职业平衡

  我习惯从PVP入手计算战斗。制作标准人,制作职业平衡。

  我们先预设标准人是一个均衡类职业。并且符合标准战斗时间50秒。减伤公式为:

1.png

  表中,我们简单制定20个成长阶段。即在这个阶段,通过等级、强化、装备等等一系列养成后的属性。表格如下:

1.png


  我们设定生命,攻击,防御在战斗力中的占比相同。因为他们同为一级属性。那么:

  1战斗力=1攻击=1防御=25生命。

  下边我们增加一个职业,他是一个生存属性较高的职业:

2.png
点击图片查看大图

  首先,我们要保证A和B的互搏时间是相等的,才说明A、B互相平衡。但是,如果B的战斗力依然按照A战斗力公式推导,就会导致平衡的情况下,战斗力不相同。

  很多人到此就要么这样,战斗力不相同就不相同吧。要么会调整B的属性,保证战斗力相同,但会导致职业间互搏不平衡。这二者都是不负责任的,不可取的。

  玩家是通过战斗力来评定胜负的。所以我们最好能保证A、B互搏平衡的情况下,A、B的战斗力也是相同的。所以我会改B的战斗力计算公式:

  1战斗力=0.8攻击=134.38防御=30生命。

  第三个职业

  同理,我们可以加入第三个,第四个职业。但实际操作中,我们会发现,拍脑门定一个第三职业攻防血,并按着相同规律成长,导致AB互搏平衡,AC互搏平衡,CB互搏不平衡。如下表:

3.png
点击图片查看大图

  这导致B、C之间有误差。虽然误差很小,可以忽略,但是我们可以调整,达到一个更优值。因为我们有防御这个属性!我们可以通过这个维度调整C的生命与防御比例,尽量缩小误差。

  我先用C攻击计算A、C互搏时间和B、C互搏时间。并把C生命和防御看做未知数带入这两个公式中计算。解一个二元方程即可得下表:

4.png
点击图片查看大图

  怎么样,护甲作为另一个维度,帮助了数值策划。同理计算C的战斗力公式,保证A、B、C战斗力相等的条件下,达到理论平衡。

   二级属性

  我们常定义:命中、暴击、闪避等为二级属性。这些属性一般是以一个乘值的方式计算在公式中。所有二级属性皆通一理,下文只拿命中举例。

  命中率判定,如果未命中,则造成0伤害。如果命中造成100%伤害。参与计算的平衡是防御减伤之后的数值。这样我们可以得到以下计算公式:

  通过这个公式我们可以看出两个问题:

  1、保证三维同比例成长,且命中率不成长的前提下,可以保证不破坏战斗节奏。

  2、命中率价值会随着三维变化而变化。三维越高,命中率等同于的三维数值越大,同比战斗力价值越高。

  那么,我们既要保证命中率可以成长,又要避免命中战斗力不稳,我会这样处理。

  命中率在游戏中产出,就以一个百分比形式产出。同时给它制作一条反属性,例如:未命中率。

  这两条属性同时产出,并且同时成长。同上文计算一样,将其计算到多职业中。如下表:

6.png
点击图片查看大图

  我们同上文去定义不同职业,命中反馈在战斗力中的系数即可。

  顺便提一句,我们完全可以制作一套命中等级数值。他和三维一样是一个绝对值数。通过复杂的公式换算成一个命中率。然后参与战斗计算。操作性很好,玩家也可以理解。计算方法同上:

  1、制定各职业命中率;

  2、根据各职业命中率确定命中等级换算命中率公式;

  3、根据不同职业的命中等级换算命中等级战斗力公式。

  方法大同小异,就不做表了。

  战斗力是加值

  △加值的好处与问题

  战斗力为什么是加值?即:

QQ截图20160819132721.png
  先说好处:非常容易理解。毕竟战斗力是给玩家参考的数值。越容易理解,玩家越容易接受。

  例如:某个装备提供了各种属性。我们可以根据上文公式计算出这个件装备的战斗力。当我佩戴这件装备时,我的总战斗力提高的值等于装备战斗力。相反,其它公式会导致误差,增加玩家的理解成本。

  说说问题:这个公式成立的条件是,战斗节奏不变的前提下。如果战斗节奏发生变化,这个公式将会崩溃。例如:A玩家将100的战斗力,全部投放在生命。B玩家将100的战斗力,全部投放在攻击。两个玩家收益是不等价的。

  但是,我并不担心这个问题。就目前市场情况看,养成系统多而广。我们只需要准确的做属性投放,就可以完美规避这个问题。

  所以,最后我还是选择了这个公式,并且把它推荐给大家。

   WOW的战斗力

  WOW没有战斗力。但是它计算战斗能力的方式反而是最准确的。我们还是简单推导一下:

QQ截图20160819132727.png
  他的诸多能力值都可以准确的反馈在公式中。推导过程上文已经聊过了,请见2.2.1简单聊聊防御相关内容。

  但是它有一个致命缺点,战斗力反馈在UI上不好理解。因为需要综合角色全身属性才能得到真实战斗力,而单件装备上仅有的战斗力无法计算。这样在目前市场上,玩家需要利用战斗力评判装备好坏的作用就荡然无存了。

  既然战斗力变的无效,那么何必还要计算。所以不推荐这样的算法。虽然我不得不承认它很精确。

  □多职业困惑

  在本章节的最后,我们讨论一下是否有必要在一款游戏中区分职业属性。

  卡牌游戏应该是有这样的考虑的。但是我们没有必要那么复杂的去计算战斗平衡。目前来看,卡牌游戏中单职业平衡不存在。我们最多是可以以战斗力作为依据,计算经济方便。并且也没必要费尽心思去为每一张卡牌制作战斗力计算公式。

  单职业养成就更加困惑了。我们虽然已经完美的制作了PVP的平衡。但是PVE上是不平衡的。因为单看属性,攻击是保证PVE速度的唯一标准。那么只要存在职业区分,就无法制作PVE平衡。

  唯一的变通是可以让防高职业更多的使用群攻技能。或更加讲究多职业间的配合打怪。

  2. 技能战斗力

  2.1. 战斗力算法

  最后,聊聊技能吧。技能要不要算入战斗力?

  算是可以算的。我们可以根据技能CD,技能动作长度,以及普通攻击动作长度计算技能效率。然后把这个效率乘进战斗公式。或者将效率对攻击力提升的值,转换成攻击力的提升,加在战斗力中。

  那么,我们是不是要考虑这个技能击中多少个目标?或者空放?或者被打断?冲锋类位移技能的价值怎么算?控制类技能的价值怎么算?最后我们只会得到一个非常不准确的值。

  我的建议是技能不算入战斗力。或者,技能在属性战斗力之外,根据技能等级额外制定一套规则。并保证不同职业,对应等级的技能之间价值平衡。

  2.2. 技能的作用

  承上文,我们聊到要制作不同职业之间技能价值的平衡。先聊聊技能的作用。

  没错,区分职业,区分玩法,丰富关卡性。回归游戏雏形可以没有技能这个东西。放眼现在的作品,技能就是战斗的玩点。利用此,给玩家带来选择性,差异性。

  技能在数值策划手中,是干什么的呢?是最后一步,调平衡用的。

  同样是分模块化研发,我们假定已经完成了属性计算。现在开始做技能。当我们发现某职业过强时,调整它的属性是一个非常庞大的工作量。并且会因此影响其他职业,养成平衡等等。那么,我们就来调它的技能,这样一个相对单纯的模块。

  可以说,技能是我做平衡的保底。包括我们可以利用技能体系制作等级压制等效果。

  罗里吧嗦说了一堆,也不敢说什么高盐阔论,只是工作中的一些心得。给大家抛砖,欢迎一起讨论。

  相关阅读如何高效设计游戏——关于战斗力计算方式的总结

via:GAD


2

主题

46

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
QQ
发表于 2016-8-19 14:20:20 | 显示全部楼层
有些点分析的不合理,比如乘法减伤无法扩展,你想过A的值可以是函数不是配表吗?

7

主题

371

帖子

2214

积分

金牌会员

Rank: 6Rank: 6

积分
2214
发表于 2016-8-19 19:20:04 | 显示全部楼层
实际上,很多游戏的战斗力是非常简单粗暴的,直接根据战斗力差值给伤害加减成。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-23 01:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表