查看原文
其他

干货:游戏属性数值设定过程分享

2018-03-06 黎健松 Gad-腾讯游戏开发者平台


一、属性类型设定


一个角色该有什么属性?属性应该有什么样的作用?要不要加点?加点属性的效果又怎样设定?


什么样的战斗体验就有什么样的属性——数值需求是建立在玩家体验上的,而不是凭空产生的。当你希望战斗发生在一个无视地形和地图大小的地方,你当然不需要为角色设定一个跟移动有关的属性。当你希望玩家的攻击能真实的反应其伤害能力时,你就不该做过多的防御属性。当你希望战斗过程要非常讲究操作技巧时,那么你就需要加入移动速度和技能CD。玩一款好的游戏,留意游戏内的属性给你带来了什么样的体验。


1.属性设定原则


在符合玩法体验的前提下,属性设定需满足三个原则:可理解,可见性,收益差异。


可理解:一个好的属性必然是符合常识的,玩家可以轻易的理解它的作用。


可见性:属性在战斗中发挥的作用能被玩家明确地感知到,他知道这个属性在起作用。



收益差异:不同的属性应该在战斗中发挥不同的作用,或者在不同的情景下存在收益差异。



按这些原则,或许你能创建出一些有趣的属性。


1.1 例子——《神界:原罪2》的法术护甲和物理护甲


客观来说,传统意义的防御不是一个好的属性,因为他不怎么可见,他削弱了攻击的效果,而玩家经常不知道防御是如何作用的。我知道他降低了伤害,但具体是怎样作用的呢?同样道理,控制抗性等抵抗类属性也是这样,对玩家来说,这些属性的效果都很不透明,经常让玩家感觉不到他在起作用,而往往一旦你把属性的效果数值提高到玩家可以感知到的地步,通常就会导致一系列不平衡的问题。我们看看《神界:原罪2》是怎么对防御属性进行再设计的。



《神界:原罪2》的物理护甲和法术护甲实质是血的一部分,法术伤害对法术护甲起作用,物理伤害对物理护甲起作用,从整个战斗过程来说,其效果实质和减法公式是一致的,即是从(Atk-Def)*T=Hp 到 Atk*T=Hp+(Def*T)的转变,Def*T即为防御在一个战斗过程的总效果,无非将其转化为Hp的一部分。这样做的好处是防御的效果更加可见,而且不会影响防御效果的外延(定义角色物法个性)。


另外,为了战斗多样化的目的,《神界:原罪2》的状态有多种转化和组合效果,这是特色。但如果不加限制,这些组合效果强度就不好控制了。如果要做控制,就要引入类似控制抗性等属性。但上面说到,控制抗性可见性很差。那么《神界:原罪2》怎么做的呢?他做了一个很精巧的设计:将状态效果分为物理类和法术类,物理类状态在物理护甲未削为0时,基本不命中,当削为0后,必然命中。


问题:《神界:原罪2》这种设计还会带来什么样的影响和好处?要做哪些配套设计?


1.2 例子——《暗黑3》的回血属性


暗黑3》的回血属性有几种,如击回,秒回,击杀回复,球回等等。为什么要弄这么多呢?因为暗黑3是一个很硬核的刷怪游戏,战斗基本就是游戏主体,暗黑3的核心是build,实质就是构建在不同情境下收益差异,不管是输出还是生存能力。因此在生存能力上,设计者就需要设计出几种不同的生存机制,而这些生存机制在不同的情景上收益是不一样的。


例如击回,适合于攻击频率非常高,堆攻速可以站撸的build。


秒回,适合攻击频率低,不能站撸的build。


击杀回复,适合片伤杀小怪,低层快速刷秘境的build。


球回,适合走位灵活,堆拾取半径的build(为了保证拾取半径这种半鸡肋属性有效性,暴雪做了很多)。


在属性设定上,如何做到各属性存在收益差异是个很考经验的事情,需要设计对战斗本身有非常深刻的认识,否则很容易会导致属性无效。


保证多种属性同时有效又有收益差异是件很困难的事,所以别轻易加属性类型。


2. 加点属性的设定


一般除了一些基础的战斗属性,我们还会做一些加点属性,例如力敏智体这类。大家在各种游戏中都碰到这类型属性,那么,这类型的属性是为什么存在的呢?它们无非就是一些属性组合的封装,但从对战斗的属性作用上来看,貌似多余(很多游戏会为加点属性设定一些特别的规则让他们有效起来)。


事实上,加点属性的提出,源于以下几个需求:

1)想要让玩家有一定的自由度,但又怕失控。

2)发展方向需要概念和个性封装。

3)降低加点门槛,直接让玩家对战斗属性进行加点,门槛太高。


因此,当我们要做加点属性的属性关联时,就要先要明确我们的角色有什么样的较优的发展方向和个性,并根据性质拆分好加点属性的有效性范围,保证他们都有效。


2.1 RO的加点属性设定


RO是一款很经典的加点游戏,里面各种职业都有多样化的加点方式。他是怎么做到的呢?我们先来分析下他的属性效果。



我们看到,除了体质这个纯生存向属性外,其他属性都是和输出能力有关,其输出能力的作用机制是不一样的,且全职业通用(由于技能的原因,各个职业收益是不一样的。例如盗贼偏向攻速,法师偏向魔法攻击和技能冷却,这其实就大体定义了各个职业的加点方向)。而敏捷,智力,灵巧等也带了一定的辅助生存向属性(回避,法防,冷却)这就定义了以这种加点为主的build必然会有不同的生存方式,而这些生存方式也必然会有缺陷,因此玩家在加点时,为了应对多样的情况,就需要进行加点权衡。


以技能带动主力加点,通过主力加点形成特色和build,然后为每个build留缺陷。


记住build的核心是各种环境下的收益差异,不要做完美的build。


二、属性价值模型


属性价值模型是整个战斗平衡的基础,应该怎么一步步去建立这个模型呢?


1. 确定核心体验


确定核心体验是建立属性价值模型的第一步,但是,究竟什么样的体验才是核心体验呢?是单纯的标准战斗时长吗?是的,这个很重要,但不是全部,要做好战斗,核心体验必须要细化,不同的游戏类型会有不同体验要求,设计者不但要对此有概念,而且要有经验,因为你需要知道玩家会重视什么,而且这种体验要怎么样才算好,这要求设计者对战斗有更深层的认识。


例如: Q5项目英雄要放技能,那么怎么样放技能体验才算好呢?


在炉石,我一个N费随从,比N-1费能优胜多少?


在Q1,总体战斗时长是核心节奏,但玩家其实更关心的还有自身职业的情况,例如我作为输出职业,我关注的是输出能力,那么我能多少回合锤死敌人? 这些与角色属性成长相关的体验,都是需要在一开始定义出来的。


所以体验游戏是很重要的,就算你知道怎么做,但你可能没有相关体验。


2. 战斗时间——伤害与生存能力的桥梁


在角色能力中,伤害能力(Dps)和生存能力(cHp,这里值有效生命,而不是单纯生命属性)是两个完全不同的能力,他们严格来说是无法等价的。但由于我们对战斗的时间有特殊的需求,因此,可以通过时间将两种能力建立一个恒等关系:


cHp=Dps*T


这条公式的恒等逻辑显然易见。而属性的存在,最终都会转化为cHp和Dps的变化值,即 ∆cHp和∆Dps,而在恒等式里,不管是cHp变化或者Dps变化,最后都会引发T的变化,即 cHp+∆Hp=Dps*(T+∆T) cHp=(Dps+∆Dps)*(T-∆T)


为了保证我们战斗时间的恒定,我们会认为,对于造成相同的∆T变化的∆Hp与∆Dps,是等价的,他们的追求成本应该是一致。也就是说,导致相同的∆Hp的属性变化,是等价的,导致相同的∆Dps的属性变化,也是等价的。这就是属性价值模型的基础。


归根结底,属性成长的出现更多是内容消费的需求,不是游戏本质的需求。属性在不停成长,但我们要保证游戏体验不变,所以才会有这个恒等式。


3. 公式体系的选择——属性效用的定义和连接器


属性的效用是建立于公式体系上,没有公式,属性价值无从说起。公式体系定义了各种属性的效用,也是通过公式体系,将所有的属性链接起来。公式体系包括伤害公式和一连串的配套公式,核心是伤害公式。在一般的RPG游戏设计中,流行着两种伤害公式形式:减法公式和乘法公式。要理解一点的是,公式是一种实现设计需求的工具,形式固然可以变化,但减法公式和乘法公式经过多年的验证和沉淀,有着其非常丰富的内涵。我们需要深刻理解两种伤害公式的特性和其适用范围,在理解的前提,再根据自身项目特点进行再修改。



减法公式特性:理解门槛低,可见性强,数字量级越小边界效应越强,外挂系数麻烦,有不破防问题,较强烈的属性获得感。


适用情景:小数值量级,回合制(离散过程),注重htk的战斗,较固化的攻防投放。


乘法公式特性:理解门槛较高,可见性差,没有边际效应,攻防效用稳定,外挂系数方便,无不破防问题。 属性获得感较弱。


适用情景:全数值量级,即时制(连续过程),注重战斗时间的战斗,较灵活的属性投放,强调属性累积。


根据项目的具体情况选择合适的公式体系,根据具体需求对公式进行调整。


4. 减法公式下,属性的效用计算


根据我们前面所说,当确定了战斗时间T和战斗公式后,我们就可以根据恒等式cHp=Dps*T来确定具体属性的效用。


例如在减法公式里可以看到,1点Hp和1/T点Def的效用时绝对等价的,可以合并为cHp,最后还原为cHp=Atk*T,1点Atk对T的影响为:



所以,正常来说,1点Hp的效用与1/T点Def等价,1点Atk的效用与T点cHp等价,貌似没啥问题,但当你外挂一个系数时,麻烦来了,任何一个系数都会跟着Def,不管这个系数是不是防御属性。例如如果有技能系数s,那么就会有自身的有效血量会被一个敌人的攻击属性挂钩,意味着敌方的攻击越强,你的有效生命会越高。这是很麻烦的事情,意味着你很难去量化Def的效用。


解决方案:


a.固化属性投放。让Def=aAtk,那么公式将会成为Hp=(1-a)Atk*T*r,在连乘的公式下,cHp和Dps都非常好定义。


b.将公式改为Hp=((Atk+a1+a2)*a3*a4-(Def+d1+d2)*d3*d4)*T,但这个公式从体验层面是不行的,比较违背常规认知,而且这样做了公式的可见性明显就差了。但如果游戏没有命中闪避,只有暴击,还真有游戏这么做。有些游戏暴击或使用技能可以破防,就是用的这类型的公式。


c.用乘法公式


5. 乘法公式下,属性的效用计算


在减法公式的一些缺陷下,乘法公式是如何做的呢?为什么会出现A/(A+k)这种公式类型?



可以看到,1点Hp和1/a点Def的效用时绝对等价的,可以合并为cHp,最后还原为cHp=Atk*T,1点Atk对T的影响为:



所以,在乘法公式下,1点Hp的效用与1/a点Def等价,1点Atk的效用与T点Hp等价。而且乘法公式本身就是连乘结构,理论上每个属性都互相独立,cHp和Dps都很好定义。由于A/(A+1)的结构,cHp最后都会最后都会转化成Hp+a*Def+b*Dodge+c*Parry(想想魔兽为何有圆桌机制的说法)。


对于其他属性,也可以先假定其他属性和∆T不变的情况下,求得其效用(注意,属性效用,价值和属性投放权重都不是一个东西,虽然他们有关系)。


6. A/(A+K)形式的特点


a.由于K是成长的,根据A/(A+K)的形式,要保持在某个百分需要越来越多的A,这个对挖坑非常有利,也就是你可以投放越来越多的属性,却不用担心影响节奏。


b.有上限,A/(A+K)是无限趋近于某个值的。


c.K的计算可选择自身等级或对方等级,以实现不同的设计目的。


d.如果要实现生存能力的差异,需要设计几种投放曲线,例如魔兽分布甲皮甲锁甲板甲,装备的基础护甲不算入属性池,只是为了实现不同的生存能力差异。嗯,暗黑3设计师更省事一点,他们直接固化到角色特色上了,这样他们的装备护甲就不需要有多套数值了。


7. 战斗力——给玩家看的战斗力和实际战斗力


战斗力是我们耳熟能详的设定。但要说明一下,我们一般说的战斗力,实质是一个服务于玩家自评和攀比的系统,为了符合直觉,给玩家看的战斗力一般是累加型公式(其实就是一般就是属性量*属性权重之和了,这里的属性权重更多是考虑投放角度的),不管你什么属性涨了,战斗力都会涨,但从我们上面说的定义,战斗力应该是f(自身cHp/标准Dps*自身Dps)的形式,生存能力和输出能力是相乘关系,而不是相加关系。为什么是这样呢,我们不妨用一个极端情况去假设,假如战斗力是生存能力和输出的相加关系,那么0攻N血的角色是否拥有战斗力呢?很明显,是没有战斗力的,除非他带嘲讽或一些其他效果,如果他带嘲讽,那么实质是增加了队友的生存能力,可以用他为队友增加的战斗力去计算其真实战斗力。


在这里,我们不妨用炉石卡牌去说明一下。炉石白板随从有其身材标准,和很多人想的一样,3费标准的身材是攻+血=7,但事实上,不会总是这样,如果出现0/7身板的白板,他必然是个废卡,1/6和2/5基本上也挺废的,对于这些卡,大部分人的想法是必须配个嘲讽的贴片才能用。为什么呢?因为一张白板随从卡的强度,其实是看他在能放上场的时期能提供多少点伤害,也就说,1个3/4的,按在2,3费时期,随从的平均攻击大概是3.5攻,也就是一个4血的随从大几率能站2回合的,因此他大概率能提供6点伤害,反正会比4/3要好点,更加不用说1/6啊,2/5啊甚至6/1这种垃圾身材了。


三、属性规划和投放


建立了属性的价值模型,我们就可以做属性的规划和投放了。


1. 上下限属性投放法(或者叫最大模型法??)


根据cHP=Dps*T的恒等式,我们可以分别拉出cHP合Dps和等级Grade相关的曲线,如Dps=d(Grade),那么cHP=d(Grade)*T,然后根据已设定的属性效果和公式体系,从Dps和cHP分拆出去,就可以获得各属性关于等级的曲线,例如,一个游戏只有攻击,护甲,气血,技能系数,命中率,闪避率等几个属性,使用乘法公式,那就会有总伤害公式:



然后就有cHp=Hp+a*Def+b*dodge,通过核心节奏定义好生命,护甲,闪避的效果比例,即可获得Hp,Def,dodge的投放曲线。Dps那边也是同理,不管s或hit是全成长过程固化还是需要投放,根据需要分好比例去分解就可以了。hit也是可以通过A/(A+k)形式转化的,只不过k就要跟Atk相关而不是Hp了。  由于RPG一般都会涉及多样化的角色能力,相同属性的投放曲线不可能完全一样,我们就需要为一个每各属性的上限和下限分别拉投放曲线,并控制其极限情况下的T不会超出我们的预期。设定Tmax=cHpmax/Dpsmin,Tmin=cHpmin/Dpsmax,然后分别获得cHp和Dps的max,min曲线。或者有时候我们只关心Tmin,那么我们只需要拉cHpmin和Dpsmax就好,cHpmax,Dpsmin最后会根据属性价值和投放自由度反推就好。



2. 属性池投放法


属性池投放法是一种灵活的属性投放方式,他一般很少用于整体的属性投放,而是用在一些玩家可以自由选择属性的系统中。例如加点,装备宝石里的各种随机属性。该投放放法将一个系统投放的所有属性看成是一个池子,不管投放什么类型属性,不管各个属性投放多少,最后只要挤满这个池子就行了。因此属性投放法会引入以下几个参数:容量池大小S,属性权重Q,属性量A,属性范围n,根据前面的设定,有:



其中k是一个修正系数,它的作用是在一些无限制的属性池里,玩家过于追求单一属性导致该属性突破设定上限。一般来说,如果不是希望完全自动生成属性的系统,我们也只是用该公式规范投放是否平衡而已,我们可以定死属性量和属性范围,让系统投放既具备一定的自由度,也可控。这样的情况很常见,例如加点属性就是。前面说过怎么去关联加点属性和基础属性的关系,那么具体一点加点属性等于多少基础属性呢?用这条公式就可以解决。


最后说下属性权重Q,它一般就是属性效用,但是在设定权重的时候,要考虑属性的适用情景。例如防御这种属性,假如它的效用是10,攻击的效用也是10,但在玩家的心目中,攻击的价值会比防御高,为什么呢?因为攻击的适用情景范围要大于防御,很多时候PVE战斗,用不了多少防御,但攻击基本上是100%情景适用。这个时候,你就得考虑降低防御的权重,但降低权重的同时,你得控制好投放上限。  通过上下限投放法和属性池投放法,基本就可以应付大部分系统的投放需求了。


3. 属性规划——系统维度


在确定了角色的整体属性数值后,由于不会在一个单一系统投放所有的属性,我们要在系统维度对属性进行规划。不同系统的投放比例可以根据该系统的在游戏定位和有效性去设定。另外,不一定是所有属性在每个系统都一致,一方面要看系统需求,一方面要看属性定位。另外属性划分比例要留意阈值问题,特别是减法公式体系的项目。


一个属性分配例子


如果你不想让某个属性的最大和最小值差异太大,可以在某些固化途径中集中投放它(如装备基础属性),在一些自由度高的途径,如加点,宝石等减少它的投放。典型的例子就是防御,看看《魔兽》和暗黑3是如何处理防御的投放的。


4. 属性规划——用户维度


在网络游戏设计,我们需要将一部分属性拿出来卖给玩家。那么,假如我们拿了30%的属性(这个比例要看游戏定位)出来,该如何规划这些属性呢?应该从哪个系统拿出这属性,而这些属性又该卖多少钱?这些问题从来只有一个答案,就是来自于项目和市场本身的需求。数值同学需要理解这些需求,并根据需求划分属性。同样地,这个维度的属性规划也要注意阈值问题,特别是减法公式体系。



在游戏中,玩家花钱是自由意愿的,怎么能保证各种R就能追求到对应比例的属性呢?这就涉及到另外一个属性规划的问题了:性价比曲线的管理。


5. 性价比曲线管理


属性投放的性价比曲线实质就是属性价值和追求难度(可以理解为钱或者时间)的比值变化曲线,为了让玩家跳坑,所有属性追求难度一开始都是玩家可接受的程度,然后我们会把这个难度提高,对应就是性价比越低。那么从曲线本身设计的分析,我们就需要关注3点:起点,曲率变化,终点


为了强化玩家对属性价值的预期,我们会把所有系统的属性性价比曲线趋向一个定值,但在到达这个定值之前,该曲线是可灵活设定的。例如在某个等级新解锁了一个功能,为了让玩家能跳坑,得为它设定一个有吸引力的性价比。 另外,结合前面的总量规划,系统的属性投放就会形成不同的定位:如低总量高性价比(大众型消费),高总量高性价比(门槛较高的中R型消费)等等,曲线的曲率平坦或陡峭,也会影响该系统的属性投放个性。


全文完,谢谢大家捧场。


今日推荐

游戏消费系统结构浅析

十分钟了解大家都在谈的功能游戏

2月资料包下载丨策划/程序/美术/VR最全资料库下载

一键添加

加小编微信,享双重福利

1.加入GAD策划交流群,获取行业干货;

2.领取17G腾讯内部分享等独家策划资料。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存