基于dota游戏中护甲的建模与稳定性分析
自 动 控 制 原 理 课 程 论 文 NOV.9 2011
基于 dota 游戏中护甲的建模与一阶系统分析
王君迪
(浙江大学 控制科学与工程学系 09级)
摘 要:采用 dota游戏引擎中的基本护甲计算公式,采用一阶系统单位阶跃响应分析,得出护甲收
益递减论,并与另一种护甲收益不变论进行比对分析。提出有效生命理论,分析实战中英雄的出装
思路,对死灵法师进行举例分析,分析其在实战中的受伤害数据,与其能在大型比赛中出现的原因。
关键词:dota;护甲;伤害
...
自 动 控 制 原 理 课 程 论 文 NOV.9 2011
基于 dota 游戏中护甲的建模与一阶系统
王君迪
(浙江大学 控制科学与工程学系 09级)
摘 要:采用 dota游戏引擎中的基本护甲计算
,采用一阶系统单位阶跃响应分析,得出护甲收
益递减论,并与另一种护甲收益不变论进行比对分析。提出有效生命理论,分析实战中英雄的出装
思路,对死灵法师进行举例分析,分析其在实战中的受伤害数据,与其能在大型比赛中出现的原因。
关键词:dota;护甲;伤害
Dota(Defence of the Ancients,远
古的守护), 是指基于魔兽争霸 3:冰封王
座(由暴雪娱乐公司出品)的多人即时对
战自定义地图,可支持 10个人同时连线游
戏。Dota以对立的两个小队展开对战,通
常是 5v5,游戏目的是守护自己的远古遗
迹(近卫方的生命之树、天灾方的冰封王
座),同时摧毁对方的远古遗迹。DotA是
目前唯一被暴雪娱乐公司官方认可的魔兽
争霸的 RPG地图【1】。Dota 在大学生中的风
靡程度令人咂舌,而随着玩家对游戏的理
解深入,本身存在于游戏中的许多数学模
型被挖掘出来进行研究。本文将对 dota
中英雄护甲进行建模分析,并利用控制理
论中的稳定性分析,对 dota中英雄的物品
出装选择提出更好的
。
因为游戏中对战的情况十分复杂,可
能是一对多可能是多对多进行战斗,我们
假设一种最简单的情况,就是只有两个英
雄进行战斗。我们可以把它想象成俩个斗
士在决斗,每个斗士都自己的生命值(即
HP),当生命值为 0时,即为失败。每个人
都有自己技能,施法技能时需要消耗自己
的魔法值,每个人都有三个属性力量,敏
捷,智力,每点力量增加 19点生命值,0.03
点每秒的生命值回复,每点智力增加 13
点魔法值,0.04点每秒的魔法值回复,每
点敏捷增加一点攻击伤害,每 7点增加一
点护甲,每点增加 1%的攻击速度。护甲顾
名思义就是斗士的铠甲,可以减少伤害。
首先设护甲值为 m
可推出:[1-(m*0.06)/(1+m*0.06)]*
初始伤害=最终伤害【2】
(这是暴雪娱乐公司(Dota的平台)
在他制作的游戏里定下的一条规则,如果
当目标造成的伤害类型是普通伤害时,这
条规则就会生效。这是这篇文章的基础之
一。)
如果我们将护甲看成一个系统,那么
这个系统就是一个简单的一阶环节:
50/3
m + 50/3
将初始伤害设成系统输入 u(m)。最
终伤害就是系统输出 y(m)。
下面建立另一个基本理论。
一个游戏人物会有他的生命值上限,
当他受到等于自己生命值上限的普通伤害
时,一般不会死亡,因为他有护甲抵挡一
部分的伤害。
因此,当你拥有护甲,你承受到的伤
害就只是原始伤害的一部分,你可以在护
甲的帮助下,去承受比你生命值上限更多
自 动 控 制 原 理 课 程 论 文 NOV.9 2011
的物理伤害。
如果一个游戏人物受到的伤害全部都
是物理伤害,要计算他的实际伤害承受能
力,不光要看生命值,也要算上护甲。
所以在这里我们就可以定下一个概念:
有效生命。有效生命是指在考虑护甲减伤
的前提下,一个游戏人物最多能承受多少
物理伤害。
其数学表述就是:有效生命=实际
HP/(1-护甲减伤百分比)。
1 护甲基础分析
护甲系统是一个简单的一阶惯性环节。
如果受到一次普通攻击伤害,则可将
其看成单位冲激输入。单位冲激响应为:
y(t)=(50/3)*e-(50/3)t
此处 t不代表时间,代表护甲值的提
升量。
一般情况下受到的伤害是持续的,所
以可看称单位阶跃输入,单位阶跃响应为:
y(t)=1-e-(50/3)t
其中,
td=0.693*0.06=0.04,ts=3*0.06=0.18.
【3】
ts的意义是护甲在一般情况下可减少
18%的伤害。
按暴雪规定的公式:
1点护甲提供的伤害减免为:5.66%
(游戏中的数据会被四舍五入)
2点护甲提供的伤害减免为:10.71%
3点护甲提供的伤害减免为:15.25%
4点护甲提供的伤害减免为:19.35%
5点护甲提供的伤害减免为:23.08%
10点护甲提供的伤害减免为:37.50%
20点护甲提供的伤害减免为:54.55%
而根据一阶系统单位阶跃响应曲线
可以发现单纯地提高护甲会使护甲的
效益越来越小。所以我们提出本文重要理
论:护甲收益递减论。
而上面的计算值就是护甲收益递减论
的论据:护甲免百分比与护甲值不成正比,
在护甲值线性提升过程中,护甲免伤百分
比的提升愈趋缓慢。从 0开始,提升 1点
护甲能提升 5.66%的伤害减免,但如果已
经有了 4点护甲,提升一点护甲却只能提
升 3.73%的伤害减免。
但是,如果我们这样看问题:如果原
本伤害减免为 0%,从 0%提升到 20%,面对
1000点物理伤害,就是减少了 200点伤害,
20%的伤害;如果原本伤害减免为 60%,从
60%提升到 80%,面对 1000点物理伤害,
同样减少了 200点伤害,但却减少了 50%
的伤害。因此实际上每点护甲的收益都是
一样的。
但根据一阶系统单位阶跃响应图,似
乎的确是递减的。说明模型存在一定的缺
陷。下面进行进一步研究。
2 护甲与有效生命计算
我们先回顾一下我们的实际伤害公式:
[1-(护甲值*0.06)/(1+护甲值
*0.06)]*初始伤害=最终伤害
其中,(护甲值*0.06)/(1+护甲值
*0.06)就是护甲带来的减伤。
也就是这条公式=(1-伤害减免)*初始
伤害=最终伤害
由于有效生命是和最终伤害挂钩的,
自 动 控 制 原 理 课 程 论 文 NOV.9 2011
所以
有效生命=生命值/(1-伤害减免)
既有效生命=生命值/[1-(护甲值
*0.06)/(1+护甲值*0.06)]
最后整理得有效生命=生命值+护甲值
*0.06*生命值
分析以上情况,我们可以发现,有效
生命的引入,相当于在原系统引入了反馈,
受到的伤害值与有效生命的损失直接挂钩,
提高了系统的稳定性,有利于进一步分析。
下面来分析有效生命的最终公式。这
是一个一次函数。由上面的分析过程,可
以看成是系统的闭环特征方程。这个方程
告诉我们,每点护甲值都能增加 6%的有效
生命。
由于缺乏相关一阶系统的理论,我在
这里做出一个猜测,就是一阶系统的特征
方程可以用来判断输入对输出的影响百分
比。但由于笔者学习知识不够深入,这里
缺乏相关手段,是需要改进的地方。
举例分析。
以一个 1000生命值的模型为例,我们
把和初始生命值比较起来的提升称为绝对
提升,和同模型少一点护甲的情况的有效
生命比较起来的提升称为相对提升:
当它拥有 1点护甲,它得到 5.66%的
物理伤害减伤,实际可承受伤害(既有效
生命)是 1060,增加 60点,绝对提升 6%,
相对提升 6%
它拥有 2点护甲,它得到 10.71%的物
理伤害减伤,有效生命是 1120,增加 60
点,绝对提升 6%,相对提升 5.66%
当它拥有 3点护甲,它得到 15.25%的
物理伤害减伤,有效生命是 1180,增加 60
点,绝对提升 6%,相对提升 5.35%
我们可以看到,在这个模型里,每点
护甲都相当于增加了 60点有效生命值,也
就是初始生命值的 6%。
但如果我们和少一点护甲的情况的有
效生命比较起来,他又发生递减了。对的,
护甲就是一个绝对提升不递减,但相对提
升会递减的效果。
换句简单的说,护甲收益就是一个等
差数列,而不是等比数列。当护甲等差的
增长时,有效生命会得到等差的增长,但
护甲等比的增长时,有效生命并不会等比
的增长。
实战举例。
首先要说一点:DotA里的护甲值是有
小数的,所以游戏中的护甲免伤可能跟计
算结果略有出入。
图中的死灵法师,拥有 1204的生命值,
每点护甲能为他提供 6%的有效生命,也就
是每点护甲相当于增加 72点生命值,按照
1力量=19生命值计算,每点护甲相当于
3.8点力量。
他的总有效生命是 2068,也就是忽视
先锋盾格挡,忽视生命恢复,至少需要输
出 2068点物理伤害才能杀死他。
如果他在满生命值的情况下,点下梅
肯,护甲增加 2点,他的有效生命相当于
再提高了 144点。
梅肯本身提供 95点生命值,再加上
5.7点护甲(5点敏捷提供 0.7点护甲,我
们可以把梅肯的护甲增加效果视为 6 点),
在这个例子中,能把死灵法的有效生命从
1508提升到 2068,这里边尚未计算梅肯使
用效果。
所以在实际游戏中,死灵法师出肉装
(撑血撑防)是一项十分正确的决定。由
我们的计算可以看出,有效生命在不使用
自 动 控 制 原 理 课 程 论 文 NOV.9 2011
梅肯的情况下已经达到 2000,而其本身的
技能“死亡脉冲”的加血效果也未计算在
内。如果将模型扩展到承受伤害与输出伤
害比,死灵法师的技能由于兼具加血与伤
害的效果而使其有效生命值更大。所以在
现在的 CW比赛中,死灵法师也经常作为核
心来打后期。
3
护甲提供的减伤效果是递减的,但护
甲提供的有效生命是线性的。
当护甲等差的增长时,有效生命会得
到等差的增长,但护甲等比的增长时,有
效生命并不会等比的增长。
由于 DotA里所有的护甲增加效果都
是等差增加,所以一般的“递减”都可以
无视。
总之,护甲收益递减论和护甲收益固
定论,他们都没有错误。只是同一问题从
不同角度观察从而得出的不同结论而已。
而从控制理论的角度来看,之所以会
有两种论,是因为引入了反馈和没有反馈
的系统有不同的输出响应。
从本文的分析中也可以看出,本模型
依然是十分简单的模型,可以考虑的因素
还有很多,dota虽然是一个游戏,但是仔
细思考之后还是有很多值得计算的内容。
毕竟在暴雪公司设计游戏的工程师,也是
行业里的顶级工程师。游戏里的模型千变
万化,可以分析的内容还是很多的,本文
只是从简单的数学和一阶系统的角度进行
了管中窥豹而已。
参考文献(Reference)
【1】 百度百科,dota,http://baike.baidu.com/view/20844.htm
【2】 暴雪官方主页,游戏原理,
http://www.blizzcn.com/html/moshouzhengba3_WarCraft_/moshouzhengba3gongluejingyan/200
90827/3564.html
【3】 自动控制理论例题习题集,杜继宏等编著,清华大学出版社,2002年 6月第一版,
p69-70.
本文档为【基于dota游戏中护甲的建模与稳定性分析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。