游戏数值策划属性篇(三):战斗公式的设计
GameRes游资网授权发布 文 / 张锋
在战斗设计中需要考虑战斗的目的,例如,野外打怪的设计的主要目的是玩家完成任务和挂机,部分野战需时较长让玩家有时间发生冲突,设计中尽量简化玩家的操作,通过一些设计给玩家新鲜的感受。
战斗设计的几点要素:
战斗规则
- 攻击方:攻击发起方;
- 防御方:被指定为攻击方,被击方;
- 受击方:一般情况下受击方=防御方,发生援护时,援护方=防御方
判定互斥
战斗状态以圆桌展开,相级属性互斥处理(如果有的话 反击、躲闪、格挡等不能并发)
红名规则
例如,打怪可减少红名时间,单个怪物的等级换算秒数来计算减少红名时间
公式设计
设计思想:公式应单一,简便,易调控。凡采用多公式的项目,都是假设“会失控”后不得已的做法。
目标与伤害:
如果单从目标来判断伤害来看,会产生非常多的类型。一般游戏会做PVE,PVP两条公式,简单来说就是人打怪和人打人。
而我的建议是Pve和Pvp可以使用同一条公式,只要把握好数值投放即可,因为结果和数值投放是相互影响的。怪物属性配置的非常低一样可以营造出高输出高伤害的战斗感受因此dps1 = dps2 = dps3 都是同一条公式。
一般游戏的做法:
<ignore_js_op>
我推荐的做法:
<ignore_js_op>
援护:
援护可以是一种状态,在援护状态下,可以代替被援护方承受一定比率的伤害;援护也可以是一种技能,当触发后对一定范围内产生援护效果;援护也可以直接变更判定目标,将本次伤害完全继承。
固定伤害:
固定伤害是对于特殊目标的一种保护,是和分PVE,PVP公式一样的一种不得已的做法。单公式如果控制得当是完全可以符合各种例如“镖车”,“世界BOSS”,等诸多情况的。如提高制御属性:防、抗、减免等,将大部分玩家的伤害压制在某个范围区间内,如此一来它的效果同“固定区间伤害”的效果会高度拟合(如1000-5000之间)。
综述
虽然本人并不推荐分公式,但是不得不说,分公式的方法可以用最粗暴的方法,在最短的时间内达到项目的需求,算出各种世界BOSS的平均伤害,参与人数,持续时间等,万法有度,各有取舍。
通用判定
出手判定:所谓的通用判定,即在玩家进行攻击操作时,去判定此次攻击操作是否有效。攻击无效有很多种情况,任何一种情况存在均可视为此次攻击无效。具体流程如下:
<ignore_js_op>
下面介绍几种相关的公式。
减法公式
伤害=攻击-防御 原型 Dam= a - b
公式特点:简单粗暴、体验强烈
公式说明
单次输出伤害 = 攻击方输出力 - 防御方生存力(承受)
该公式是早期游戏很经典的伤害计算方式,因为计算简单,看起来比乘除法更易达到平衡。但是攻击与防御不等价,必须严格控制数值投放,尤其是防御属性。一旦防御投放过高导致不破防的出现(攻击-防御 ≤ 0),将导致无法想象的后果。所以,减法公式对数值投放的要求更加严格,对于道具付费类游戏既要保证消费又要保证游戏数值总体平衡。
应用范围:早期端游《石器时代》、《游戏王》、《征途免费版》,经典的一人灭国,大多数页游(快餐类游戏,鼓励pvp,可以保证用钱砸数值一定有效)
公式评价
加减法公式因其直观,有不破防的概念,故而更适合用在量变激发质变的游戏中使用,因为在攻防临界值附近哪怕很小的攻击力和防御力变化也会对战斗的结果产生重大的影响。当你需要做1个人撂倒一群的设定时,加减法公式是个简单有效的手段,并且可以很有效的防止数值膨胀过大。
对于攻防的不懈追求更有利营收,但是武器攻速、暴击收益将较难平衡。
乘法公式
伤害 = 攻击*(1-防御减伤百分比)
公式特点: pve玩法生命期更长,易调控,防御属性衰减剧烈,例:同为50级玩家打30副本,加法公式玩家可随意碾压,本公式依旧会有操作的快感。
公式说明
乘法公式是不同于加法公式的战斗公式,模型为:实际伤害=造成伤害*系数。系数一般为防御属性折算百分比体现。从防御直接抵消伤害变为防御折算减伤百分比,是一个很大的进步,最大的好处是不用再担心当防御比攻击更高时伤害为0的尴尬局面。随后乘法公式又衍生出很多的变形,如加入等级参数等等,使玩家战斗变得更加合理与完善。但乘法公式依旧有一定缺陷,攻击无衰减,而防御的衰减曲线十分剧烈,后期防御的性价比大幅度降低。
应用范围: 《魔兽世界》、《地下城与勇士》(其实没有单纯的乘法公式,在实际运用中,游戏里的战斗公式都是在乘法公式模型的基础上的衍生公式。)
<ignore_js_op>
公式评价
人物防御力的调整就可以不受攻击属性的影响而独立进行,故而这成了战斗属性复杂游戏的首选。缺点是玩家理解成本高。
运用此种攻防公式,会对数值平衡计算的难度要求并不高,而且可以很方便的作各种攻击速度不同的武器装备,不用考虑到减法攻防公式的弊端。因此可以说,如果你需要做多种攻速的武器,想要在攻速上下文章,乘法公式是不二之选。往往这类攻防模型为基础的游戏,游戏后期,玩家对防御的追求容易止步不前,而伤害的追求则一如既往的在提升。
除法公式
伤害=攻击/防御
公式特点:兼具乘法公式的所有特点 降低了剧烈衰减
公式说明:实际上,除法公式是乘法公式的变体,可拆分成:伤害=攻击*(1/防御),其中(1/防御)是乘法公式中伤害减免百分比的另一种表现形式。正如特点2所说,衍生公式是除法公式真正意义所在
应用范围:当前运营的大部分游戏
衍生公式:
- 伤害=攻击^2/(攻击+防御)
- 伤害=系数*攻击^2/系数*(系数*攻击+防御)
- 伤害=系数*攻击^3/系数*(系数*攻击+服务器参数*防御)
- 伤害=防御^2(攻击+防御) 这个公式突出了防御的重要性
综述
首先公式绝对不仅仅只有这三种,很多优秀的游戏有各种纷繁的公式,不同的游戏种类会选择不同的算法,没有优劣之分,只有用法巧妙。只要公式可以满足设计者的需求,就是好公式。
相关理论
圆桌理论
《World of Warcraft》(《魔兽世界》)中关于攻击判定的一个理论,互斥式随机,每一次某动作发生,将出现多个相互排斥的结果中的一个,即为“圆桌决议”,也称为“一次掷骰”。原本是为了防止Tank被BOSS强力“碾压”而设,后由此引申出针对不同职业的“免伤”方法。
核心设计:圆桌理论优点是逻辑清晰,复杂度较低,运算简单。 缺点是互斥触发几率总和易溢出,需在设计上规避,某些期望不会并发发生降低了表现力, 圆桌理论优先级高的元素会将优先级低的元素挤出圆桌,造成永远无法出现,好处是价值守恒。
<ignore_js_op>
多次掷骰
多次单线:后人在圆桌理论的基础上提出了多次随机单线处理的方案。 但是这个理论也会有一个致命缺陷,就是低优先级属性会受到高级属性的影响被迫缩水价值。
<ignore_js_op>
多次多线:后来的大部分游戏为了增加表现力,造成同场战斗多收益,多预期,提出了多次随机效果并发的理论。 但是这样的设计会出现高投入下,角色单次战斗触发多种状态,即躲闪又暴击,既反击又连击。
综述:不同的游戏种类会选择不同的算法,没有优劣之分,只有用法巧妙。动作互斥就适合圆桌理论,浮空,僵直,击飞,击倒只能触发一种;回合制游戏就适合多次多线判断,假定一回合内大R玩家可以,先躲闪再反击同时触发了连击还暴击了。
公式梳理
公式梳理是给每个游戏细节部分的公式进行梳理,不同功能,用途会产生不同的公式。
战斗公式:战斗相关的公式,往往是用来计算单次攻击结算。
Dam最终结算 = Dam攻防结算 + Dam暴击伤害 + Dam附加伤害 + Dam元素。
计算方法有两种:一种是允许附加伤害为负值减少攻防伤害,一种是单项伤害至多为0,不可减少攻防伤害。
<ignore_js_op>
防一刀毙命:如果被攻击对方为角色时,当角色的当前HP大于60%会触发一刀毙命公式。
<ignore_js_op>