游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2076|回复: 1

怪物攻击占位设计

[复制链接]

2

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2010-4-1 15:49:00 | 显示全部楼层 |阅读模式
怪物攻击占位设计
1问题
     游戏中的怪物在攻击玩家的时候,需要站在合适的位置。也就是攻击占位的问题。这个问题直接影响到怪物的攻击效果和表现。
2问题的背景
     假定已经有了一些怪物锁定了一个玩家,这些怪物可能是同一种类型的怪物也可能是几种怪物混合成群的。当然玩家的职业和技能也有所不同。关于这些环境因素的影响,后边会详细讨论。
3解决方案
同一种怪按照内圈,中圈,外圈3个层次占位。怪物在确定了内,中,外圈后把和玩家之间的连线和所在圈的交点作为占位点开始移动。以最短到攻击位置为原则。如果目标点已经被占用则已移动距离最短为原则移动到同圈上距离占位点最近的可移动位置为占位点。
这里以最短移动原则是尽快进入攻击位置并展开攻击。先手攻击是占便宜的。当然也可以躲避玩家视线为原则。这里的策略的选择可以根据怪物的类型和玩家的职业技能综合考虑。
下面对方案涉及到的关键概念做解释:
    内圈:最靠近玩家,是攻击玩家距离最短的位置,当然也是玩家攻击怪物距离最短的位置所以是战斗相对最激烈的地方。适合派血多,防高的,攻击距离短的怪物占在这里。站在内圈的位置的怪物基本不做圈上的移动
    中圈:替补的位置,是玩家相对远一点的攻击位置,基本原则是能打到玩家而玩家不容易打到的位置,但是在内圈有怪物因为策略需要退到中圈的时候,方便快速的替补上去。所以如果中圈上的怪物尽量均匀分布。而怪物很少的时候尽量在圈上移动到最有可能有内圈怪物退出的位置上。当然如果上层AI允许的话可以边移动边攻击。
    外圈:是一个玩家基本打不到一个安全距离以外都算是外圈。外圈上的怪物的移动策略和中圈上的怪物的移动策略类似。
4 方案实施细节
     在玩家的对象上面需要绑定一个战斗协调系统(Cooperative Engagement System)。简称CES。CES完成的功能就是前边的提到解决方案。
     当怪物把玩家作为攻击目标的时候时候,需要把自己加入这个玩家的CES系统,同时如果上一个攻击目标不是本玩家则需要将自己从上一个攻击玩家的CES系统清除。当怪物死亡的时候也要从CES系统中清除自己。当玩家离开战斗状态的时候也需要清理CES系统。

对于一种怪物他肯定有自己的内圈,中圈和外圈,这些是不以他配置的技能而改变的。其他的因素只是影响内圈,中圈,外圈的半径的界定。例如远程和近程技能的切换。对于一群同种怪物上层AI可能会影响其中的一些怪物的攻击距离从而导致内圈,中圈和外圈的距离与其他的同种的怪物的不同。下面的讨论是建立在上层AI一直的前提下。对于一只怪物一种技能的讨论。当然一只怪物不同技能,以及多只怪物不同技能的情况后边也会谈及。
层次        半径的计算
内圈        需要考虑玩家的职业已经配备的技能,和怪物本身的攻击距离和配备技能的攻击距离。这里相对固定的是怪物的相关参数,不确定的是玩家的配备的技能。也正是加入玩家的这些动态信息才是内圈半径的确定比较贴近现实。在现实里双方的攻击距离是建立在经验和不断尝试的基础上不断修正的。
中圈        相对比较简单以玩家和远程攻击距离和怪物的远程攻距离这种计算一下就可以了。
外圈        玩家攻击不到的安全距离为最小半径



层次        怪物的选择策略
内圈        内圈怪物的选择策略,以怪物的当前HP的血量为最重要的参数,血越满的优先进入内圈。也可以辅助其他参数。但是这些参数基本限定在实时数据,以做到正反馈,是内圈的怪物有机会退到中圈或者外圈。
中圈         当HP基本已经回满了怪物要在中圈。如果血满了,但是在中圈没有合适的技能攻击到玩家,可以在外圈。当需要的内圈有怪物退出的时候立即转入内圈。如果中圈空虚,但是移动相对较慢的的怪物要尽量保持在中圈。
外圈         当怪物的血很低的时候在外圈。

   
层次        怪物的移动策略
内圈        内圈的怪物的目标就是尽可能的输出DPS,以最少移动为原则,因为一般移动会打断技能。当怪物被选定在内圈那么他应该尽量尽快靠近内圈位置。但是是否移动要由上层的AI决定。也就是说CES系统只是负责确定在那个圈,并计算圈上的位置,但是否移动由上层AI来决定。所以会出现玩家已经移动了但是怪物并不会立即跟着做调整。但是即使怪物的位置已经在完全离开内圈的位置了,但是CES中他还是在内圈,在上层AI决定移动的时候他还是会移动到内圈合适的位置。
中圈        中圈的怪物是为了替补内圈的怪物,这样当内圈满的时候中圈的怪物要尽可能的移动到内圈可能退出的怪物的中圈距离他最近的位置。如果上层的AI设定可以攻击并且怪物有合适的技能攻击玩家,那么中圈的怪物也要尽可能的攻击。中圈的怪物要尽量均匀的分布到中圈上,以尽量少移动多攻击。
外圈        利用玩家攻击不到的条件尽快的恢复。然后补充中圈的空缺,以使中圈的怪物均匀分布以达到最少移动。
5 其他问题
     问题1:CES系统 是否会导致不同的怪物都有同样的占位,使每种不同级别的怪物行为都看上去相似?
           CES系统只有在上层AI移动的时候给出一个合适攻击占位点。上层AI可以不使用CES系统提供的占位点。这样CES系统只是在上层AI需要占位点的时候给出一个合适的占位点但是并不直接驱动怪物移动。CES系统实现占位策略是每种生物所共有的特性。隐蔽靠近敌人,走最短路径,快速攻击,当势力不抵的时候后退,甚至直接逃跑。CES系统只是根据当前的情况切换圈的层次,并在上层AI需要的时候给出占位点。CES系统是一个参考系统,真正的决策还是上层AI。当上层AI有鲜明的个性的时候就突出了每种怪物的特点。CES系统不但不会使差异变的不明显,反而是增强怪物AI特点,使之更鲜明。
问题2:CES系统和上层AI的衔接?
  CES系统会根据敌我双方的实时数据切换圈的层次,并在上层AI需要移动的时候检测圈的层次。
这样如果是在内,中两圈则上层AI应该参考CES系统给出的占位点,并移动。如果在外圈那么上层AI完全可以自己独立选取目标点移动,同时在外圈CES也不会给出占位点。这样上层AI系统和CES的交互就是2个步骤
1 查询CES系统中自己的圈的层次。
2 根据圈的层决定是否使用CES给出的占位点,或者自主移动。
  问题3:多怪多技能和一怪多技能的影响?
      问题中的每种情况都可以由CES针对每只怪物及怪物的不同的技能做差异话运算。同一只怪物使用 不同技能的时候,他的内中外圈是不同的,这样带来的是系统运算量的上升,但是效果可能是最好的。这样就不会呈现出一种怪物整齐的排列在圈上的景象。让玩家感觉是按照阵型排列的。差异化的结果就是同一种怪物会因为个体的实际情况以及当时的占位而表现出明显的不同。这样使怪物的个性更鲜明。

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-4-13 15:25:00 | 显示全部楼层

Re:怪物攻击占位设计

好混乱的攻击设计。
觉得还是针对技能对象进行设计好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-12 03:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表