|
发表于 2007-3-30 01:34:00
|
显示全部楼层
Re:一个数值公式设计问题!高手进来算算
1.伤害降低量 = 护甲值 / ( 护甲值 + b )
2.伤害降低量 = 护甲值 / ( 护甲值 + 人物等级 * a + b )
首先:我们来看第一个公式
第一个公式里,影响伤害吸收的变量只有一个--护甲值,这应该是很容易看出来的一点
也就是说,在第一个公式里,一个确定的护甲值会带来一个确定的伤害吸收量
比如说:我把b设为100的话
那么:
当护甲值=50时,伤害吸收=33.33%
当护甲值=100时,伤害吸收=50%
当护甲值=200时,伤害吸收=67.77%
从这个公式我们可以看出,不管玩家等级如何,也不管怪物的等级如何,只要护甲达到了某一个值,他所受到的伤害就很小了
那么这样的公式效果能不能满足<魔兽世界>这个游戏对角色护甲属性的要求呢?
很显然,这是不能的
我们可以结合魔兽这种角色可升到60级的游戏的实际情况来分析为什么不能的原因:
1.如果b值设得比较小,产生的直接后果就是,只要当玩家的护甲达到某一值之后,对伤害的吸收能力就会变得很大,而且不管在游戏后期是否再增加护甲值,根据前面我们分析的函数曲线的性质
{且当x3-x2=x2-x1时
有f(x3)-f(x2)<f(x2)-f(x1)}
不难得出结论,它对伤害的吸收作用也都起不到明显效应了,所以在后期护甲反而成了一个可有可无,可增可减的属性
2.如果b值设得比较大,产生的直接后果就是,在游戏前期阶段,因为b值过大,所以护甲产生的效果会显得十分微弱,高低护甲之间对伤害吸收能力的区别几乎可以忽略不计,护甲就变成了游戏中的一个垃圾属性
分析了第一个公式的性质以后,魔兽世界采用第二个公式的理由已经很明显了
在第一个公式的分母中加入等级这个变量以后,公式将会产生怎样的变化呢?
其实,等级这个变量的加入相当于给这个公式建立了一个参照系
我将公式模型具体话以后,相信就能看得更清楚了
比如,把第二个公式写成
伤害降低量 = 护甲值 / ( 护甲值 + 人物等级 * 100 + 100 )
这样的具体形式
那么在玩家为1级时,要想吸收50%的伤害,需要多少护甲值?200
那么在玩家为2级时,要想吸收50%的伤害,需要多少护甲值?300
那么在玩家为3级时,要想吸收50%的伤害,需要多少护甲值?400
...
可以看出,对于同一伤害吸收值来说,对护甲的要求会随等级的提升和提升,而这个变化就很轻松的解决了第一个公式所存在的问题:
只要控制好了a,b这两个参数,那么护甲值在任何一个等级之下都会变成了一个重要属性.因为,在低等级下,由于等级参数的缘故,少量的护甲值会引起伤害吸收较大的变化;而在高等级下,由于等级参数的缘故,要引起同样的变化,则需要更多的护甲值--这就比较符合网络游戏的设计理念了
当然,我们并不是说这个公式是万能的,其实它也有自身的弱点--什么弱点呢?它会让玩家感觉到一种疑惑:
为什么我等级提升了,而我对伤害的吸收能力反而下降了呢?
而<魔兽世界>面对这个问题时,则使了一招"偷梁换柱"的把戏几乎骗过了玩家的眼睛--
它在"护甲"这个属性上的注释是:"玩家对抗同等级怪时,对伤害的吸收能力"
实际上,这个公式根本就与同不同等级没有任何关系.从公式上可以看出,不管是对于哪个等级的怪,只要玩家本身等级提高了,而护甲不变,伤害吸收的能力其实都会下降,只不过,因为人物等级提升后,由于属性提升,装备更换,将这种下降的趋势又给弥补回来了而已.
这个公式所存在的弱点,使它很少被运用于其他判定过程中,在网络游戏中,最好只用在那些变量范围巨大,而函数范围却相对较小的公式上.
比如说:敏捷对攻击速度的影响,我们说就可以采用类似的公式.
设计数值不过就是在玩一个数字游戏~~把数学公式原理,以及游戏内在的互动关联弄清楚了,任何问题都能迎刃而解 |
|