游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7046|回复: 11

[讨论] 有关war3中怪物选择攻击目标的疑问

[复制链接]

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2009-12-22 09:27:00 | 显示全部楼层 |阅读模式
此处设定仅仅为个人臆测。
某一目标单位(A)对单位(B)的仇恨为:B单位在A单位视野范围内存在的时间乘以B单位对A单位造成的伤害值。如果处在A单位攻击内的目标对A单位造成的伤害值始终为0时,B单位进入A单位的视野范围内的时间为A单位对B单位的仇恨值。时间的单位为游戏内时间一分钟(AB单位为不同的阵营)。
特殊情况说明:如果B单位被施以保存,传送,回城,无敌,等魔法以后,如果B单位仍然处在A单位的视野范围内,此时A单位对于B单位的仇恨值同样归零,重新开始计算仇恨值。
(游戏中常见的例如玩家在练级野外近战生物的时候通过将受到攻击的单位拉开,使得野外生物对于该单位的仇恨值归零,然后该单位由于受到自动攻击判断的规则驱使重新向野外生物攻击,循环使用该操作可以保证受伤的单位仇恨值低于满血的单位。使得操作优秀的玩家可以通过拉扯受伤单位保持部队整体损血的均衡性,5级以上的野外生物单位在该规则之前有其他设定提高了智慧性。)
但是在魔兽争霸中对战中,可能更加复杂。经过测试有可能是按照
某一目标单位(A)对单位(B)的仇恨值为:首先判断B单位对A单位所在阵营的对立阵营的单位是否造成伤害,然后才是A单位视野范围内存在的时间乘以B单位对A单位造成的伤害值。如果处在A单位攻击内的目标对A单位造成的伤害值始终为0时,B单位进入A单位的视野范围内的时间为A单位对B单位的仇恨值。(此方法解释了小狗练级大点中如果小狗伤血太多可以通过A自己的部队来转移仇恨。)
但是其中有一些地方想不透。
常见的各个练级点练级时哪方的英雄先逃离,怪物就攻击逃离方。以及部分怪物点位中如果怪物有含持续性伤害技能(例如毒标)的时候,该怪物会将每个单位都攻击一遍。
这两个地方应该如何解释,望各位解答下。



18

主题

666

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
发表于 2009-12-22 09:39:00 | 显示全部楼层

Re:有关war3中怪物选择攻击目标的疑问

war3里面应该不是仇恨值来判断的,野怪的AI相对简单,但是细节上做的很不错,我大概说下吧:1最低级的野怪,只会攻击最先攻击他的单位,如果期间攻击他的单位死亡或者离开其攻击距离,则选择周围就近攻击他的单位攻击,选择目标是 召唤单位>普通单位>英雄,高级的野怪的AI,也差不多是这样,不过会判断周围攻击他的单位的剩余生命值,然后选择其中最少的攻击,增加玩家的微操作,也一样是 召唤单位>普通单位>英雄.

你所提到的2点,是AI的设计,特殊的兵种的AI,就可以设计为,受到攻击后,对周围可攻击的普通单位轮流攻击一次,然后在选取一个攻击。第一点没太注意过,应该是谁先攻击野怪,野怪在和谁进入了战斗系统,这个时候逃跑了会被追击吧,没见到过比如说A在打野,B来抓了,B没打过逃跑了,然后野怪去追B了。。。这样的情况没见过。。

0

主题

160

帖子

164

积分

注册会员

Rank: 2

积分
164
发表于 2009-12-22 10:39:00 | 显示全部楼层

Re:有关war3中怪物选择攻击目标的疑问

血量,攻击量,等级
攻击范围,追击范围

1

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2009-12-22 12:02:00 | 显示全部楼层

Re:有关war3中怪物选择攻击目标的疑问

AI分为基础AI和扩展AI
拿DOTA里的防御塔来说,塔会先攻击最先进入它攻击射程的人,这个人死或离开射程后,它会去攻击离他最近的,一般我们会看到,塔先砸死小狗,再砸法师.这个是塔的基础AI.似乎是不存在仇恨值的,因为我们不会看到它没打死小狗就去打英雄或法师,不会出现传说中的OT.
这时候你去点对方英雄,塔就会放弃原目标来砸你.那么这就是塔的扩展AI.
如果你发现DOTA里所有的阵营怪物都是优先攻击点己方英雄的目标,这并不是塔的特性,那么这也是基础AI.

像楼主所说的2点:第一个问题,其实W3里怪物有这样的特性,它会优先攻击血少的单位,你所说的逃离者,正是那个血最少要跑的,楼主想想是不是这样.
至于那第二个问题,是属于特殊怪物的扩展AI,比如说毒标这个技能,打中目标一次后目标开始掉血,再用这个技能打相同目标意义不大,于是设计者给它配了一个扩展AI,就出现了如楼主所说的,它用这个技能打每个单位一次.

18

主题

666

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
发表于 2009-12-22 13:38:00 | 显示全部楼层

Re:有关war3中怪物选择攻击目标的疑问

楼上说错了,在去看看dota里面的防御塔的AI吧,比你说的复杂的多。dota里面似乎是有仇恨的,你老老实实在线上补兵,不主动攻击对方英雄,对方的小兵不会来打你的,如果你在对方小兵攻击的范围内,主动A对方的英雄,小兵会转移攻击目标直接攻击你的。

另外我是第一次听说扩展AI这个词语...孤陋寡闻了..我想,能简单的就尽量简单,难道都要硬加上各种名词吗?

4

主题

330

帖子

341

积分

中级会员

Rank: 3Rank: 3

积分
341
发表于 2009-12-22 13:56:00 | 显示全部楼层

Re:有关war3中怪物选择攻击目标的疑问

争半天。。不如自己去打开WE里的AI编辑器看看。。有个狗屁仇恨值

14

主题

581

帖子

583

积分

高级会员

Rank: 4

积分
583
QQ
发表于 2009-12-22 13:58:00 | 显示全部楼层

Re:有关war3中怪物选择攻击目标的疑问

仇恨这个东西,应该是单机游戏中AI的一种实现方法--评分。

将各种因素细化成具体的数值,然后综合总分,根据不同的分数选择不同的行动而产生人工智能。

这在单机游戏中特别是SLG游戏中是一个非常实用和简单的AI设计方法。

134

主题

1802

帖子

1914

积分

金牌会员

Rank: 6Rank: 6

积分
1914
发表于 2009-12-22 15:01:00 | 显示全部楼层

Re:有关war3中怪物选择攻击目标的疑问

他只有个优先级而已
1.英雄A如果主动攻击对方英雄B则杂兵会攻击英雄A。如果放弃攻击对方英雄B,杂兵也会不攻击你去攻击你的友军非英雄单位。
2.杂兵在攻击建筑的时候如果受到对方非建筑单位攻击则会放弃攻击建筑迎击对方单位。建筑攻击范围内敌人是优先进入范围者。
3.建筑会优先攻击以自己为目标的单位。所以你的杂兵在和对方杂兵对磕的时候,你要去攻击防御塔,则防御塔会放弃攻击杂兵来打你。

另外,这个东西是可以改写的。比如DOTA的杂兵AI,就是通过植入脚本。让第一条后半就不成立。他会持续攻击你几秒。而不是马上放弃攻击你。

1

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2009-12-22 16:38:00 | 显示全部楼层

Re: Re:有关war3中怪物选择攻击目标的疑问

锦绣天: Re:有关war3中怪物选择攻击目标的疑问

楼上说错了,在去看看dota里面的防御塔的AI吧,比你说的复杂的多。dota里面似乎是有仇恨的,你老老实实在线...


呵呵 你都说dota里似乎是有仇恨的 怎么能肯定的说我说错了呢?总不能拿自己不确定的事去否定别人,至于说DOTA里到底有没有仇恨值,你多玩玩自然有体会了.
我说的 适用于大众的叫基础AI 针对某个怪或技能的叫扩展AI
也许许多公司没有这么做 但不代表这么做就是不好的 游戏行业里你我所不知道的还是很多的 你觉得呢?

还说DOTA 野怪的AI大至是相同的,但像人马这种野外怪,他的技能施放是特有的,只有周围人数满足条件,他才踩你,一个敌人它是不会放这个技能的.那么你觉得是给每个野怪做一套AI方便,还是在基础AI上给人马加一个技能施放条件的扩展AI方便?

134

主题

1802

帖子

1914

积分

金牌会员

Rank: 6Rank: 6

积分
1914
发表于 2009-12-22 16:43:00 | 显示全部楼层

Re:有关war3中怪物选择攻击目标的疑问

这个严格来说,不叫AI
只是几个脚本而已。
你们打开WAR3编辑器,那有个脚本编辑器,里面可以靠触发很容易实现怪物攻击目标的转换。

关于仇恨这东西,WAR3里是不叫仇恨的。他只是个攻击优先级的排列,仇恨是有仇恨值这个概念的。这需要大量的数据组成仇恨列表,技能的仇恨量化,所以仇恨不是怪打人就是仇恨。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-14 18:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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