游戏开发论坛

 找回密码
 立即注册
搜索
楼主: _ElemeNt_

[讨论] 一个数值公式设计问题!高手进来算算

[复制链接]

9

主题

76

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2007-3-15 22:47:00 | 显示全部楼层

Re:一个数值公式设计问题!高手进来算算

对数值分析还是新手,有一点不明白,在编程时为了提高软件运行效率,不是要避免开方,除法,对数和极限运算么?
看BLLIZARD的WOW的公式里面只有乘法和加减法啊.
高手给解释下好么?

9

主题

76

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2007-3-15 23:09:00 | 显示全部楼层

Re: Re:一个数值公式设计问题!高手进来算算

shengkz: Re:一个数值公式设计问题!高手进来算算
((技能伤害值A+攻击伤害随机加成数B)*(1-防御减少伤害百分比C*防御效果率D*防御成功值E*护甲耐久比F*护甲效果率G)+(等级差加成伤害值H+伤害随机加成值J)—(格挡值K*格挡效果率L*格挡成功值M+随机格挡加成值N))*(暴击倍数O*暴击效果率P+暴击随机加成数Q)=实际伤害值R

找到个自称巨牛的WOW伤害公式,是不是那个玩家自己乱造的

比较不解的是何谓 效果率???竟然还“防御效果率D*防御成功值E*护甲耐久比F*护甲效果率G”,让人摸不着头脑,谁能解释下?

防御效果率是区别物理攻击,火法 冰法 暗影系和自然系等之间抗性的,如果抗性趋近于最大值(400)这个效果率就无限趋近与1
护甲效果率是区别板甲,锁甲,皮甲和布甲的如果只按照护甲值计算就会出现伤害和护甲值的线性关系,所以这个值应该是区别几种护甲的东东吧~

14

主题

145

帖子

191

积分

注册会员

Rank: 2

积分
191
发表于 2007-3-15 23:54:00 | 显示全部楼层

Re: Re:一个数值公式设计问题!高手进来算算

liangjj: Re:一个数值公式设计问题!高手进来算算

对数值分析还是新手,有一点不明白,在编程时为了提高软件运行效率,不是要避免开方,除法,对数和极限运算么?
看BLLIZARD的WOW的公式里面只有乘法和加减法啊.
高手给解释下好么?


在实际的游戏规则量化公式中,的确是应该尽量避免开方,除法,对数和极限等复杂运算,这不仅是为了提高运行效率,还是为了避免出现错误的返回值--例如,除零.
但,有时候,为了达到某些特殊运算效果,比如,这道题目中提到的,函数值随某个值递增而减速递增的效果,又要求函数曲线是平滑曲线,就不得不用到这些运算法则了.
其实,在游戏中,我们所追求的某些特殊效果,是可以用分段函数,即条件判定函数所表达出的近似效果来替代的,这应该是最理想的设计方法之一,也是大部分游戏中经常用到的方法

8

主题

144

帖子

161

积分

注册会员

Rank: 2

积分
161
QQ
 楼主| 发表于 2007-3-16 09:52:00 | 显示全部楼层

Re:一个数值公式设计问题!高手进来算算

C=A*(0.96-B/A-0.01*B/20)

看看我给出的这个,不过这里的A的上限是设置为1000的,B的上限设置为500。C的上限设置为1000

效果比上面给出的公式要差一些,不过运算效率上要好些

14

主题

145

帖子

191

积分

注册会员

Rank: 2

积分
191
发表于 2007-3-16 13:57:00 | 显示全部楼层

Re:一个数值公式设计问题!高手进来算算

C=A*(0.96-B/A-0.01*B/20)

这个公式恐怕难以满足你自己所提出的第二个要求

将这个公式变一下形
C=A*(0.96-B*(1/A+1/2000))
这样我们就能看出
在A不变的情况下,B的直线递增只会导致C直线递减

这与你所提出的第二个要求--2.防御力越接近上限,伤害数值上的变化越小.
是不相符的

8

主题

144

帖子

161

积分

注册会员

Rank: 2

积分
161
QQ
 楼主| 发表于 2007-3-16 14:47:00 | 显示全部楼层

Re:一个数值公式设计问题!高手进来算算

我认为这里应该是一个3维的曲线关系,可能当一个变量一定的时候,另外两个变量在一个平面上会是一个线型的关系。
但以3维的角度去看,他们很可能就是一个曲线的关系。

按照题目中给出的要求做一个大概的方向就算可以了吧,毕竟还要在运算上取得优势,要想既理想又运算快,应该很难,我也想看看数值策划的达人来一个接近完美的公式。

52

主题

979

帖子

1066

积分

金牌会员

Rank: 6Rank: 6

积分
1066
QQ
发表于 2007-3-16 19:01:00 | 显示全部楼层

Re:一个数值公式设计问题!高手进来算算

如果想满足题目需求,,公式不会太简单,,实际上,,最好的解决办法是:

1,以防御者为对象,取一个2级属性(或者说3级属性,随便你),该属性的值为通过攻击力换算的一个减伤衡量值,我们暂且简称为减伤,那么在减伤=Φ(防御)的公式中,只要满足一个递减曲线就可以了比如:减伤=(P1*防御)/(P2+防御),通过调整P1和P2的值,可以比较轻易的得到合适的曲线,实际上,要做的,仅仅上控制最终结果的取值范围,比如通过添加参数,完全可以做到使减伤最终取值范围在0~1之间
2,如果攻击与伤害同样有以上递减关系的话,也同样用此方法,楼主本题中没有要求,那就不用做额外的设定,或者可以
3,在攻击和防御发生的同时,取1中的减伤和2中的伤害直接采用最简单直接的计算,比如,对目标造成的伤害=攻击*(1-减伤)

这样,可以轻易满足楼主的题目要求,并且运算速度绝对可以,因为之前的复杂公式的运算过程,已经存储完毕,计算的时候,只需要调用,已经计算好的结果就可以了,只需要完成最后的一个小步骤,

但是这种结构同样有个缺点,就是一旦游戏中同时还存在影响角色"减伤"数值大小的BUFF或者类BUFF的效果,则会使问题变得复杂,当然,其实同样还是有解决办法的.....

14

主题

145

帖子

191

积分

注册会员

Rank: 2

积分
191
发表于 2007-3-16 21:26:00 | 显示全部楼层

Re: Re:一个数值公式设计问题!高手进来算算

_ElemeNt_: Re:一个数值公式设计问题!高手进来算算

我认为这里应该是一个3维的曲线关系,可能当一个变量一定的时候,另外两个变量在一个平面上会是一个线型的关...


晕!在你所提的四个条件中,根本就没有提及攻击力属性与防御力以及伤害力的明确逻辑关系,作为解答者,不可能将它引入到三维坐标系中,当然也就只能将它当成一个固定参数来考虑了.

你早把攻击力属性的逻辑关系说明,这个题就更简单了,我还不会去用开方呢...

9

主题

76

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2007-3-18 07:26:00 | 显示全部楼层

Re:一个数值公式设计问题!高手进来算算

还是觉得尽量用加减乘比较好
一个例子:你们回去试下用拨号上网打魔兽世界,再试下用拨号上网打其他国产网络游戏
          还不承认那就拨号双开魔兽世界看看

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2007-3-24 18:05:00 | 显示全部楼层

Re:一个数值公式设计问题!高手进来算算

c=a*(1-b/(b+(500/b)))

看看这个是否符合要求,各位达人给说一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-14 13:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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