好乐易贷塔防基础数值模型

上传人:飞*** 文档编号:40350720 上传时间:2018-05-25 格式:DOCX 页数:7 大小:22.28KB
返回 下载 相关 举报
好乐易贷塔防基础数值模型_第1页
第1页 / 共7页
好乐易贷塔防基础数值模型_第2页
第2页 / 共7页
好乐易贷塔防基础数值模型_第3页
第3页 / 共7页
好乐易贷塔防基础数值模型_第4页
第4页 / 共7页
好乐易贷塔防基础数值模型_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《好乐易贷塔防基础数值模型》由会员分享,可在线阅读,更多相关《好乐易贷塔防基础数值模型(7页珍藏版)》请在金锄头文库上搜索。

1、(一)1,塔塔的基础属性有以下三部分:DPH:单次攻击的伤害,这里不考虑暴击与攻击上下限浮动。攻击规模:一次攻击能够攻击到多少个怪物。攻击速度:单位时间内攻击次数,我们可以 1 秒或 60 帧来计算,单位时间同时还会用于怪物移动速度的计算。单位为次/秒。攻击间隔:攻击速度的倒数,指塔两次攻击之间的时间间隔。单位为秒。射程:攻击的最大距离。有的游戏中的塔还会有最小距离的设计。2,怪怪的基础属性有以下几部分:生命值:生命值0 时怪物会死亡。移动速度:单位时间内移动的距离,可以以 1 秒或 60 帧来计算。时间间隔:若某一类怪是以一组的形式登场,每一只怪与下一只怪刷出时间的间隔。同上,时间单位也可以

2、是秒、毫秒或帧。空间间隔:时间间隔*移动速度。该组怪在移动时每个怪与下一个怪的间距。个数:若某一类怪是以一组的形式登场,这一组共有多少个。3,runtime 属性以下由塔和怪的基础属性计算出来的,在游戏过程中动态变化出来的属性:有效路径覆盖:指的是某个怪在塔的射程范围内所移动的距离。通过时间:指的是某个怪通过有效路径覆盖所要消耗的时间,该值=有效路径覆盖移动速度。过量伤害:指的是某个塔在击杀某个怪时浪费掉的伤害值。计算方法为怪的生命值对塔的 DPH 求余数,若为 0,则过量伤害=0;若不为 0,则=DPH-余数。 例:塔的攻击力为 3,怪物生命值为 6,则过量伤害=0;若怪物生命值为 7,则过

3、量伤害=2。塔的攻击力为 100,怪物的生命值为 20,则过量伤害=80。击杀次数:指的是某个塔击杀某个怪所需要的攻击次数。计算方法为怪物的生命值/塔的 DPH,小数部分向上舍入。例:塔的攻击力为 3,怪物生命值为 7,则击杀次数为 3。过量伤害效率:这个值为过量伤害/(DPH*击杀次数),指的是塔击杀某个怪物所浪费的火力所占总火力输出的百分比。0=这个值1。 例:塔的攻击力为 3,怪物生命值为 6,则过量伤害效率=0。若怪物生命值为 7,则过量伤害效率=2/9。若塔的攻击力为 100,怪物生命值为 20,则过量伤害效率=80/100。击杀时间:指的是某个塔击杀某个怪所需要的时间,计算方法为击

4、杀次数*攻击速度。击杀距离:指的是从开始攻击某个怪物到打死这个怪物,这个怪物所走的距离。计算方法为击杀时间*移动速度。 结论 1:若击杀距离有效路径覆盖,则一个怪也打不死。这个很好理解。若塔打死了怪物组的第一只怪后,第二只怪还没有进入有效覆盖路径,则该怪物组无论有多长所有怪都会打死,这引出了结论 2:若击杀距离有效路径覆盖且击杀距离空间间隔,则整个怪物组都会被消灭。麻烦的是第三种情况下,防御塔能打死几个怪。怪 塔看上面的例子,假设有效覆盖路径为 5,击杀距离为 4,怪物间距为 3。当塔打死了第一个怪的时候,怪物死在了 4 的位置,第二个怪则已经进入有效覆盖路径 1 了。当第二个怪被打死在 5

5、上的时候,第三个怪走到了 2。第三个怪距离不够 4 了,无法被打死了,因此一共打死了两只怪,计算公式为:(有效覆盖路径-击杀距离)/(击杀距离-空间间隔)两个括号中的值都必须为正。这就是结论 3。怪物组强度:这个值等于怪物的 HP*怪物的移动速度/怪物的移动间隔。HP 的单位为血,移动速度的单位为距离/秒,移动间隔的单位为距离,因此这个值的单位为血/秒。 这个值的意义在于,上一条中的击杀时间只能计算单体攻击的防御塔能否阻止某一个怪物组的通过,却无法计算某个怪物组能否在范围伤害的防御塔的进攻下通过。有了这个值和下一个值,我们就能进行计算了。有效 DPS:这个值在粗略的情况下可以用 DPH*攻击速

6、度的方法来计算,但这并不精确,这是因为过量伤害的存在,所以正确的算法是 DPH*攻击速度*(1-过量伤害效率)。DPH 的单位为血,攻击速度的单位为 1/秒,因此这个值的单位为血/秒。若这个值高于怪物组强度,在不考虑攻击规模的情况下,则理论上怪物组一定可以被该塔消灭,即便是在无限长的情况下。有效攻击规模:这个值因塔的攻击方式而定。在我们仅考虑 1 个塔对 1 种怪的时候这个值较为容易计算,而在情况复杂时则难以计算。这个值也是一直以来最麻烦的所在。为了更加方便的估算这个值,我采取以下简化了的防御塔与怪物攻击模型: 假设防御塔占 1 个格子,他的周围有 8 个格子,怪物会从这 8 个格子中走过,并

7、且怪物同时只会存在在一个格子中。在这种模型中,怪物的移动速度就被替换成了从一个格子走到下一个格子需要的时间的倒数。这种模型的方便之处在于能够简便地指出塔在攻击的一瞬间,每个怪都应该在哪个格子中,这样就能算出有效攻击规模了。怪 怪 怪怪 塔 怪怪 怪 怪假设某种塔在攻击时,可以对某一个格子内的全部怪物造成伤害,则攻击规模等于那个格子中的怪物数量。假设某个塔能够同时对周围 8 个格子造成伤害,则攻击规模等于 8 个格子中所有怪的数量。进一步的,若有效 DPS*有效供给规模怪物组强度,则在怪物组长度无限的情况下,也无法通过这个塔。(二)1,飞弹行为方式飞弹的行为方式简单来说可以分两种,第一种是追踪目

8、标的,第二种是不会追踪目标的。会追踪目标的飞弹没有碰撞体,只会与其锁定的攻击目标碰撞,只要其速度大于怪物的移动速度,就必然会命中,这类似于魔兽世界中的寒冰箭、闪电箭等法术。相当一部分塔防的飞弹使用的是这种飞弹。不会追踪目标的飞弹会在每一帧,会一切敌方单位进行碰撞检测,若没有碰到任何怪物则有可能飞出屏幕外,这种飞弹更类似于 2D 射击游戏中的飞弹。炫光塔防中的飞弹都是这种类型。第一种飞弹较为容易估算其数值的平衡性,尤其是当飞弹速度为无限大时(想象一下星际争霸中的人族枪兵)。这种飞弹一般移动速度都非常快,若较慢的话则可能永远追不上怪,或者在击中目标前怪物已经撞到了基地上。第二种飞弹会增加游戏的策略

9、性,虽然这会使得战斗结果更加难以预测。如何利用炮塔的索敌逻辑提高其命中率就成了玩家在部署这种防御塔时要面对的一个很重要的抉择。第二种飞弹面临着一个问题。传统炮塔的索敌范围与射程是一致的,而这种飞弹的射程不一定会与传统炮塔的索敌半径吻合,这意味着子弹可能打到索敌半径之外的敌人。这种游戏动态有可能被滥用从而导致不可意料的结果。解决方案无非是修改索敌半径或飞行距离,我们先来看看第一种解决方案使炮塔的索敌范围无限。显然这会大大降低游戏的难度,不过也有对策,比如己方的防御塔能够阻挡己方防御塔的射击。解决方案之二则是使子弹的伤害会衰减,就像现实生活中的子弹威力一样,飞的越远伤害越低。这个概念易于向玩家解释

10、,但如何在画面上表现则是一个问题。2,炮塔转动速率玩过EVE的朋友会对这个概念相当熟悉。炮塔转动速率就是指炮塔在指定时间内旋转的角度。在一些游戏中,只有怪物处于炮塔正面时炮塔才能开火,还有一些游戏炮塔会不断尝试修正角度,但会在修正角度的时候一直尝试开火。在较为简易的塔防中这个值可以为无限大,即炮塔可以瞬间从一个角度旋转到另一个角度,但这会大大破坏游戏的沉浸感,因为这样一来就根本不像一个炮塔了。当飞弹不会追踪目标时,炮塔转动速率对命中率的影响非常大。一般的炮塔并不像玩家一样会预判,如果采用了第二种飞弹,是否要结合炮塔转动速率以及怪物的移动速度来为塔制作预判 AI 是一个设计者需要思考的问题实际上

11、,我本人认为并不需要。如果设计者是为了提高炮塔命中率的话,不如干脆用第一种飞弹,不是吗?o采用炮塔转动速率的设计也会使玩家面临一个战略选择,这与 EVE 类似:距离越近的怪线速度越大,越难以瞄准,因此如何尽量降低怪的线速度就成了玩家需要面对的一个重要抉择,而且学习成本很低,因为玩家很容易观测到持续射击的炮塔的旋转速率。炫光塔防在这方面做得相当不错。3,飞弹的溅射半径指的是飞弹在击中目标时会对多大范围内的敌人造成伤害。这是用于模拟现实中的巨大爆炸对多个附近的单位造成伤害的机制,已经在目前的 RTS 和塔防游戏中普遍采用了。其作用原理为飞弹在要造成伤害时,搜索自身周围一定范围内的所有敌方单位并对其

12、造成伤害。进阶一些的版本,会根据目标距离爆炸点的远近造成不同的伤害,这更加拟真,但很难让玩家直观的理解,因为爆炸半径的阶梯很难直观观测到,所以在塔防游戏中这种设计意义不大。溅射半径是提高有效攻击规模的主要方式之一。但由于其会对溅射半径内的所有敌方单位造成伤害,因此怪物的密度越高其收益也越大。我们之前在制作阿巴顿之战的时候就遇到了这个问题,使得拥有溅射半径的防御塔成为了游戏后期的最优解。后来我们加上了伤害个数限制这一借鉴自魔兽世界的机制,但效果也不是很好因为玩家依然很难观测到。魔兽世界这个机制本身也不是一个好解决方案。我一直认为溅射半径并不是提高有效供给规模的好方法。一种代替手段是散弹,即用多个

13、无溅射半径的小飞弹四散炸裂来造成多次伤害,这种做法不会像溅射半径一样由于半径过大而产生穿透效果,最大伤害值易于估算,而且玩家也容易理解。散弹可以有多种应用方式,可以直接从炮塔中发射而出,也可以当某个飞弹爆炸后产生一系列子飞弹,随着应用方式的不同能够诞生出种种花样的弹幕来哦!还有一种代替方法是弹射,类似于星际争霸中飞龙的攻击方式,或者魔兽世界中的闪电链,或者DOTA中巫妖的大招。当能够产生弹射的距离小于怪物间距时,弹射就会发生,因此相当易于估算伤害值,而且伤害最大值可控。而且其还有一个重要意义是可以穿透,因为这种飞弹都是传统的第一类飞弹,因此与散弹结合也可以产生很有趣的动态。4,飞弹的销毁条件飞

14、弹的销毁条件大多与碰撞相关,只不过碰撞的目标不同。如果我们用第一种飞弹,则飞弹都是在击中目标后销毁。当我们采取第二种飞弹时,它的销毁条件就变得花样更多我们可以为其设定摧毁条件为碰撞过的敌方单位个数,这样一来这个飞弹就能像狙击枪子弹一样穿透很多个敌人并对其造成伤害了。还有一种销毁条件为对目标点攻击,即飞弹到达了指定位置就会爆炸。这类似于飞机投弹,有可能当飞弹爆炸时,目标已经离开了飞弹出发时锁定的位置就像国王守卫军中的大炮。这种销毁条件往往与溅射伤害搭配使用,但这很容易成为统治性策略,在国王守卫军中玩家很容易的就能把大量的怪物用军队抵挡在一个小范围内,然后靠大炮产生超高的有效供给规模而迅速摧毁怪物

15、说通俗点就是“拉到一起 A 了”。销毁条件的不同也能产生大量的策略性。如果是穿透性子弹,玩家会尽力将其安排在弹道能够贯通所有敌方单位的位置上。可以参考保卫萝卜中的三叶草塔、导弹塔和飞机塔。5,炮塔的最小射程 RTS 中很多单位拥有最小射程的设计。当敌人距炮塔的距离小于最小射程时,炮塔无法对其发动攻击,就像敌人距炮塔的距离大于最大射程时一样。若我们采取了第二种飞弹,则最小射程会显得十分尴尬,因为飞弹在这个范围内也会与敌人碰撞,因此有最小射程的防御塔往往采用的是第一种飞弹。有一个有趣的例子是植物大战僵尸中的胆小蘑菇,当他们的附近有敌人时它们就会缩进地里不敢攻击。这种机制也产生了相当有趣的动态,并且比生硬的最小射程机制更容易让玩家理解不过在俯视图的 2D 塔防中这并不是很容易应用。转载于:ManiaHero

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号