游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2813|回复: 2

[求助] 求教一个数值等额转换的问题

[复制链接]

6

主题

15

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2013-11-27 21:33:30 | 显示全部楼层 |阅读模式
求教一个属性等价转换的问题最近看了一个《公式是怎样炼成的》的文档,产生了一些疑问

在一个“伤害=攻击-防御”,有闪避、暴击、命中的模型中,如何将攻击、防御、生命值、闪避、暴击、命中进行等价值转化。
例如:1点攻击=5点生命=0.1%的命中这样的。
即使无法最终变成这样简单的等额转换,那要如何限定闪避上限呢(假设没有命中这一属性,那么闪避这一属性肯定是堆得越高、每一点闪避的价值越高)。


公式是怎样炼成的 (1).docx

78.32 KB, 下载次数: 436

0

主题

185

帖子

728

积分

高级会员

Rank: 4

积分
728
发表于 2013-11-28 11:01:52 | 显示全部楼层
在任何一个伤害模型中,等价转换的函数都是隐函数,其中大部分是不能显化的,只有一小部分可以显化。而能进行类似“1点攻击=5点生命=0.1%命中”如此简单的等价转换的,就是能显化的这一小部分中的等次函数。

即便已经假定“伤害=攻击-防御”,要将隐函数显化(即确定N点攻击=M点生命的关系),也是需要视其他设定而定,比如战斗类型、战斗规则等因素。

不过,通常的,我们只是需要一个近似结果,此时这种“等价转换”关系就比较容易获得:
①选定目标区间;
②写出只含两个变量的隐函数(其他参数视为常量);
③由Δx→Δy=Δf(x)的对应关系获得x与y的近似等价关系。

闪避率、暴击率、命中率、格挡率等伤害增减率类的概率与攻击的等价转换比较复杂:增减率的价值与攻击的价值必定不是等次的(“增减率”相关于“攻击的平方”)。所谓等价转换关系会随攻击的取值不同而改变。要抵消这部分的影响,理论上存在构建“闪避率=f(闪避)”的函数的办法来使“闪避”和“攻击”存在等价转换关系,不过,目前我还没见人这么做过(也许是因为我太孤陋寡闻了)。
限定闪避上限,这个命题貌似还没有一个确切的标准答案。上限的设定通常是由比较主观的需要而设定的。如何规避闪避率过高,方法也不是唯一的。比如严格限制闪避率的获得途径,或者通过构建“闪避率=f(闪避)”曲线限定闪避率上限。(比如闪避率=A/(1+1/闪避),其实就是变相限定闪避率上限为A)

1

主题

24

帖子

153

积分

注册会员

Rank: 2

积分
153
发表于 2013-11-28 11:14:51 | 显示全部楼层
在我做设计的时候,数值体验有两个重要的考察目标:期望、方差;前者体现数值的强度,后者体现随机性风险性。

在此之上,可以很方便的将闪避、暴击、命中这些所谓的随机性数值,通过求解期望,转化为有效生命值以及有效攻击力。这是玩家在游戏体验当中,最为普遍的感受。这几项数值的价值也可以某种程度上的通过这种方式来定义。

其次可以把极端体验出现的概率,以及数值感受用excel表拉出来。然后就是一些非常具体的、脱离游戏环境没有办法讨论的东西了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-27 00:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表