摘要:Dota(Defence of the Ancients,远古的守护), 是指基于魔兽争霸3:冰封王座(暴雪娱乐公司出品)的多人即时对战自定义地图,可支持10个人同时连线游戏。Dota以对立的两个小队展开对战,通常是5v5,游戏目的是守护自己的远古遗迹(近卫方的生命之树、天灾方的冰封王座),同时摧毁对方的远古遗迹。DotA是目前唯一被暴雪娱乐公司官方认可的魔兽争霸RPG。Dota在大学生中的风靡程度令人咂舌,而随着玩家对游戏的理解深入,本身存在于游戏中的许多数学模型被挖掘出来进行研究。游戏中所直接使用的数学计算虽不复杂,但结合的具体情况越多,对其进行分析就会越困难。本文将对dota中英雄护甲进行建模分析。

关键字:魔兽争霸 Dota 护甲 建模 分析

基本属性介绍  
    游戏中所直接使用的数学计算虽不复杂,但结合的具体情况越多,对其进行分析就会越困难。本文对此作出初步的探索。 基本属性 DotA中的每一个英雄,都有生命值(HP)、魔法值(MANA)、攻击力(按中文翻译看应该是应该是ATK,但实际英文却是Damage,即物理伤害)、护甲、射程(分远程近战)这5个显然的基本属性,以及魔法抗性、生命回复速度、魔法回复速度、攻击速度、移动速度这5个非常重要而又不能在游戏界面中直接看到的基本属性。此外,还有攻击前/后摇、施法前/后摇、白天/夜晚视野、弹道这些不常考虑的基本属性等。
    此外,每个英雄还有三种英雄属性,力量、敏捷、智力。这三种英雄属性并不直接起作用,而是转换为基本属性再起作用。力量属性:每增加一点力量,增加19点生命值和0.03点/秒的生命回复速度。敏捷属性:每增加一点敏捷,提升1%的攻击速度,每7点敏捷增加一点护甲。智力属性:每增加一点智力,增加13点魔法值和0.04点/秒的魔法回复速度。
主属性:每个英雄会把力量、敏捷、智力三者中的某一个当作主要属性,每1点主要属性会额外再增加1点攻击力。
护甲与伤害介绍
  伤害分为多种:魔法伤害、物理伤害、神圣伤害等。物理伤害是由英雄的普通攻击造成的,与之相对的是技能攻击,造成魔法伤害。
  护甲能抵消的只有物理伤害,而魔抗可以减免魔法伤害,但是本文只讨论物理伤害。下面进行建模,在这之前先定义几个术语:
  dd :伤害减免(Damage Decrease)
  a : 护甲(Armor)
  HP : 生命值,指英雄护甲为0时实际拥有的血量
  EPHP : 等效额外物理生命(Equivalent Extra Physical HP),是英雄拥有了护甲之后,可以抵挡超出原有HP的物理伤害。我们将这部分可以额外承受的物理伤害视为EPHP。

建模
首先给出dd和a的关系:
  dd ={ (6a%)/(1+6a%), a ≥ 0;
         0.94 ** (-a) - 1, -20 < a < 0;
         71%, a ≤ -20;
  这个公式是暴雪规定的,护甲值可以取小数,但在本文中一律四舍五入保留两位小数并且只讨论a大于等于0的情况。
  
  护甲为0时,能承受的伤害就是HP的大小;护甲大于0时,设初始伤害为c,那么经过护甲的削弱作用,最终伤害e = c × (1 - dd );e的最大值就是HP,那么c的最大值max(c)就是max(e) / (1 - dd);计算出来的max(c)显然就是能承受的最大物理原始伤害,这其实就是EPHP,计算后EPHP = HP×(1 + 6a%),即你要输出HP×(1 + 6a%)大小的物理伤害才能了结一个初始血量为HP护甲为a的英雄。
  那么护甲的存在实际上给予了一个英雄额外的抗物理打击能力,这种能力可以理解为给予了额外的生命,定义为EH,其大小显然为HP× 6a%,若视HP是固定的,那么这种抗打击能力与护甲值a是呈线性关系的。这句话有什么意义呢?对a求导,有▲EH = HP×6%,这意味着,每增加一点护甲,能带来的额外生命都是固定的HP×6%,而跟a的值无关。从而护甲为0时买一个守护指环(能增加2点护甲的装备)和在护甲为10时买,效果是一样的。
  再举一个例子,当一个英雄HP = 1000, a = 10的时候,他是买一个活力之球(增加250点HP)还是买一个板甲(增加10点护甲)更能抗打呢(暂不考虑价格因素)?
  若买活力之球:EPHP = (1000 + 250)× (1 + 10 × 6%) =  2000
  若买板甲:EPHP = 1000 × (1 + 20 ×6%) = 2200
  
  显然买板甲更合适,当然这是在只考虑物理攻击的条件下得出的结论,实际对战中
要考虑的因素有很多,比如技能,魔抗,支援等等,但是本文提供的分析有助于更理性的出装,避免胡乱决策导致的失败。玩游戏也可以数据流。

参考:
[1] http://wenku.baidu.com/view/38edca18a76e58fafab0031e
[2] 王君迪(浙江大学 控制科学与工程学系09级)  《Dota护甲系统完全解析》

Dota游戏中的护甲分析相关推荐

  1. 创建Dota游戏中的兵营类(Barrack),创建3个兵营,通过控制台为每个兵营定义兵营名称,并指定该兵营需要创建的士兵人数。

    上面图标里的这个类是创建的兵营类,下面的代码是兵营类的测试类: package com.xjc; /任务一, 1.创建Dota游戏中的兵营类(Barrack),该类中有一个类成员变量count(类属性 ...

  2. 编写Java程序,创建Dota游戏中的防御塔类,通过两个坐属性显示防御塔所在的位置

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的防御塔类 通过两个坐属性显示防御塔所在的位置 实现思路: 创建防御塔(TowerDefense)类 在该类中定义了两个属性,分别是int类型横 ...

  3. 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...

  4. Dota 游戏中的攻击与伤害分析

    摘要:在上一篇文章中分析了物理攻击和护甲的攻防分析,但是忽略了英雄对战里面一个很重要的角色--技能攻击.实际上,除了少数后期英雄可以直接靠平砍(即物理攻击)杀人外,大部分英雄尤其是智力英雄还是要靠技能 ...

  5. 图像识别算法在视频游戏中的应用分析

    真人在线视频棋牌游戏的兴起.如下图: 一般来说,现在全部都是采用二维码扫瞄方式来读牌.下图是采取图像识别技术来自动完成,淘汰二维码. 流程: 1. 高清网络摄像机NetCam架设于在桌面正上方,角度不 ...

  6. OpenAI在Dota 2游戏中虽败犹荣

    就在上周,人类对机器人进行了反击.实际上是在视频游戏中打败了他们. 在一场三强争霸赛中,两支职业战队打败了伊隆·马斯克创建的研究实验室OpenAI开发的人工智能机器人.他们所玩的Dota 2(刀塔:守 ...

  7. 用数学方法分析哪类游戏中的AI难度最大

    2019年是AI在游戏领域全面开花的一年. 1月,DeepMind开发的AlphaStar在<星际争霸II>比赛中以5:0战胜了职业选手MaNa:4月,OpenAI开发的OpenAI Fi ...

  8. Fruit Ninja(水果忍者)游戏源代码下载、分析(中)---可运行Android,Ios,Window,Mac,Html5平台

    背景: 上一篇,已经实现了水果不断向上抛的效果和开始界面,这一篇我们将分析如何切水果,获得分数:运行demo需要配置好CocosEditor,暂不支持其他工具.demo是跨平台的,可移植运行andro ...

  9. 分析游戏中的金钱交易:Multi-view Attention Networks

    文章目录 1.摘要 2.引入 3.游戏数据描述 3.1 逆水寒中的游戏日志 3.2 社交图分析 3.3 行为序列 3.4 角色属性构造 4.MVAN模型 4.1 multi-graph attenti ...

最新文章

  1. MathType公式行距设置的方法
  2. C#进行Visio二次开发之Shape的Data1、Data2、Data3的用处
  3. 一本书学会可视化设计 pdf_「读书」数据之美-一本书学会可视化设计
  4. django学习第77天Django框架ORM
  5. python手机号码正确编程_python 小练习之生成手机号码
  6. Java_io体系之CharArrayReader、CharArrayWriter简介、走进源码及示例——13
  7. linux导出mysql下ssl证书_Linux系统下生成证书 https证书
  8. 使用python读取mid/mif文件
  9. Unmapped Spring configuration files found. Please configure Spring facet
  10. 如何设计测试用例?为什么要设计测试用例?
  11. 安卓CameraX基于虹软人脸识别程序开发
  12. 计算机二级wps office考试题库,计算机等级考试题库:WPS Office试题
  13. 08-sketch插件
  14. 手把手教你申请计算机软件著作权(2)—— 生成代码文件身份证明
  15. 基于JavaScript网上商城开发设计 毕业设计-附源码261620
  16. C++中构造函数的超详细讲解
  17. 我的生命该如何度过?
  18. ICASSP 2019----Deep Speaker Representation Using Orthogonal Decomposition and Recombination for Spea
  19. 2021牛年一月营销活动指导方案
  20. Golang【gorm】模型

热门文章

  1. js - 点击按钮关闭当前网页探究
  2. electron 无法复制粘贴问题
  3. 去除Windows安全警报
  4. Mac上几款免费的MySql客户端
  5. excel数据整理:网络表格数据规范处理方法
  6. echarts 区域缩放
  7. Android 自定义键盘输入内容监听
  8. (免费分享)基于ssm在线点餐
  9. 升级linux 4.9内核,ubuntu14.04 内核升级到 linux kernel 4.9
  10. 单位、家庭建筑物电气、电子设备防雷举措