暴雪式平衡的数学模型探究一Word格式.docx
- 文档编号:19633631
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:54
- 大小:77.84KB
暴雪式平衡的数学模型探究一Word格式.docx
《暴雪式平衡的数学模型探究一Word格式.docx》由会员分享,可在线阅读,更多相关《暴雪式平衡的数学模型探究一Word格式.docx(54页珍藏版)》请在冰豆网上搜索。
SC:
《星际争霸》暴雪公司产品,即时战略类游戏
WOW:
《魔兽世界》暴雪公司产品,暴雪公司的第一款网络游戏,目前由9城公司代理大陆运营
效用评估:
对特定的待评估单位(作战单位或技能等)在战斗中发挥作用大小的估算,根据最终的估算值来做平衡性调整
NPC:
非玩家控制单位,在本文中专指与玩家战斗的电脑控制单位,
副本:
哪款游戏先创造的概念鄙人实在是不知道,只知道欧美的游戏中已经很早的对这一概念进行广泛的应用了,即某一冒险区域为每一个玩家冒险小队开辟一个外观一模一样的场景,这样使得服务器中所有在该冒险区域中冒险的玩家队伍互不干扰,在各自的空间内进行游戏,而WOW使得这一概念在中国深入人心。
仇恨:
同样不知道出自哪一位设计师之手,而《EVERQUEST》是公认对这一概念应用比较成功的范例,在仇恨系统中,每一个NPC都会将满足特定条件(对自己造成伤害,特定技能,为已对自己造成仇恨的玩家治疗,进入警戒范围等等)的玩家放入自己的仇恨列表中,玩家的各种行为均会影响各自在NPC仇恨列表中的值,该表将做实时排序,NPC将根据该列表的排序进行对应的已设计好的行为
游戏战斗模型之中,各种战斗公式的设计完全依照设计者的需求所致。
这些战斗公式错中复杂,而且关联性十分紧密,因此我们在设计战斗模型时,必须先从宏观上来考虑战斗的整体流程。
数学公式的原理来自于设计师的概念,攻防公式也是如此。
大多数游戏设计者,特别是游戏数据模型的游戏策划者通常会对攻防公式这一块有许多的疑问,本文旨在探讨这些疑问,并且尽力来解决这些疑问。
从PC上的大部分RPG游戏来看,攻防公式的基本模型可以定义为以下几种,这几种按照地域来划分,可以分为日式公式和欧式公式,且不管他们怎么来叫,我们先看看这些公式模型是什么样的。
各类功防公式分析
减法攻防公式(日式):
一次攻击结算伤害=攻击者输出伤害-防守者防御总值
减法攻防公式是国内游戏设计者十分喜爱的一种攻防模型,因为这种模型看起来直观且简单,同时也十分便于计算。
而且对于以免费游戏作为大环境的中国游戏市场,这种公式设计有利于玩家对防御值的不限追求(玩家的不限追求,就是我们的不限收入)。
因为在游戏之中,当伤害在提高时,防御值必然也会跟着提高,而且,防御值的提升在游戏的战斗之中卓有成效。
不过缺憾之处也十分明显,由于不同伤害对应相同防御值的一次攻击结算伤害会有所不同,导致数值平衡设计之中无法使用DPS来设定攻速不同武器的伤害值。
因此,使用这类功放公式,想要给武器设定上增加攻击速度属性,是相当需要三思的问题。
乘法攻防公式(欧式):
一次攻击结算伤害=攻击者输出伤害*(1-防御值物免率)
防御值物免率换算方法1:
防御值物免率=1-1/(1+防守者防御总值/10)
防御值首先被转换未了防御值物免率,而需要达到的设计需求就是以上曲线所示——为了提高玩家对防御值数值上的提升需求,使得整体防御值越大时之后再增加防御值所转换得到的物免率逐渐衰减。
这种攻防公式在很多欧美游戏之中都可以看得到,例如最著名的3DMMORPG《魔兽世界》用的就是这种基本模型。
运用此种攻防公式,会对数值平衡计算的难度要求并不高,而且可以很方便的作各种攻击速度不同的武器装备,不用考虑到减法攻防公式的弊端。
但是,欧式攻防公式也有不好的地方,就是会导致后期玩家对防御值的提升需求会有所受限。
毕竟,(1-1/(1+防守者防御总值/10))最多只能<
=25%,而25%~100%的提升空间,足够么?
往往这类攻防模型为基础的游戏,游戏后期,玩家对防御的追求容易止步不前,而伤害的追求则一如既往的在提升。
这本身就是玩家对于属性追求上的不平衡。
防御值物免率换算方法2:
防御值物免率=防守者防御总值^0.3/100
这一种和第一种所需要的效果完全不同,这种曲线相对前者更接近于直线,不过初期的物免率提升还是相比于中后期更为明显。
但是即便使用这种方法,依旧无法逃避提升空间有限的弊端。
除法攻防公式:
一次攻击结算伤害=攻击者输出伤害/防守者防御总值*10
这种攻防公式无法从常理上去理解,至少本人无法理解为什么会有这样的攻防公式。
对此的研究十分少,根据公式来看,这样的设计似乎有突出伤害的重要性,但是却又未突出伤害的重要性。
从玩家对伤害的追求来看,确实伤害的追求十分重要,不然杀伤力就会十分衰弱,但是从实际的效果来看,很可能则是相反的效果。
总得来说,也要看数值设定的方法了,个人认为,这种除法攻防公式不是很好把握。
以上四种公式是目前我收集到的比较可行的攻防公式。
目前几乎70%~80%的RPG会使用如上的算法,虽然并不完全相同,但是都是以这几种公式作为基本模型来进化得到的。
这里所说的:
防御总值:
防御总值的解释是游戏中出现最多的防御值,不管他叫护甲也好叫别的什么也好,这里所说的防御总值就是所有RPG游戏中最常见的那个“防御值”。
输出伤害:
输出伤害这里的意思则是比较常见的物理伤害,即普通砍击时的伤害作为参照对象。
攻防公式的应用
以上所列的攻防公式的基本模型在实际制作运用上,会有各种变化,首先是会添加各种修正值以及修正系数,这些不用多说,完全按按照数值平衡的设计需要来看。
而其他的变化还表现在增加参数值的方法上。
例如加入攻防两方的等级参数进入作为修正值或是修正系数也是十分常见,例如《魔兽世界》(如下)。
WOW的护甲是以伤害减免的原理体现出来的,护甲越高所能抵消的伤害就越高,具体的公式为:
DR=AC/(AC+85*LV+400)
(DR:
伤害减免,AC:
护甲,HP:
生命值,LV:
等级)
该公式原型基本为DR=AC/(AC+400),和1-1/(1+防守者防御总值/400)概念相同。
这个公式插入LV参数(该LV参数取自攻击者)之后,使得玩家对防御值的追求随着敌人等级的提高而增大。
而对于减法攻防公式来说,更多所害怕的是攻击者输出伤害<
防守者防御总值的情况出现。
通常这种情况,我们都是采用取最低伤害的方法,很多游戏在这种情况,会算得一次攻击结算伤害=1。
而我更建议一次攻击结算伤害=攻击者输出伤害*5%,同时不得小于1。
这样做,不至于导致伤害很高的玩家,最后打出的伤害却只有1的情况出现。
除此之外,我们对攻防公式略作修改,还可以得到其他可作为玩家追求的属性,例如穿刺伤害(无视防御的伤害):
一次攻击结算伤害=攻击者输出伤害*(1-防御值物免率)+攻击者穿刺伤害
而其他的改变也是十分有趣,例如有一些游戏会有攻击力这个属性:
一次攻击结算伤害=攻击者输出伤害*(1-防御值物免率)*攻击者攻击力
例如我们来看看赤壁的攻防公式(非完整版):
对你造成的伤害=(对方的攻击-你的防御)*对方的攻击强度*(100-你的直接抗性)/100-对方的附加伤害
攻击强度是一个对最后结算伤害起到系数作用的属性,而这里,将抗性也加入了计算(实际上对抗性的计算也是攻防的一部分),对方的附加伤害则是无视各种防御力的修正值,具体用途不明。
截此为止,由于时间和精力的关系,关于攻防公式的设计思路暂时讲到这里。
数值策划概念:
如果说系统策划,是一种规则,是一种理性的思考,那么数值就是数理象三者中数的表现,数本身是一种固定的东西,是一些东西存在的价值的依托,数是一种确定性。
或者说具有固化概念的名词,而数值在游戏世界里,组成了所有物体的价值。
数值策划,即是为所有游戏物体符上一种实际价值意义,同时,也让所有物体产生了联系。
角色,装备,武器,怪物,宠物等等的表现力,都可以通过数值来具体化,真实化。
而数值策划的任务就是通过数据,把那些需要产生联系的物体进行联系,让每个数值的设计都在游戏中产生意义。
数是宇宙的质料和形式。
它使得自然趋于理性化,使精确的法则和规律的描述成为可能,它来自探索与思考,却走向未知与无解。
数值公式的推理:
公式:
公式是为了让数值之间产生联系而衍生出来的一种关系式。
公式的好处在于,能够用函数曲线直观的表现出来,方便理解,对比和调整。
一些基础固定的数据,比如等级,升级时间,是我们设计的基础或者说是标准界线,通过这些标准能限制我们的数值,把握有限的必然。
然后,当然要确定一些基础的单位属性:
比如力量,敏捷,攻击力,攻速,抗性,等等。
凡是以后游戏里可能要用到的单位属性都列出来,一定要全,然后进行分类整理,联系,看哪些属性之间有内在联系,或者说是同等级别出现的,这些属于基础的数值量。
装备系列:
主角身上都会有什么装备,头盔,头发,耳环,胸甲,护手……看游戏设计而定。
确定角色的基本属性:
力量,敏捷,体力,智力,精神,等等,当然这些都是从现实中抽象出来的概念。
这些都是和主角能力有最直接关系的变量。
然后,这些变量,所影响主角的能力,HP,MP,防御,闪避,命中,攻击等等。
哪些属性决定哪些能力。
这个大家可以参看现在很多游戏的设计。
比如现在一般的攻击公式都是受力量,等级,装备三者影响的,等级可以确定,力量可以确定,装备有一个限制范围,这样就可以大概导出一个公式。
至少怎么调整,怎么设定,要看游戏本身的设计思路而定。
确定是设置什么数值,装备的,武器,技能,人物,属性,怪物,宠物还是?
然后确定已知条件,比如规定要多少等级,多少时间,这些已知条件是一个经验公式形成的前提,然后用这些已知条件去推导出公式,确定一些基本常量,然后再根据游戏本身特点,调整一些修正值和参数。
或者先在脑子里思考应该设计或采用什么样的规律,然后再选择合适的公式或曲线来表达这种规律,也就是拟合,最后再用一定的采样率把数据点列出来。
有了公式以后,根据公式划出函数图,观察修正一下,直到觉得符合为止,就可以做表格填表了,再用公式进行反计算,把一些没有的数值补起来。
形成一个完整的数值体。
当然,这只是最基础的数值属性。
武器和装备:
武器:
决定武器价值的一些变量或者说一些赋值是什么?
这就要看各个游戏的数值设计怎么联系了。
比如武器有:
攻击力范围,属性追加,命中,攻速,技能追加,五行属性等等。
武器的这些属性是彼此独立计算的,攻击力范围受力量,等级等影响,所以设计武器攻击力,就为这个攻击力进行单独的数值公式配备,基本量,数值区间,修正参数等。
构成了攻击力的属性。
其它的类似。
武器还有强化,品质区分。
这样,就要对武器进行区间划分和属性分类了。
强化:
假如一把武器能强化到7级,那么,就需要设计这个等级的武器七级区间,每强化一级,会产生什么变化,在什么区间内。
品质:
品质的划分:
相对来说比较容易,普通的,优秀的,卓越的,完美的。
每个之间会有一个界线,一些属性的变化。
或者一些属性的区别。
注意:
每个级别的成长空间,能有效设计好,不与上下两个级别产生过多矛盾或者冲突。
这是一个需要去细细设计的地方。
同类的内部调整,内部变化区分。
装备类似;
为了简化的属性设计:
为了简化的属性设计,同时为了整体调整方便:
一般同级别或者同类型的,用低一级修正参数,或者变量来进行区分,来产生差别。
比如同样是1级武器,
武器有共同的计算公式,
武器+1有共同的计算公式,但是强化后,等级在这个区间变为一级,这个1就是变量,同时为了更好的区分强化武器之间的差异,修正参数可能也会做一些调整。
就是说,只做参数的调整,不做公式的调整。
同级别的只用变量和修正参数做调整。
引起属性变化的基本量:
基本属性值(游戏五弟兄:
力量,体力,敏捷,精神,智力);
等级;
引起数值最终变化的:
变量,参数,修正值。
常量一般只是为了区分,拉开数值界线。
属性的区分:
一般来说,攻击量独立个体。
防御量独立。
就好像两个对手一样,我打你,我比较强了,那就调整我的属性或者你的属性。
独立调整,进行对比。
而同类之间出现问题,一般就是在同类之间内部进行调整,比如,今天法师太强了,那就把其它职业也整强点,或者把法师削弱点,或者调整对立的伤害值,输出时间等。
或者给其它职业弄个好技能,新装备。
怪物数值:
怪物分为技能属性和能力属性,这个很好设定,因为是独立的,一般是不发生变化的。
我们只要给它们合理的设置一下,保证等级之间存在差异。
宠物数值:
宠物的设计基本和人物的属性设定类似。
看属性需求。
如果与别的数值要产生联系,就需要考虑数值范围,或者属性的范围。
数学基础:
学好数值,要用到的数学知识基本有:
函数与图象-概括总结描述现象,用于观察,经验公式,成长曲线等。
概率-游戏暴率,暴击等。
排列组合-用于公式的推导。
正态分布:
随机,筛子。
应用如:
1d8,1d20;
工具:
EXCEL表格,函数。
(数值利器);
数值的进阶:
新手一般都是用公式的,因为这样至少不会出错。
用公式的话可以方便整体修改。
出了问题也更容易有据可寻。
至于到达一定境界的高手,数字就是可以自己随意填上去。
因为他们已经掌握了某种规律,可以达到随性所至,浑然天成的地步,就像下围棋一般,看似虚无玄机,实则妙不可言,旁征博引,叹为天人啊!
曲线什么的,只是一种规律,方便我们进行观查和对比。
因为数值并不是单一存在的,特别是网络游戏里,各种数值之间的联系很复杂,很容易出现牵一发而动全身。
所以要区分,要联系,要简约。
暴雪式平衡的数学模型探究
(二)
暴雪系列的产品,均以平衡性而著称
……
论题2与速度相关的值是非常麻烦的,公式估算+量化测试可能是唯一的办法
在即时类游戏中,移动速度,对其他方面的影响包括:
?
近战部队在对抗远程部队时的优势
远程部队在对抗近战部队时的优势
任一部队的生存能力
由于阻挡而产生的操作技巧
在以上几点中,除了最后一点(等下说这个),前面3点都是可以做以模糊的估算的,再配以合适的测试应该就可以达到想要的最终确定值。
小可不才,猜测其方法如下:
1.结合移动速度、起手速度、攻击间隔、攻击距离及转身速度做简单的一对一估算
2.设计一个平均移动速度,任何单位的移动速度均以此作为参照进行评估设计
3.其他参数也均指定一个平均值做参照值
4.测试,首先验证自己的估算公式,调整之后重新估算,再测试,反复。
关于起手速度,攻击间隔,依照我的个人经验,怀疑在魔兽争霸中,完全是一个值,也就是说,在一个攻击动作完成的周期内,攻击效果的产生是位于最后的时刻的(这一点不同于KOF这种格斗游戏的设计——硬直)。
很多人大概会说:
这属于废话。
而我之所以把这点特意说明一下,是因为在这一点上容易产生分歧的,下面来做几个实验:
实验1:
动作1:
WAR3中操作一个不死侍僧召唤一个建筑物,在侍僧建造之前,按住SHIFT右键点其他位置,指定序列动作。
动作2:
操作同样一个侍僧在同样地点建造同样的建筑物,在侍僧召唤出建筑的同时右键点击其他位置命令移动。
以上两个动作的差异,相信熟悉WAR3的朋友一定会知道,会产生很短的一个时间差异,同样道理,在使用远程兵种进行普通攻击的时候,也会如此:
操作先知攻击一个一直向后直线逃跑的单位。
(去掉迷雾以避免不必要的麻烦)
操作先知攻击一个一直向后直线逃跑的单位,并在先知的电球出手瞬间立刻右键点击前方地面,再次操作攻击该单位,反复这两步操作。
实验之后会发现,同样会产生时间差,其他类似的实验(不举例了……),而从这两个实验,我们很可能会得到这样一张时间图:
(带颜色部分表示一个动作的完整阶段)
(其中攻击动作收尾期中,玩家的实时的移动操作可以强行CANCEL该阶段。
)
那么这样一来,我们不就得到了一个硬直存在的结论了么?
而实际上,在这两个试验中,有两点值得思考:
1、第一个实验中,有可能两个原因导致该现象:
A)SHIFT的动作序列,很可能会遇到特殊处理,个人猜测,WAR3在处理这里的时候,会在每一个SHIFT动作序列之间插入一个固定的动作停顿(这个猜测还需要实验去验证)。
B)侍僧的建筑物召唤动作很可能与一般的攻击行为是两种处理方式
PS:
以上两点中,我个人比较倾向于第二种解释
2、第二个实验中,时间差的产生,完全是因为动作1中在攻击效果发生的瞬间目标超出攻击范围的原因,而导致攻击动作被强行CANCEL
好吧,结束这段无聊的反证吧,现在回到主线上来,
“结合移动速度、起手速度、攻击间隔、攻击距离及转身速度做简单的一对一估算”
这句话恐怕是我们处理这个问题的最关键部分,用公式是否可以解决这个问题呢?
现在来尝试一下吧:
首先罗列待参考因素:
移动速度、起手速度、攻击间隔、攻击距离、转身速度、伤害力、生命、命中率、攻击延迟(远程箭矢飞行时间)。
排除无效因素:
命中率=100%
为避免公式过于复杂,转身速度暂时设定为0,攻击延迟暂定为0,这两个因素仅当我们在之后的研究中发现不得不加入的时候,才予以考虑。
(这类情况诸如:
远程兵种在移动速度大于等于近战兵种时,可以处于不败之地——包括但并不限于)
伤害力和生命对估算单位的影响以比例的方式来做,结合我们之前做的“两单位不做移动的情况下一对一的效用评估”来做对该效用的百分比影响做比较(见第一篇)
附注:
静止情况下:
单位战斗效用=(该单位生命值/平均伤害)/(平均生命值/该单位伤害)
单位成本=Φ(生产费用,生产时间,科技等级)
单位效用=Δ(单位战斗效用,单位成本)
这里,我们暂且将(生命/伤害)定义为耐久(单位在死亡前可承受伤害的次数)
起手速度和攻击间隔,暂时认定之前实验相关的陈述是事实,那么我们将这两个因素合并,统一为攻击间隔
剩下的因素:
移动速度、攻击间隔、攻击距离
为所有需要考虑的因素各自设定一个平均值,把这个平均值当作所有其他单位的平均值,以此做参照:
耐久、移动速度,攻击间隔,攻击距离。
这里,我们将上述公式的后两步省略,只考虑战斗效用,而暂时不考虑成本,而现在我们也正是要研究各种速度参数对于战斗效用的影响,OK,先把公式摆出来:
然后我们就考虑一下移动速度在以什么样的方式影响着战斗的平均效用
首先是双方遭遇的时候,近战单位的移动速度决定了在攻击对方之前的生命损失
以平均数值做假想敌
那么这个生命损失=(平均攻击距离/该单位移动速度)/平均攻击间隔*平均伤害力
→生命损失/平均伤害力=(平均攻击距离/该单位移动速度)/平均攻击间隔
这部分损失应该与之前公式中的分子相加:
单位战斗效用=((该单位生命值/平均伤害)+(平均攻击距离/该单位移动速度)/平均攻击间隔)/(平均生命值/该单位伤害)
这样,依照这个公式,就可以得到一个近战单位的移动速度对该单位战斗效用的影响,当然,这并不完整,因为这里并没有考虑到H&
R④的因素,实际上两单位的移动速度差也应该被考虑在内的,再深入思考下去,转身速度,攻击的起手速度都是需要考虑的因素了,通过反复的这样一个过程,我们就可以得到一个即时战斗类型中两单位的效用评估公式,而公式的复杂程度,我们也足够把这样的一个数学结构称之为数学模型了。
我们同样可以得到同样方法也可以做出其他类型单位,或者其他参数对于战斗的影响实际上,根据这样的公式,得到的效用值仅仅是个参考值,值本身=1或=100没有任何意义,而只是多个单位用同样的公式得到效用值之后互相比较才会使效用值变得有效。
在经过长时间的努力之后,我们得到了我们需要的公式,但是不要沾沾自喜,因为做了这些仅仅是个开始,因为之后我们还需要大量的测试,反复的验证,验证我们的公式。
这也同样证明了一个问题,就是我不会保证我上面陈述的公式细节会是正确的,当然,我也不会将我的最终结论拿出来公布,因为这没有意义,我们更多的是需要一种思维方式的交流,而并非结果,更何况最终的公式,也会由于种种原因而在其他的环境下变得不适用,每一个新的项目,恐怕我们不得不重新做这样的工作,重新做这种枯燥的“测试←→调整”,再这个过程之中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 暴雪 平衡 数学模型 探究