网站大量收购闲置独家精品文档,联系QQ:2885784924

暴雪战斗公式——除法公式的精髓.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

暴雪战斗公式——除法公式的精髓

想必一般玩过暴雪游戏的人,都会对暴雪游戏的平衡性赞不绝口。若是对其游戏数值有进一步研究的人,更会惊叹其战斗公式设计的如此精妙。暴雪的战斗公式已经成为一个流派,成为我们最广为熟知的一种除法型公式,影响着日后千千万万的游戏设计。

对于战斗公式采用除法公式这个体系,一般的游戏设计者都不会很陌生,甚至一些资深的wower都会理解一些该体系下的结论,但实际上未必多数人都能对除法公式的精髓有着深入的了解,比如让我们来看如下的这些问题,是否都有明确清晰的答案呢。

1.除法公式下如何定义一个涵盖了角色所有属性量,并且可用来衡量其能力强弱的函数?

2.为什么除法公式中伤害减免百分比要用这么复杂一串公式?

3.除法公式通常的形式和一些变种的除法公式有什么关系?

4.玩过wow的很多人认为,由于伤害减免曲线随着防御增加变化越来越平缓,所以防御这个属性的收益是逐渐递减的,这个说法是正确的么?

5.攻击,防御,血量这些属性究竟如何影响了一个角色的能力,即不同属性提升时,角色能力如何提升?即每点属性的属性价值如何?各个属性之间的等价关系如何?

下面我们便来逐一讨论这些问题,看一下暴雪的战斗公式究竟是如何推导出来的。他的精妙,他的美体现在何处。

一.能力函数的推倒

对于非回合制的即时网游,考虑一个玩家的实力,主要看其与另外一方进行战斗时,

被击倒的时间。(对于回合制游戏主要考虑击杀回合数)

那么我们就来通过比较敌我双方的被击倒时间,来抽象出一个衡量角色能力的函数:

首先,除法公式计算伤害的核心是:伤害=攻击*(1-伤害减免%),

则:

然后,我们比较敌我双方的被击倒时间,会有3种结果,

即:

将被击倒时间的具体计算公式带入,有:

由于上式中各项均为正数,移动DPS参数的位置不改变不等式符号,即:

至此,我们将关于己方和敌方影响战斗结果的参数分别放在了不等式的两边。那么比较两方实力强弱,即为比较这个算式值的大小,即该式为可以反映一个角色实力的函数,即:

二.除法公式的产生

刚才文中有提到,除法公式伤害计算的基础其实是伤害=攻击*(1-伤害减免%),

那么我们为什么不直接用伤害减免%直接作为角色的一个属性呢?原因主要有2点:

1.伤害减免%这个属性的值域过小,只能从0增加至100%

2.每点伤害减免%增加所对应角色能力的提升是非线性的

什么叫非线性呢,首先我们来解释一下,什么叫线性。数学中类似y=kx+b形式的函数被称为线性函数,线性函数的核心在于其斜率为定值k,即y对x的变化率始终为k。在我们的公式中,以乘积形式存在的公式,即为线性公式,如能力函数W=EHP*DPS。线性公式的好处在于,提升每点属性所对应的能力的提升是固定的。比如例式中,当把EHP看做常量时,每点DPS的提升,对能力函数的提升始终为定值EHP,我们也可以说,每点DPS的提升对能力函数的提升是线性的。

现在,我们回过头来看伤害减免%,显然,该值对能力函数W的提升是非线性的。由于其函数形式为幂函数,因此其具有幂函数的性质,当其逐渐增加至趋近于1时,每点伤害减免%增加带来的能力函数W的提升急速增大,以至于趋于无穷。由此我们也可以看出,伤害减免%这个值对于角色能力提升来说,其价值是逐渐增加的,伤害减免%越大越趋近于100,每增加1点所带来的提升也就越大。

正是因为非线性所带来的属性对于能力提升的价值不恒定,难于控制,因此暴雪的公式都在极力追求线性化,由此才带来伤害减免%和防御之间的转化。那么,要如何定义伤害减免%和防御之间的关系才能使防御对能力函数的影响是线性的呢?

首先,我们按照下式定义伤害减免和防御的关系:

(其中f(lv)为和等级相关的一个函数,其作用稍后讨论)

整理后可得:

实际上这应该是多数人很熟悉的,伤害减免%和防御的关系式。将其带入能力函数中,

有:

此式中,防御和能力函数已经是线性关系,当HP与DPS为常量时,每点防御提升对能力函数的提升是恒定的,线性的。

由上述讨论,我们可以看到如此定义伤害减免%和防御的意义。下面我们来

讨论,定义式中防御除以f(lv)的作用。

首先,我们来看如果没有除以一个值时,伤害减免%和防御的关系:

此时,当防御增加时,只需增加至10以上后,伤害减免%的值迅速上升至90%以上。当伤害减免百分比达到90%以上后,每增加一点防御,所产生的伤害减免%的变化会变得微乎其微。这样玩家的面板上,伤害减免%这个值的提升变化就会很小。对于玩家来说,感受上不好,感觉不到这个值的提升,也会间接的怀疑防御这个值的作用。即使每一点防御对能力函数的提升始终是一致

文档评论(0)

137****3135 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档