首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 第二书店 程序员
您的位置:游戏开发频道-正文

云风: 数值调整、模拟器、编辑器2008-05-14 来自:villa123  [收藏到我的网摘]

最近做游戏数值有点头大。也研究了一些游戏的设定,有点心得。举个很小的例子来谈谈:

wow 里的护甲对物理伤害吸收是乘一个百分比的,其公式为:

min (护甲/(护甲 + 400 + 85 * 敌人等级) , 0.75)

怎样理解这样一个公式的内在含义?为什么会设置成这样?

和敌人等级相关很好理解,对手越强,吸收的越少。这样可以方便伤害公式的设计。

因为,一个人的物理抗击打能力和两个基础值有关,HP 的长度,和护甲伤害吸收率。(暂且不考虑回避率和特别技能伤害等的影响)

随着玩家等级的提高,基于成长性考虑,系统一定会让玩家的 HP 更长,护甲更厚。但是对应的伤害输出则只有一项数值。这样,要么以更快速度提升玩家的伤害输出能力,要么就要削弱面对高等级对手时的伤害减免能力了。

由于 wow 里各种人物之间有护甲差别(板甲、锁甲、皮甲等),为了平衡起见,不至于拉大高等级玩家见护甲差别优势,又保留护甲升级空间,暴雪选择了根据对手等级来削弱护甲能力的方式去做,这是最自然的选择。

至于 75% 吸收封顶,应该是受 D&D 规则影响。保留实力相差过大时,不至于让弱势方毫无还手之力的可能。(D&D 规则中,投出骰子 1 就一定 miss ,wow 同样也设定了这样的保底 miss 率)

重点来看看这个伤害吸收公式的框架,为何要采用一个倒数曲线来描述其变化呢?

我们来看常见的另一种涉及百分比变化的数值设定方法,那就是逐步累加百分率。很多游戏都有使用。(比如还是 wow 中,对致命一击率的设计)但是,对于宽泛的百分比变化,这样的设计是不太好做平衡的,因为价值很难直观凭估。

我们来看这个伤害吸收率,假定有一件装备可以增加 1% 的伤害吸收率。那么你如何评价其价值?跟许多玩家的数字直觉不同,在你的基础吸收率不同时,其价值可能截然不同。

举个极端的例子,假设对手的伤害是 100 点,而你原来毫无伤害吸收能力(护甲为 0%)。那么增加 1% 的伤害吸收率后,你就可以只承担 99 点的伤害。这种改善是微乎其微的。但是,如果你一开始有 98% 的伤害吸收率呢?那么再没有加这件护甲前,伤害是 2 点,一旦穿上后,吸收率增加到 99% ,就只会受到 1 点伤害了。护甲性能因此提高了足足 1 倍。

这就是 wow 把护甲值和伤害吸收率设计成倒数关系的缘故。

当玩家的 HP 固定长度,对手的伤害输出能力一定时,HP 的抗击打次数和对手单次伤害成正比。当对手的单次伤害被削弱一个百分比 d ,那么防御方的抗击打次数(或理解为存活时间)就提高了相同的百分比 d 。

经过公式换算过的护甲点数,1 次线性的描述了玩家抗击打能力的提升。这样,同样一件加 200 点护甲的装备,给任何人,任何职业,任何等级的人装备上,提升的防护能力就可以(在抵抗同一对手的攻击的时间长度这个意义上)保证一致。在此基础上,衡量护甲加成的点数的内在价值,就变得容易估算了。

OK 。如果要做护甲点数增加一定百分比,甚至翻倍这样的技能或职业设定怎样?wow 里的熊德就是这样的。如果这种技能多了,一定破坏平衡,理由正是上面分析过的。wow 这个护甲吸收伤害公式和数值增量的值密切相关,收益和增量成一次线性关系。百分比则会破坏这个平衡。

如果想做呢?比如有职业有技能是增加护甲点数百分比,天赋可以再增强这个百分比,饰品也可以对护甲点数以百分比增强?

好办,用幂函数曲线去拟合护甲点于吸收率的关系就好了,这就不展开讨论了。

推荐人评论

随着玩家等级的提高,基于成长性考虑,系统一定会让玩家的 HP 更长,护甲更厚。但是对应的伤害输出则只有一项数值。这样,要么以更快速度提升玩家的伤害输出能力,要么就要削弱面对高等级对手时的伤害减免能力了。

用户评论

正在载入评论列表...

是谁推荐了此篇文章

专家头像陈丽辉CSDN频道编辑,联系方式chenlh@csdn.net
个人blog发送信息
陈丽辉推荐的其他文章

赞助商精华文章

热点新闻

热点评论

    精彩视频

    精彩专题

    资源下载

    
      网站简介广告服务网站地图帮助联系方式诚聘英才English问题报告
    北京世纪乐知数码科技有限公司  版权所有  京 ICP 证 020026 号
    Copyright © 2000-2006, CSDN.NET, All Rights Reserved