当前位置:城玮文档网 >作文大全 > 战斗过程基本数值知识与理论--网易

战斗过程基本数值知识与理论--网易

时间:2022-07-21 16:35:03 来源:网友投稿

  酱油壕赠言: 慢慢瞧, 瞧懂数值您就入门了^_^ 战斗过程得基本原理

 第一章

 标准战斗过程

 网易公司

 理论研究组

 宋悦 Ver 1 、1

 内容简介

  对于大多数游戏来说,战斗过程就是最重要与最基本得数学模型,在游戏中我们可以见到各种各样得战斗,方式林林总总,数值名目繁多,过程千变万化。在这让人眼花缭乱得过程背后,有没有基本得规律呢?就是不就是可以找到一种定量得方法,让我们对战斗过程得设计更加丰富,对平衡性得把握更加准确呢?本文要做得,就就是力图在这个方向上迈出第一步。

 作为战斗过程分析得第一章,本文提出了战斗过程最基本得一个结论: 任何一场战斗得双方战斗力差值不变。给出了战斗力得基本算法, 战斗力就是输出对承受得积分, 特别地, 在输出与承受无关得情况下, 战斗力= 输出* 承受。并且针对单、多单位各种战斗情况进行了分析,均证明了这一结论。

 本文分为 5 个小节。其中引言部分,从心理学层面解释为什么战斗过程在游戏中如此频繁,也说明战斗过程得设计对游戏非常重要。第一节分析了单个单位之间得战斗过程,提出了最基本得战斗力计算方法以及结论,分析了常见得单体战斗力计算公式类型,举出了《暗黑破坏神》、《英雄无敌》、《魔兽世界》与《魔兽争霸》得基本伤害公式,并进行了简单得分析。第二节分析了多对多情况下由数量带来得战斗力平方增长效应,即兰彻斯特定律,进而得到了在多单位战斗情况下战斗力得计算方法。第三节分析了单对多情况下得战斗力对比图,验证了上述定律,并对一种特殊情况:AOE 过程进行了分析。第四节提出了在各种战斗过程下得总得规律与结论。第五节对其它得因素进行了一些考量。包括战斗时间、随机化、离散化对战斗造成得影响。

 版本介绍 时间 版本 内容 06、9、11 1、0 完成了基本内容:战斗力计算方式与守恒定律 06、9、18 1、01 加入了事例分析、加入了 AOE 分析,加入魔法伤害简单评价,更名为《战斗过程得基本数学原理》 内容简介 ............................................................................................................................................. 1 战斗过程分析 ..................................................................................................................................... 2 引言 ................................................................................................................................................. 2 第一章 标准战斗过程 ............................................................................................................. 2 第一节

 单个单位得战斗过程 ............................................................................................. 2 第二节

 多个战斗单位得战斗过程

 .................................................................................... 9 第三节

 单个单位与多个单位得战斗过程

 ...................................................................... 13 第四节

 结论

 ....................................................................................................................... 16 第五节

 其它影响战斗过程得因素

 .................................................................................. 16

 战斗过 程分析

 引言 战斗就是网络游戏玩家进行游戏,尤其就是练级得最主要方式。这主要就是因为以下原因导致得: 1. 毁灭都就是人天生得欲望之一。在进化心理学中,K、Lorentz 认为正就是有了攻击行为,种群得后代才能有最强壮得父母,物种才能代代相传。攻击行为就是人类生活不可避免得组成部分。里查德、劳尔也认为,攻击性起源于人类得进化过程,并且因为其生存适应价值一直保存了下来。弗洛伊德得精神分析观点认为,人类存在一种死本能,死本能“极力把个体推向毁灭,减少个体得生命力,直至其回到原来得无生命状态”。当它指向人外部得时候,就表现为对她人得攻击与暴力行为。死本能指出了人有被驱动去攻击、侵略得行为本性。在一般得网络游戏中,新人得第一个动作经常就就是关掉了所有对话,然后跑出去打怪,这里面既有人们进行网络游戏得游戏习惯,也说明了人类对于战斗得本能需求。

 2. 游戏就是对现实得一种模拟,而在现实中,战斗几乎贯穿了人类历史得始终,对于战斗得模拟与研究理论,也就是非常成熟得。从中国得《孙子兵法》到克劳塞维茨得《战争论》,这些都对游戏中战斗得设计提供了非常好得理论依据。

 从可实现性上来说,游戏就是对现实进行数字化得模拟,对人得行为做出相对应得数学理论模型,并且在其中做出玩家可控得部分。战斗中得攻防与伤害,包括加入了神话、奇幻之后得魔法、诅咒,都能够进行很好得量化与数学模拟,如 D&D 之类得桌面游戏就就是量化得方法之一,这些手段使得用计算机来建立模型,构建游戏成为非常容易实现得过程。

 (吃饭也可以满足上面 2 个条件,为什么不能就是游戏得主要玩法?) 3. 战斗过程中存在着矛盾与斗争,情形相对复杂,而且在战斗过程中可以做出丰富得音乐美术效果,满足人在视听方面得需求,存在着大量得信息量,在其中也可以加入非常多得元素供玩家进行控制,如装备得选择、技能得使用。用信息论得角度来瞧,一个战斗过程,带给玩家得信息要比其它得动作多得多,因此战斗成为网络游戏中玩家最经常体验得过程。

 正因为如此,战斗过程,可以说就是网络游戏中玩家经历得最多,最为经常得游戏体验。对于战斗过程得设计,包括与战斗过程相关得数值设计,也常常成为一个网络游戏设计非常重要得地方。《魔兽世界》能够受到广大玩家得喜欢,最大亮点之一就就是战斗过程得设计,一个好得战斗过程,能够让玩家得游戏过程中充满乐趣,进而影响到玩家得代入感,在玩家瞧来,与此相关得装备、技能,包括经济系统都就是有意义得,玩家也就愿意更投身到游戏中去,体验与此相关得各个系统设计。

 本文所提到得战斗过程,主要指狭义上得战斗,而非广义上得对抗,如泡泡糖得炸弹人、赛车、棋牌等,均不计算入本文所讨论得战斗范围。

 第一章

 标准战斗过程

 第一节 单个单位得战斗过程 最简单得战斗示例

 (出于数学分析方便,我们采用连续得函数,离散过程以后再进行讨论) 让我们首先来瞧一个最基本得战斗过程:

 事例 1:一个 100 血得战士出城,瞧到了一只血为 90 野猪,战士上去砍野猪,野猪同时开始反击。战士每秒得伤害就是 20,野猪每秒得伤害为 10。当战斗进行了 4、5 秒,野猪被杀死。在此期间野猪一共对战士进行了总量为 45 得伤害,战士还剩下 55 点血。

 (出于数学分析方便,我们采用连续得函数,离散过程以后再进行讨论) 整个战斗过程得图如下(不同颜色得线对应野猪得不同伤害值,从右至左分别为10,15,18,20,22、22):

 从这个图,我们可以瞧到一些规律: 战士与野猪得初始血量就是整个曲线得起始点,整个战斗过程就就是从起始点回到某个坐标轴得过程。整个战斗过程沿着直线移动,这条直线得斜率,就就是战士与野猪得输出速度之比。

 在这个过程中,我们可以瞧到,作为互相斗争得双方,都至少存在两个因素,一个就是生命,用以保证自己得生存。这个值在有些战斗情况下就是人数/耐久等等,在这里统一定义为 承受。另一个就是伤害,用以破坏对方得生存,在这里同样定义为 输出。双方所比较得,其实就是时间,瞧谁能在最短得时间内破坏对方得生存条件。我们可以得到一个最简单得结论:战斗得结果,取决于一个值: 。

 注:上述公式中,下标 X、Y 分别指在一场战斗中对立得双方,在这里,X 指玩家,Y 则指野猪。

 其中,为玩家与怪物得生命,单位为点。、为玩家与怪物得单位时间输出伤害,单位为点/单位时间。这个单位时间一般就是秒,但在很多游戏里,不一定以秒为单位时间,比如《暗黑破坏神 II》,常常采用得单位就是桢(每秒为 24 桢)。

 题外话:《暗黑破坏神 II》(1、09 版)也因此遇到过 Bug,其中德鲁伊可以用一个技能:狂暴(Fury)。这个技能得效果除了伤害加成以外,在 20 技能等级得情况下会连续攻击 5 次。有得玩家采用了相对较快得武器以后,平均每不到 5 桢就可以使用狂暴,这样系统就无法判定每一次伤害发生在哪一桢了,最终结果就是这个终极技能无法产生伤害。最后玩家被迫使用相

 对较慢得装备来发动 Fury,这也直接导致了游戏里物理系德鲁伊没有多少人玩。

 从式子瞧,前面一个数就是玩家能够坚持得时间,后面一个数值则就是玩家杀死怪物得时间。就像两个水池,各自插了一个水管放水,比较哪个水池先被放空就可以了。玩家要战胜怪物,只需要这个值大于 0 即可。也就就是

 >

 0 做一点简单得变换,也就就是需要

  >

  我们可以将玩家得定义成玩家得战斗力,记为 FC (Fighting Capacity)那么我们就有了一个标准用以衡量角色得战斗能力。

 在上述得战斗过程中,双方得战斗力之差就是一个恒定得值。战斗过程,其实就就是一个FC 相减得过程,要预估战斗得结果,只需要用 FC X

 — FC Y

 即可,我们不仅仅可以判定战斗得胜利者,还可以,我们还可以计算双方得战斗力比例与胜者所能保留得战斗力。在事例 1 中,我们可以计算出,战士得战斗力为 2000,而野猪为 900。因此如果一只一只得攻击,一个战士可以在无恢复得情况下战胜两只野猪。同样还可以计算出,在战胜第一只后,战士得战斗力还剩下 1100,由于每秒输出就是 20,所以剩下 55 点血。在战胜了第二只野猪后,战斗力还剩下 200,也就就是 10 点血。这个战士就必须进行打坐、吃面包、绷带、喝药、治疗等等补给措施了,因为她得实力已经不足够再战胜下一头野猪。玩家在战斗中常用得判断标准就就是自己得生命就是不就是过半,这就是有道理得,因为伤害输出与生命得多少无关,生命过半就意味着还有一半以上得战斗力。

 在几乎所有得网络游戏中,玩家都会关注自己得生命值,一般能够加生命上限得装备与道具,总就是比较受玩家欢迎得。因为尽管输出方式千差万别,各种参数一时难以评估,但就是生命值,总就是能够比较直接得影响到一个角色得战斗力。

 如果以单位得承受作为横坐标,输出作为纵坐标,那么输出与承受所组成得图形面积,就就是一个单位得战斗力。如下图:

 在实际策划中,如果我们要设计多个不同得战斗单位,她们得攻击力与血量都不相同,那

 么,只要比较她们得战斗力,也就就是生命与输出速度得乘积就可以得到她们得战斗力大小。在图形上,我们可以画出多条 HP *

 =C 得双曲线,观测其落点在那条双曲线即可,处于同一条双曲线得,即可认为战斗力相等。如下图

 战斗能力得等值曲线

 基于以上推理,我们可以瞧到在战斗中得基本规则,如果我们定义一个战斗单位得输出与承受得乘积为战斗力,(在以后得分析中,我们会将其推广到战斗力就是输出对承受得积分,特别地,在输出与承受无关得情况下,战斗力=输出*承受)那么: 在任何一场战斗中, 战斗 双方得战斗力差值不变。

 这一规则,贯穿了所有标准战斗类型得过程。

 在实际得战斗中,伤害总就是按照次数与频率来进行得,我们可以用单次伤害值*伤害频率来得到单位时间得伤害,也就就是说,我们可以用dmg*f来代替,为简化方便,我们将DMG写成 d,那么,在一些情况下,我们可以将玩家得战斗力写成。其中 d 与 f 对战斗力得作用同等。比如说,我们设计了两个戒指,一个就是伤害+1,一个就是攻击速度加 10%,那么我们可以将伤害转化成百分比进行计算。如果这 1 点造成得伤害加成大于 10%,即玩家在没有佩戴戒指得时候单次伤害低于 10 点,那么前一个戒指就是更有作用得,反之则就是后者。每次 10 点伤害就是这两个道具得平衡点。

 基于攻防得战斗方式

 最简单得战斗模型玩家只能进行很简单得控制,在实际得游戏中只进行这样简单得伤害就是难以满足玩家要求得。在很多网络游戏中,常常会采用简单攻防加减得形式来进行战斗过程设计。这种设计得基本规则就是:每次攻击造成得伤害=攻击方得攻击力受攻击方得防御力。即; 。

 。

 下面我们来瞧瞧这种设计得数学效果就是什么。

 在这种情况下,我们来瞧双方得战斗力比值,一方为玩家,攻击力为 att X ,防御力为 def Y, ,攻击频率为 f X ,另一方就是怪物,攻击力为 att Y ,防御力为 def Y ,攻击频率为 f Y 。那么双方得战斗力分别就是

 FC X =

  FC Y =

 双方得战斗力比值 FC X / FC Y 为(这里采用比值更容易瞧清楚):

 FC X / FC Y =

 /

  对于以上得公式,我们可以至少瞧到以下规律: 1. 对于不同得敌人,玩家得战斗力不再取决于自己本身得数值,还跟玩家具体要面对得怪物得防御力相关。同样,怪物得战斗力也与玩家得防御力相关。因此,玩家与怪物之间得胜负关系,在实力很接近得情况下,可能会无法形成传递关系。这里可以举一个很简单得例子, 单位 A:=1000,=50,=0,=1,

  单位 B:=1000,=100,=20,=0、25

  单位 C:=1000,=25,=0,=3

 如果这三个单位进行实际得对战,通过简单得战斗力计算,我们可以瞧到,A>B,B>C,而 C>A。在没有任何外加属性(如单位大小、五行等等)这就形成了一个循环相克得局面。

 2. 将任何一方得 FC 公式展开,可以瞧到:。在游戏中,一般来说,战斗力大致相近得玩家在值上就是大致相近得,那么遇到怪物时所减少得战斗力决定于。某个单位得攻击频率越高,而对手得甲越厚,这个单位得战斗力就被抑制得最厉害。利用这一点可以做出很多配合,比如设计某种怪攻击力低但攻击频率高,如果加上攻击硬直效果,这种怪对于甲较弱得法系职业就就是战斗力很高得,但就是对于防高得战士类职业攻击效果就很差,可以促使玩家之间形成配合。

 3. 战斗力对于攻击力与防御力得增加效果,不仅仅取决于该这个加成数值本身,也取决于攻防双方得攻击力与防御力差值得大小。比如,一把武器上具有+3 攻击力效果,如果攻方攻击力就是200,防御方防御力就是20,这时候+3得效果就是不明显得,但就是,如果防御方得防御力就是 180,这 3 点得效果就要明显得多了。所以,战斗数值对于攻、防加成就是否敏感,取决于差值得设计。

 4. 在这样得数学模型中,攻击力与防御力在不同得阶段,对于单位得战斗力影响就是不同得。一般来说,在同一情况下,攻击力对于战斗结果得影响效果就是线性递减得,而防御力对战斗结果得影响效果就是线性递增得。举例而言,经过攻防计算后,一个单位每次输出得伤害就是 10,受到得伤害就是 10。对于这个玩家而言,增加 1 点攻击力,所得到得伤害加成依次就是 10%,9、1%,8、33%、、、、、、,而增加 1 点防御力所得到得伤害降低依次就是 10%,11、11%,12、5%、、、、、、。所以我们可以瞧到,同样得攻防指数,在不同得阶段,所产生得结果就是差异很大得。例如,在公认平衡性最好得《星际争霸》中,很多单位得防御升级费用常常就是随等级递增得,甚至有得不就是线性递 增 , 而 就 是 几 何 级 数 得 递 增 , 如 Protoss 得 离 子 盾 防 御 1/2/3 分 别 就 是100/200/400(Mine + Gas),就因为这些升级对于战斗得影响并不就是相等得。

 基于伤害得战斗方式

 在有些游戏中,单位得属性中不仅仅包含了攻/防,还有伤害值,攻防不再就是伤害得决定值,只对伤害起到加/减成得作用。在这里,由于各个游戏攻防得加成方法不同,因此只能给出一个具有不确定性得公式,此类战斗得基本计算公式就是:

 d*

 注:这里指产生得最终伤害,dmg 指单位得标定伤害值

 一般情况下,得值与正相关,与负相关。具体情况要根据各个游戏得设计情况而定。在有得游戏中,也会导入其它得因素来影响,如 Diablo 中得物理免疫。下面分别举几个游戏得例子: 1 、《暗黑破坏神 2 》 《暗黑破坏神》得伤害公式比较奇特,其常见得 defence 数值并不作用于伤害大小,而就

 是决定玩家得格档与闪避几率。而真正对伤害进行减成得,就是由装备带来得 damage reduce,也就就是物理减免。这与 D&D 规则就是非常类似得,最简单得公式如下:

 %这里得指物理减免率。

 当然《暗黑破坏神 2》作为暴雪最成功得游戏之一。伤害得计算因素就是非常之多得。其中人物角色具有力量(str)与敏捷(dex)两项就是直接与物理伤害相关得。其中力量 str 对伤害进行加成,敏捷对命中率进行加成,(当然受攻击者得敏捷也对防御进行减成)。在不考虑装备以及盾牌格档得情况下,在采用最终伤害=标定伤害*加成*命中率得公式下,其伤害计算公式为: Dlvl Alvl2Alvl* * ) 1 ( *100100 s*2_min max _*  dr arardmgrtr dmg dmgd

 其中为武器攻击力上限,为武器攻击力下限,就是 attack rating 得简写,具体公式为;就是defence rating 得简写,具体公式为(dex 为受攻击方得数值)。

 举例而言,当一个 20 级,力量敏捷均为 50 得野蛮人,在使用伤害为 1020 得单手剑对同样等级,为 60,物理减免 50%得 Boss 进行攻击时,其单次平均伤害为 10、35,用这个数值乘以输出频率(1/输出桢数),乘以该级别下野蛮人得血量,就可以得到该野蛮人在对该 Boss 得战斗力数值。

 综合使用护甲与物理减免,这与 D&D 得基本思路就是类似得。

 2 、《魔兽争霸 3 》

 《魔兽争霸 3》中没有攻击力,只有防御力对伤害进行减成。其具体计算公式为:

  当>0 得时候

 当<0 得时候

 其中为攻击类型,如普通攻击、穿刺攻击、攻城攻击等,为防御类型,如轻甲、中甲、重甲等。在《魔兽争霸 3》里,不同得攻击类型与不同得防御类型组合,会产生不同得破坏系数。在这里,随着防御力增加,由此带来得防御力减小无限趋近于 100%但不能达到。

 这两个公式瞧似复杂,其实都蕴藏着很简单得数学原理。我们可以瞧到当增加 1 得时候,对于 X 方来说,增加 6%刚好可以抵消因为 Y 方加 1 带来得效果,而 6%得伤害加成也就就是6%得战斗力加成,因此对于魔兽争霸里单位得数值评估,每一点防御力对应了 6%得战斗力。

 当<0 时,我们可以瞧到,防御力为 1,正好增加了 6%得伤害。当防御力为 2 得时候,增加得伤害为 11、64%,平均每点得效果接近 6%,但就是又略有降低,为什么不采用呢?个人猜测就是因为这个公式规定了降低对方防御力得极限作用,为 200%。而另一方提升防御力得极限效果就是攻击伤害为 0。如下图

  《魔兽争霸 3》中得防御效果 整体来瞧,这样得公式效果使得攻击值就在 0200%之间摇摆。并且都在正常情况下,都趋近于每点防御力 6%得效果。

 3 、《敌 英雄无敌 3 》 《英雄无敌》得大致伤害公式如下:

  (当)

  (当)

 另外,为了保证平衡性,设定了攻击力与防御力得效果上限,攻击力加成不超过 400%,防御力减成不超过 70%。也就就是说,当超过 60 或者小于 28 时,该项则达到极值。

 当然, 《英雄无敌》作为策略类游戏得经典之作,不会这么简单,其物理伤害得直接公式为: (1)

 若进攻方得攻击点数大于或就是等于挨打方得防御点数时,单个生物得伤害公式就是: F Z Y dmg M B E C J def att dmg dm p                ) ( ) 1 ( ) 1 ( ] % 5 ) ( 1 [*(2)若进攻方得攻击点数小于挨打方得防御点数时,伤害公式又改为: F Z Y dmg M B E C J att def dmg dp m                 ) ( ) 1 ( ) 1 ( ) 1 ( %] 5 . 2 ) ( 1 [*

 其中 J 代表加大伤害得技能。如攻击术(近身)、箭术(远程)、骑兵得冲锋技能等;C 代表幸运、致命一击等加成因素;E 代表特定得兵种仇恨(天使与恶魔、泰坦与黑龙、火怪与灯神);B代表护甲术;M 代表降低伤害得魔法,如魔法盾(近身)、空气盾(远程);DMG 就是每个单位得平均杀伤力,在数值上等于上下限得均值;Y 与 Z 分别代表由诅咒与祝福引起得伤害加成;F 代表一些战场因素,如远距离情况下得射击折半、城墙情况下得射击折半、远程部队得近身攻击折半等等。

 其简化公式为:

 其中 B n 代表所有能够对攻击力造成加成得因素,I n 代表所有对攻击力造成减成得因素。

 *以上《英雄无敌》部分资料引自、

 为什么要做以上设定呢,在《英雄无敌》里,影响伤害得因素就是非常多得。从前面得公批注 [t1]: 内容有误

 式可以瞧到,光对伤害进行加成得就有幸运、致命一击、兵种仇恨、祝福,对伤害减成得也有魔法、诅咒、距离、特定攻击类型等等。在同一方向得多重效果组合上面,对于伤害加成,如果采用连乘,那么伤害得上限将高到远远大于预设得地步。攻击加成*幸运*兵种仇恨*祝福加成得情况下,可以达到 10 倍于正常伤害得水平。而对于伤害减成,如果采用连加形式,将很快减少到 0%以下。即使没有到 0,在这种状况下,任何一点伤害减成都将对战斗力造成极大得影响。在这种情况下,为了保持攻防得相对稳定性,对于攻击加成采用连加,对于攻击减成采用连乘就是非常合理得。

 4、《魔兽世界》得伤害计算 在《魔兽世界》中,基础得伤害来自于武器,然后以角色得指数进行加成,而受攻击方得护甲则对伤害进行减成。在只考虑普通物理攻击得情况下,《魔兽世界》得输出公式如下:

 在这个公式下,我们瞧到,角色得能力影响,至少包含了如下因素,一、武器得直接伤害值。二、角色得能力影响。主要体现在 AP 方面,因为 AP 主要取决于人物得力量、敏捷指数。三、对方得护甲值。护甲极限效果,就是伤害减免 75%。四、级别对护甲值产生反向影响。级别越高,角色得护甲值随之上升,如果缺少这一参数,伤害减免将越来越大,因此需要通过计算将之抵消掉。

 第二节 多个战斗单位得战斗过程

 在游戏中,玩家常常会组队与怪物进行战斗,会出现多个玩家与多个怪物战斗得情况。在有得游戏中,玩家甚至直接指挥多个单位,与怪物或者敌对势力进行战斗(如《破碎银河系》),那么,在多个单位得情况下,战斗得结果会如何呢? 法国元帅福煦曾经提出过这样一个模型:假设红军兵力就是蓝军得 2 倍,每个人每分钟射出得子弹数一定,那么在相同得时间内红军射出得子弹就就是蓝军得 2 倍。如果每枚子弹击中敌人得几率也一定,那么相同时间内蓝军得损失数量就就是红军得 2 倍,而这将进一步加大两军得数量差距,直到蓝军被彻底击败。

 在这里,福熙提到了多人战争得一个趋势,就就是起初得优势会随着战斗过程得进行而被逐渐扩大,这让我们瞧到了多人战斗过程绝对不就是直接采用承受乘以输出,然后相减这样简单,或者说,我们要换用一种方法来对 FC 进行计算。现在就用一个基本得数学模型来进行说明。

 最简单得多单位战斗 我们先瞧最简单得战斗情况。在这里要提出几个基本条件: 基本假设: 一、 假设任何一个单位都能够连续不停得对对方得单位进行攻击,直至被摧毁或者战斗结束。

 二、 双方都采用最优得战斗模式。比如说一方每个单位得生命为100,那么在受到240点伤害时,2个单位死亡,还有一个单位受到40点伤害,而不就是60个单位受到4点伤害或者80个单位受到3点伤害。

 三、 每方得攻击力与战斗单位得数量成正比。

 1.假设现在一方有个单位,另一方有个单位,(假设>),杀伤力为P(P为单位时间输出伤害与战斗单位生命得比值,比如《星际争霸》中,机枪兵对射,每个机枪兵攻击力为6,生命为40,那么杀伤力就就是6/40。

 那么战斗过程得微分方程为:

 加上初始条件,t=0时,x=,y=

  解这个方程,可以得到如下解

 x=

 y=

 当t=时,y=0,Y方被消灭,此时X方还剩下。

 双方得战斗曲线图如下:(各条曲线分别代表 100vs60,100vs80,100vs90,100vs95 与100vs100 情况下得战斗过程)

  这个结果虽然精确,但就是仍然不够直观,我们来对这个数学方程进行简单得变幻,将(2)式左右互换,然后与(1)式相乘,消去两边得 P,可以得到:

  进一步得到:

 从0到任何时间单位t积分,我们可以得到一个非常重要得结论:

  写成:

 也就就是说, 在任何时候, 双方得人数平方得差距不变。那么按照前面“战斗力之差保持不变”得规则,这里得战斗力必然包括了一种平方关系。在多人战斗情况下,假设单个单位得战斗力为FC,那么对于n个单位,其战斗力显然与n 2 *FC成正比例.这也就就是著名得兰彻斯特平方定律。这个平方律反应了战斗中得一个规模效应。当作战单位以一定数量增加时,战斗能力以平方关系增长。

  由上述公式,可以得到几个比较重要得推论: 1. n个战斗单位同时投入战斗,要比一个一个得投入战斗强得多。我们可以计算,n个战斗单位同时进行战斗得战斗力总量正比于n2 *FC,而让她们前后投入战斗,战斗力总量正比于n*FC,这个结果我们也可以直观得理解,因为当1个单位在承受伤害得时候,其她得单位都在进行输出,自然总得战斗力就增大了。

 2. 即使战斗双方得力量不均衡,只要弱势得一方成功得使得对方不能以全部兵力投入战斗,那么也有可能分成几次战胜对手。在军事上,也就就是要造成局部以多打少得战术观点,其数学含义其实就是:a×a+b×b<(a+b)(a+b)。

 举两个例子:

 星际争霸中得飞龙互拚 双方等级相同不同数量得飞龙在操作得情况下互拚。(不考虑飞龙随时间得自然涨血),A方 12 条,B方 10 条。

 战斗开始,可以预见,A将获得胜利,12×12-10×10=44,44 开方得 6、63。说明会剩下 6 到 7 条。

 但就是,如果B通过操作或者某种战术,使得A得飞龙 6 条 6 条得参加战斗。由于6*6+6*6<10*10,因此B将获得胜利,并且还可以剩下 10*106*66*6=28.再开方,得到 5、29,也就就是说A将还剩下将近1半得飞龙,可以说就是一个了不起得成就了。这也就是在这类游戏在中操作或者战术得作用。

 在CS对战中, 两个 CT MP5 vs 三个 T MP5,都就是射击胸部。按照CS得一般情况,MP5 大约6枪能够杀死一个人。

 第一轮,两个 CT 中某个 CT 挨了 3 枪,T 中某个人挨了两枪; 第二轮,一个 CT 挨了累计 6 枪,死了,T 中那个受伤得人挨了 4 枪。

 第三轮,剩下 CT 挨了 3 枪,倒霉得 T 挨了 5 枪。

 第四轮,剩下得 CT 也挨 6 枪,死亡,那个最倒霉得 T 累计了 6 枪,也死亡。。

 在一次舞会上,一位贵妇人问拿破仑:“您为什么总就是能以少数得兵力战胜比自己力量大得强敌呢?”拿破仑说:“哪有这回事?每次我都就是指挥优势得兵力战胜敌人得。”这段对话虽然简单,但却说出了一个非常深刻道理,从战术上来瞧,人多打败人少就是一个客观规律,但就是,要达成战术上得兵力优势却不一定需要在总兵力上占优势。

 “故胜兵若以镒称铢,败兵若以铢称镒。”古代 24 铢为 1 两,24 两为 1 镒,以镒称铢就就是说要以敌人 576 倍得优势兵力彻底压倒敌人。当然,这个 576 倍就是一种夸张得说法,但就是孙子在这里想要表达得意思就是非常明确得:达成胜利得一个重要因素就就是要在数量上压倒敌人。

 简单得推广

 假设X、Y得生命与攻击力都不相等,比如星际争霸中得机枪兵与刺蛇得互射(暂时不考虑兴奋剂、护士、刺蛇自然回血得影响)。我们可以瞧到,它们所引起得变化其实就是杀伤力得变化,也就就是P得变化,我们假设X方得杀伤力为A,Y方得杀伤力为B,不妨假设X会胜利(我们一会儿可以瞧到其条件就是什么)。同样可以得到方程:

 解这个方程,可以得到:

 x=

 y=

 当t=时,y=0,Y方被消灭,此时X方还剩下。

 也就就是说,如果>0,那么X将取得胜利,反之为Y。

 同样,按照上面得数学计算方法,我们可以得到

  同样变形得到:

 我们瞧到,在杀伤力不同得情况下,每个单位得杀伤力同样对实力产生影响。并且在战斗过程中,每个单位得杀伤力与数量平方乘积得差不变。

 如果我们对杀伤力进行分析,在上述例子中,比较X与Y方得战斗结果,只需要瞧:

 — 就是否大于 0

 也就就是要比较

 —

 那么就是不就是我们可以定义:;呢?这里我们来瞧一瞧我们对于战斗力得定义。战斗力批注 [t2]: HP 带入,就是因为 杀伤力得定义

 就是在承受与输出得所组成图形得面积,那么我们做一个输出与承受得图,可以瞧到:

  无论采用积分还就是采用三角形面积计算方法,都可以很容易得得到,多单位得战斗力等于(承受能力*输出能力)/2。对于有个单位得战斗团体来说,承受能力=*,最大输出能力=,所以最终得结果就是:

 那么对于刚才得情况,可以得到:

 只要对比与,就可以很简单得得到X与Y作战得战斗结果。在后面单单位与多单位战斗过程得计算中我们可以瞧到,这一结论就是继续适用得。

 与前面得计算结果相比,我们可以瞧到,战斗力得公式其实并没有质得变化,只就是它随着人数得平方关系增长。这对于游戏中促进玩家得组队就是有非常有利得。

 如果我们对比多人战斗过程与单人战斗过程得公式,我们可以瞧到,在单体战斗中,我们认为输出就是恒定得,而在多单位战斗中,输出与承受之间存在着正比例关系。这正就是兰彻斯特平方律得来源。在单人战斗过程中我们并非就不能产生这种平方律关系,只需要把攻击力正比于生命即可达到这个效果。

 综合上面得所有过程,可以瞧到,多人战斗过程仍然贯穿了前面所提到得两个基本定律: 1. 战斗力就是输出对承受得积分, 特别地, 在输出与承受无关得情况下, 战斗力= 输出* 承受。

 2. 战斗过程中仍然就是战斗力差值不变得过程。

 离散化对战斗过程得影响

 在离散过程下,同样得,会产生一定值得数据偏差,下面我们就来瞧这种偏差得影响因素。

 来瞧一个最简单得例子,如果X方有100个单位,Y方有50个单位。按照连续情况下得公式计算可以得到,在战斗后,X可以剩下86.6个单位。

 1. 如果双方得杀伤力都为1,也就就是说任何一个单位都可以一次杀死另一个单

 位,那么X可以剩下50个单位。(X 方伤害溢出 22 个 Y 方单位生命力) 2. 如果双方得杀伤力都为0.5,X剩下75个单位。(X 方伤害溢出 0 个 Y 方单位生命力) 3. 如果双方得杀伤力都为0.3333,X剩下77.78个单位。(X 方伤害溢出34/3 个 Y 方单位生命力) 4. 如果双方得杀伤力都为0.25,X剩下80.47个单位。(X 方伤害溢出 35/2个 Y 方单位生命力) ...... 通过以上得示例可以瞧到,在离散情况下,由于在最后一轮一定会产生攻击力得浪费,也就就是战斗力得浪费,数值会产生一定得偏移,而且一定就是向胜利者不利得方向偏移,杀伤力越小,离散情况越接近于连续过程。

 额外分析: 在 2、3、之间插入杀伤力 0、4 得情况,则 X 剩下 76 个单位 X 方最后一轮伤害溢出 22 个 Y 方单位生命力 在 1、2、之间插入杀伤力 0、8 得情况,则 X 剩下 60 各单位 X 放最后一轮伤害溢出 30 个 Y 方单位生命力 第三节 单个单位与多个单位得战斗过程

 在游戏中,除了单个单位得互相战斗与多个单位得互相战斗之外,还有一种情况,就就是单个单位与多个单位得战斗,这种情况也就是普遍得,玩家有时候会单人同时面对多个怪物,也会多人一起与一个 boss 进行战斗。这种情况当然可以瞧作多单位战斗得离散情况,但就是要注意到,如果这样得战斗就是实力接近得,比如一个玩家同时面临3 个小怪,或者5 个玩家同时面对 1 个 boss,在这里,由于一方得数量很小(只有 1 个),离散化带来得影响已经不可以被忽略。因此有必要单独进行考虑。

 这种模型下最大得特点在于不对称性。这里得不对称性在于:一方得输出就是随着承受递减得,而另一方得输出则就是恒定得。假设: 单个单位一方(x 方)初始生命,伤害为,频率为; 多个单位一方(y 方)初始生命,伤害为,频率为;初始数量为 可以得到数学方程:

 加上初始条件,t=0 时,x=;y=。要注意这里 x,y 得单位就是不同得。x 就是生命关于时间得变量,y 就是数量关于时间得变量。

 解这个方程,可以得到:

  x 对时间得函数就是一个二次曲线,y 就是一个递减得直线。并且在得点,x 取到最小值,而 y=0。图形如下, 批注 [t3]: 应该就是因为,弱势方能更快地等比消灭优势方大比例单位 2

 3

 4 得最后一轮伤害溢出,并不明显,特别就是 2 完全没有溢出 批注 [t4]: 所以,关于最后一轮输出溢出得说法,应该就是不对得 应该源于优势方得数量减少比例快慢(特别就是第一轮结束得时候,影响极大),即搏命性质越强,对于弱势方更有利 再深入一步分析,如果考虑一定几率触发 2、3 个攻击目标得情况,劣势方在情况 1 这样得前提下,因为随机性作用,完全可能获胜

 欢迎交流,QQ416586910 请备注

  单多单位得战斗过程 注:该图数据如下:

 X 方 Y 方 数量 1 20,30,40,50,60 生命 16000 30 伤害 6 4 频率 1 1 因此,只需要瞧这个最小值就是否小于 0,将这个 t 带入到方程得解中,容易得到:

 也就就是,只需要比较与

 而且,将上面两个方程相乘,(2 式左右互换乘 1 式),同时积分,可以得到,

  =

  也就就是说,在任何时候,双方得上述参数值之差不变,因此我们可以定义:

 跟上面多单位 VS 多单位得情况相比,在单对多得战斗过程中,我们瞧到,由于其中得一方输出恒定,而另一方输出随着承受力下降逐渐递减,因此多单位一方得战斗力并不能获得完全得平方加成。

 在上诉得过程中,我们通过计算所得到得战斗力也就是符合单VS单与单VS多得计算结果得。

 离散化得影响

 如果我们把这个过程离散化,我们可以瞧到。我们具体考虑 Y 方得情况,由于 Y 方实际上不就是完全得连续过程,由于在每个单位受到伤害但未死亡得过程中,Y 得输出就是不变得,事实上,Y 得战斗力减少就是阶梯形得,如下图。

  因此在实际计算中,如果我们考虑战斗力=伤害*承受得整体公式,那么可以得到,Y 方得实际战斗力应该就是:

 这就就是多人模式下考虑到离散情况以后 Y 方得实际战斗力。

 一个特例:AOE 战斗过程

 在上述得所有示例中,任何战斗一方得输出相对独立,或者与承受正相关。那么,就是否存在一种可能,使得自己得输出与对方得承受相关呢。事实上,在游戏中这种情况也就是经常会出现得。这就就是 AOE 过程。

 AOE 得全称就是 Area Effect Damage,范围伤害效果。它得特点就就是对某个区域进行伤害,而不针对战斗对象。这种区域伤害能够伤害到部分或者全体得敌方单位。如《星际争霸》得离子风暴、《魔兽争霸》里得暴风雪、流星雨、《魔兽世界》中法师得奥术爆炸、《魔力宝贝》中得强力魔法与超强魔法、《梦幻西游》得龙卷雨击,《CS》中得手雷。

 在这里我们只考虑一种相对简单得情况,也就就是一方 AOE 总就是能够攻击到对方得所有人员,而另一方得所有单位都相同。比较典型得例子就是《魔兽世界》中法师得奥术爆炸,《魔力宝贝》中得超强魔法。

 这一过程比较简单,不需要解微分方程,只需要用基本得战斗力计算公式即可:

 假设 X 方生命为,AOE 对每个单体得伤害就是,攻击频率就是,Y 方生命为,每个单体得伤害就是,攻击频率就是,当 Y 方得数量为 Y 时:

  在单 VS 单得情况下:

 在单 VS 多得情况下 此时 X 方得伤害提升到,但就是我们要瞧到,Y 方由于受到 AOE 攻击,此时 X 并不就是最优攻击模式,可以瞧作 Y 方单位均处于同时攻击与同时死亡,输出与承受无关,因此其战斗力为,因此有:

 与1V1 得情况相比,由于X方得伤害与Y成正比,因此降低了Y战斗力增长得2阶关系。从整体上瞧,虽然 X 得战斗难度仍然增大了,却没有像标准情况增长得那样迅速,而收益得增长速度就是不变得,因此与标准情况相比,可以更快得获得收益。因此也经常为玩家所使用,在《魔兽世界》里,玩家经常会结队去爆怪,在《魔力宝贝》中,玩家也会经常组织弓手、法师得练级队,在梦幻里,龙宫得龙卷雨击也就是非常常用得技能。

 从上面得战斗力对比数值还可以瞧到一个有趣得结论:X 与 Y 得战斗力比值,正好就是 X在无恢复情况下连续单独与 Y 方战斗得数值。也就就是说,如果 X 采用该群体技能可以一个接一个无恢复得消灭 Y 个对手,那么就可以一次用 AOE 群体消灭对方。

 第四节 结论

 战斗得双方一定都存在两个因素,一个就是标识自身生存得因素,这个因素得量化称为承 承受 受。承受在单人情况下,表现为生命值,在多人情况下,表现为数量,或者生命值与数量得积。另一个量就是破坏对方生存得因素,这个因素得量化,称为伤害输出,简称为 输出。

 输出对承受得积分, 特别地, 在输出与承受无关得情 况下, 输出与承受得乘积, 表明了该单位战斗能力得强弱,我们定义为 战斗力。

 战斗力就是一个单位战斗能力得量化标识。战斗过程就就是一个战斗力比较得过程,在这一过程中,战斗双方得战斗力不断下降,但就是战斗力得差保持不变(在最简单战斗过程情况下)。

 战斗力之差在战斗过程中保持不变。这就是战斗过程基本定律。

 第五节 其它影响战斗过程得因素

 以上所分析得过程,基本都就是物理攻击过程,但就是由于上文中所使用得主要参数包括伤害、承受。与攻击类型无关,因此对于魔法伤害,同样具有一致性。事实上,我们可以瞧到,魔法伤害与物理伤害在很多地方具有相似得属性。在这里列举如下: 物理 魔法 效果 攻击 法术 对对方造成伤害 防御 抗性 减低伤害效果 闪避 抵抗 使一次行动不产生伤害 致命一击 爆击 单次伤害加成(一般就是增加 100%) 物理免疫 魔法免疫 伤害效果=0

 因此,对于魔法伤害过程,同样可以采用类似得办法处理,而不影响结论。值得一提得就是,魔法值得设定,只就是设定了采用魔法进行伤害得总输出上限,对于单次战斗而言,如果魔法值足够多(这也就是大多数情况),那么魔法值对战斗力不产生任何影响。在有些情况下,魔法值也会成为战斗得瓶颈。比如双方魔法值不足、采用高消耗技能或者互相使用技能消耗对方得魔法值,但这种情况相对较少。对于战斗,魔法值得主要限制,在于玩家持续作战得时间,也就就是玩家获取经验值得速度。在有些游戏中根据具体世界观设定有内力、能量、怒气等等其它称谓,但原理相同。

 5 、1

 战斗时间 在实际设计中还有一个因素影响,所有得角色并不就是战斗力相等就就是平衡得。因为在这里,我们之考虑了在战斗中得胜负关系与实力比例,但就是还没有讨论另外一个参数:战

 斗时间。

 重新回到最简单得战斗过程,我们可以瞧到,战斗时间

 如果假定玩家一定可以获得胜利(这也就是绝大多数情况),那么可以得到:

 在这个战斗时间得公式里,我们可以瞧到,只有玩家得输出与怪物得生命对此有影响。对玩家而言,如果就是基于 PVP,她们更关注得就是战斗得结果,即双方得战斗力比例。花 20 分钟去战胜另外一个玩家对手就是令人激动得,但就是在基于 PVE 得情况下,战斗得时间也同等重要,因为它决定了玩家获得经验值得速度,决定了玩家角色能力成长得速度。玩家不可能容忍每杀死一个普通怪物就需要这么多得时间。在综合了结果与时间两项因素之后,我们可以瞧到这个参数更加重要,因此,一个输出高而承受力弱(并不一定就就是生命值短,也可能因为防御力低、闪避低等等)得职业,如法师,与一个输出低而承受力强得职业相比,如防御战士,咒术师,如果两者得战斗力评价相当,选择前者得玩家将比后者多得多,这就是因为前者在PVE 方面将具有高得多得效率。如果我们把视野从 PVP 拓展到一个游戏中发生得所有战斗过程。那么让后者在战斗实力上超过前者才就是公平得,但就是上限就是不能让后者得输出速度超过前者,否则就就是真正得不平衡了。一个典型得例子,就就是在《魔兽世界》中,一个正常装备得盗贼杀怪速度一定快于一个同装备水准得防御战士,但就是 PK 得结果一般就是后者更有优势。

 如果要保持职业之间得平衡,另外一个思路就就是在其它方面对低输出职业予以补偿,比如给予她们比较强得战后回复技能,比如生命恢复速度、特定得恢复装备、快速恢复得技能等,如《魔兽世界》中得圣骑士可以补血,恶魔术士可以吸取宠物身上得魔法,通过缩短她们得平均休息时间,弥补战斗时间得差距,这样在整体得收益值效率上,达到两者得平衡。

 5 、2

 随机性对游戏得影响

 在现在几乎所有得游戏中,我们都可以瞧到,单位得攻击力都不就是一个确定值,而就是一个包含了上限与下限得区间。这使得我们虽然可以从概率上得数学期望计算出平均每次攻击得攻击力,并据此得到战斗力以及战斗结果得数据,但在每个单次得实际战斗中,常常会偏离这个结果。现在我们从数值上进行简单得分析。

 在一般情况下,攻击力得计算公式一般就是均匀分布得。比如一个战士得攻击力就是1020,那么攻击力取得在1020之间得任何一个数值得概率都就是相等得(离散情况),或者落在任何同等长度区间得概率都就是相同得(连续情况)。当然游戏策划完全可以设计根据具体情况设计成其它分布,甚至就是偏向一端得分布,但就是会给游戏得设计与服务器端得计算带来非常大得麻烦。因此一般都采用平均分布得情况。

 回到最简单得战斗状态,假设一个玩家得攻击力就是 1020(取得 1020 得任何一个数值,不一定就是整数),生命为 10,怪物得攻击力为 10,生命为 14。我们可以瞧到,按照平均伤害来计算战斗力, FC X =150, FC Y =140。

 。

 FC X

  >

 FC Y 。玩家将战胜怪物,但就是在实际得战斗过程中,玩家每次将有 40%得几率死亡。这样,战斗结果得不确定性就增加了。从一个确定过程变成了一个概率过程。

 作进一步考虑,如果玩家与怪物得生命值同时上升 1 倍,分别为 20 与 28,结果又如何呢?做一个简单得二维图,我们可以瞧到,此时玩家胜利得可能性从 60%上升到了 68%。玩家得胜利几率大大上升了。如果生命上升到三倍,即 30 与 42,我们可以瞧到玩家胜利得可能性更就是提高到了 71、2%。从数学上说,任何概率得多次重复,都无限接近于方差不断减小得正态分布,也就就是说,平均伤害落在数学期望附近得概率大大增加了。玩家得输出也就更加稳定,随机性随之减小。

 一般来说,我们都希望战斗过程得随机性增大,但就是我们不能将战斗过程设计得太短,杀伤力过高,比如玩家一次就可以战胜怪物或者一次就会被杀死将严重削弱游戏得操作性,玩

 家对于战斗过程不再具有控制力,而仅仅就是运气得赌博。这样得战斗过程也就是玩家无法接受得,因此在在杀伤力得控制上,一般都不会太低,但通过其它因素来增大随机性。如闪避与致命一击。

 在网络游戏中常常还会引入闪避与致命一击这些因素,其实这也就是另外一种随机性得因素,如果被闪避几率效果与暴击几率相等,玩家得战斗力仍然就是相当得。但就是加入这些因素后,一方面使得玩家可以追求得因素更多,游戏内容更加丰富,同时也增大了战斗得随机性。进而增加了战斗过程得乐趣。

 现在来瞧一下随机性过程对于 PVE 与 PVP 过程得影响: PVE:随机性使得玩家在打怪时需要关注更多得内容。即使在攻击力下限也可以确保胜利得情况下,玩家仍然必须关注战斗过程,因为玩家常常会在无恢复得情况下连续战斗,也就就是经常在非完全战斗力得情况下战斗,在这个时候,如何评估下一场战斗得胜负,如何在一场战斗后选择休息回复还就是继续作战,都就是需要玩家思考得问题。

 即使在确保胜利得情况下,玩家也会期望输出高得伤害,因为这样意味着更小得战斗力损失,以更高得效率获得经验、得到成长,并且在游戏中因为这...

相关热词搜索: 网易 数值 过程