一种简明的MOBA游戏数值设计方法
介绍一种简单的LOL-like系列的英雄属性数值的设计方法。
这种设计方法的目的是为了方便建立基于统计的数据观测系统来验证数值结果,将操作相关的参数归纳成命中率和命中人数两个简单的统计值,在设计的时候可以提前给出期望值,根据后续的统计结果调整参数使统计值逼近期望值,以尽可能多地将变量都纳入可解或可统计的范畴,规避基于主观的英雄强度调整。
下面是基本设计方法:
首先要认识到的是,数值平衡必须建立在给定的条件之下。这些条件来源于游戏设计者的主观需要和客观环境的限制。一个最简单的模型是英雄只有DPS和HP两个属性。考虑两个英雄交战的情景,欲达到平衡,则有
其中T为双方交战时间,根据游戏设计者的需要而定。由<1>式可得:
其中C为常数。
i=0时, 表示普通攻击状态下的DPS。
i>0时:
其中FD为固定伤害,aad为技能的AD加成,aap为技能的AP加成,n为技能击中单位数量的期望值,为技能覆盖人数,为技能命中概率;f和g分别为在战斗时间内技能施放出的次数和概率,f*g为平均每次战斗技能释放出的次数;BT为平均战斗时长,BI为平均战斗间隔。
由HD=C我们推导出无穷多组H和D,拥有这些各种各样的(H,D)的英雄相互之间的战斗过程也一定是平衡的。现在考察具有相同属性的两个英雄之间的战斗,显然H越大,战斗时间越长;D越大,战斗时间越小。在实际游戏中,我们不希望看到过长的战斗时间或者过短的战斗时间。因此,可以给出限制条件:
Tmin < T < Tmax
故有
在得到了H和D的上下限之后,便可以进行H和D之间的分配,不同的分配造就了不同的英雄类型。当H偏大时D偏小时,英雄类型为坦克;当H偏小D偏大时,英雄类型为ADC,法师,或者刺客。三者的区别为ADC把DPS更多地分配给了技能中的AD加成,而且这些加成主要通过普攻输出;APC则把DPS更多地分配在了AP加成上;刺客可能是物理输出也可能是法术输出,其特点是技能CD较长,因此爆发较高。当H和D都处于中等水平时,英雄类型就变成了战士。
中庸模型:
在中庸模型中,英雄的各项属性比较均衡。平庸模型在真正的游戏中甚至可能是不存在的,但是在经过无限多的战斗之后,玩家遭遇到的对手平均属性会无限趋近于平庸模型。
中庸模型的确定步骤:
1.取一个中庸的战斗时寸间T,从而确定DPS和EHP
2.确定EHP。
当英雄等级为0时,考虑到护甲和魔抗的成长空间,可以将减免系数定为10%左右。故Ar=MR=10。
当英雄等级为n时,考虑到装备的成长空间,将减免系数定为50%左右。故取Ar=MR=100。
HPR取决于英雄从空血自然回复到满血所需的时间。0级日时可以稍短,n级时可以稍长。
确定了Ar,MR和HPR,也就确定了HP。
3.确定DPS。
基本原则为:
包括普攻在内的所有技能贡献的DPS相等。固定伤害与加成伤害也相等。
由此可以确定DPSi=DPS/N,N为技能总数。
AS考虑到动作的表现能力,1秒钟不能超过三次,在0级时可以定为0.5,n级时可以定为1.5。
由AD=DPS0/AS,可以确定AD值。AP=AD。
BUFF价值:
BUFF主要包括眩晕,缴械,定身,眩晕,加速,减速,嘲讽等,下面分别来介绍其价值的计算规则:
沉默:如果一个技能的沉默时长等于该技能的CD,那么沉默的价值即为中庸模型对应等级的DPS。
缴械:如果一个技能的缴械时长等于该技能的CD,那么缴械的价值即为中庸模型对应等级的普攻DPS。
加/减速:速度的变化导致的影响较多,我们主要考虑了对命中率的影响,拟合出了一个经验公式。假设子弹的半径为r,速度为v,目标的半径为R,速度为V,技能施放者和目标之间的距离为1。假设发射角满足正态分布,则命中的概率为,其中θ为子弹出射角度,σ为标准差。,。分别将子弹的标准移速和不同的目标移速带入公式即可得到命中率,通过拟合发现近似成线性,故最终拟合为一线性公式。
定身:定身时长为技能cD的价值即为减速到0的价值。
眩晕:眩晕的价值=沉默的价值+缴械的价值+定身的价值。
嘲讽:嘲讽的价值=沉默的价值+定身的价值。
加/减攻击力:当加减攻击力的时寸长为技能CD时,每增加/减少一点攻击力的价值为1/AD*DPS*(1-FD/DPS)。其中AD为对应等级的中庸模型AD,FD为对应等级的中庸模型的固定伤害。
加/减护甲:持续时日间的整个技能CD的1点护甲变动,其价值为,其中PV为战斗力,EHP为相应等级下的真实生命值。魔抗同理。
其他模型确定:
在确定了中庸模型之后,再确定其他不同类型的模型。可以先取T的上限和下限值,可以得到两个基本的(D,H)类型。在考虑EHP时,可以选择将权重偏重于Ar,MR或者均分。在考虑DPS的时候,可以选择将权重分配在FD或者加成值,或者均分。偏重加成值的时候可以选择偏重AD或者AP。这样可以得到一系列的模板。确定模板的过程与中庸模型的过程类似。
具体设计步骤:
1.给出0级和15级战斗力C,战斗期望时间。由此得到0级和15级的EDPS和EHP。
2.通过攻速,护甲减免系数,魔抗减免系数,恢复到满血时间等参数计算出0级和15级的护甲,魔抗和回血速度等参数。
3.根据需要确定适合的普攻,加成,固定伤害占DPS的比例。并计算得到相应的AD,AP,加成值等参数。
4.根据需要的战斗力成长配置计算出各属性每级的数值。
5.代入具体的英雄技能,根据需要给出技能CD,并估算命中人数,命中率等数值,以计算出具体数值。其中BUFF价值从固定伤害中扣除。
属性定价:
在确定了中庸模型之后,就可以利用平庸模型进行属性的定价,也就是moba游戏中装备的价格。装备的绝对价格取决于游戏设计者对于游戏时长的预期。装备的相对价格反映了不同属性之间的相对价值。应该予以指出的是,装备的价值取决于具体的英雄属性。对于拥有不同属性的英雄,同样的装备对他们的属性价值增益是不同的。假想一个血量很低护甲很高的英雄和一个血量很高护甲很低的英雄,一个增加护甲的装备对于他们的价值显然是不同的。
因此,在计算属性价格的时候,必须要以一种属性模板作为计算的依据。对于该模板而言,用相同的价格买到的任何类型的属性加成对于他们的属性增益价值都是相同的。从理论上说,使用任何模板都可以得到一种特定的属性价格。之所以要选用中庸模板,是因为此时装备的利用率最高。
英雄的属性价值PV=D*EHP=h(HP,Ar, MR, HPR,AD,AP,AS,)
因此我们只要分别对各种属性求导就可以得到在中庸模板下每增加一点属性整体属性价值增加的值,将这个求出的导数乘以一个固定的系数就是属性的价格。
下面给出这些导数的公式: