游戏开发论坛

 找回密码
 立即注册
搜索
查看: 14479|回复: 9

[讨论] 技术交流——DNF类型游戏的AI设计,alsan请进

[复制链接]

98

主题

784

帖子

4495

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4495
发表于 2013-3-24 10:11:13 | 显示全部楼层 |阅读模式
看你们似乎在做一个DNF类型的游戏,我也不知道是单机还是页游,其实这对于策划来说真的不是很重要的事情,但是从你近来提的2个问题来说,我个人经验感觉是你们的项目可能在对你的技术引导上出了问题了,当然也可能出现更可怕的问题,那就是在AI开发块上根本没有主意,只是根据感觉来开发,所以我觉得可以交流下关于这类游戏的AI开发,下面是我们的一些做法,不多废话,开门见山:
确定AI的机制
首先我们会确定这个AI执行的流程,作为一个动作游戏,你必须有几个设计AI的基础去了解:
1,AI是针对执行者(怪物)个体的东西,如果你需要全局打配合,这个更像是事件触发脚本,而不是AI脚本。
2,AI是脚本式的,灵活运用的,所以要先设定AI脚本的框架和运作流程。
3,动作游戏的AI并不像WOW类型,这是个要点,更多的时候AI的思想应该是“根据自己的性格来定行为,目标只是一个参照属性”,这个心法比较绕,但必须掌握。
那么知道了执行者就是怪本身的时候,你设计AI的时候就要将心比心,站在怪的角度上去设计,也就是模拟一个怪的思考,因此你要先策划出AI脚本的执行流程(好吧,家里机器没有Visio,也不喜欢Word的,又懒得用Delphi专门做一个,那就用Windows小画家了……):
AI流程.png
从图中可以看出,实际上执行AI需要的关键几个点:
1,触发点,什么时候触发AI
2,AI脚本,触发的是哪些AI脚本
3,脚本中包含了条件、事件等
以上这些就是你设计AI结构的第一步,确定了AI脚本机制。

触发点
所谓的触发点,其实很好理解,是一个基本条件,就是什么时候,生活中的例子很多,比如:“下班的时候”,这个触发点每天会有1次,就是你们下午6点(我可不知道你们上下班时间,自己想去),一旦达到下午6点了,你的AI会执行什么?(一般来说好孩子执行的是if事情完成then走人else加班等待下一个下班触发点)。那么在动作游戏中,你也需要为你的AI设定触发点
AI触发点.png
当你设计完触发点之后,那么就要开始下一步设计了:

AI脚本
一个AI脚本主要包含的结构有哪些呢?其实是非常简单的,我就不列表了:
1,Conditions:条件,你必须和你们程序商量如何去做这些条件,因为条件中带有与和或等关系,如果程序决定使用脚本语言,如Lua抛给策划接口,那么事情会变得简单,你只需要做一个function,return true或者false,程序根据这个判断是否执行Action就好,不然的话,你可以参考一下星际争霸地图编辑器的Trigger。总之我建议,在无法使用脚本语言的情况下,最好采用类星际Trigger的模式,也就是一个脚本下所有的条件呈and关系,全部满足才算可以执行。
2,Actions:事件,这肯定是按照顺序来一条一条执行的,当然如果还是外抛脚本的话,相对好办些,但是这时候就要注意回调点要定清晰,哪些事件的回调点在哪儿,比如播放某个音效,就应该会有2种回调点,播放开始和播放结束,这应该就是2种Action。
至于条件要什么、事件要什么,这个是你策划要做的工作,根据项目去实际分析,就上次一篇行走的AI,我举例说明你应该提出的需求:
1,条件:我与目标的距离(X和Y就要2个条件),参数:比较符号、值。实际操作时,就是你那个想法,条件就是我与目标Y(>,你设定的距离),若达成本条件达成。
2,条件:计时器,参数:多久以后,也就是判断我上一次思考要走出和目标X距离的时间,如果没有这个条件会怎样?你自己抽象一下,结果就是一旦执行完所有的Action,再次回到脚本逻辑的时候,又发现距离到了,又要走远,这样永远都是在逃离目标。
3,动作:移动,参数:X,Y。你设定的X和Y肯定是你根据计算获得的,这块如何实现你最好程序商量,如果外抛脚本,这个会非常容易,但是核心在于,你这个动作的回调点,是希望走到以后还是开始走了,这个要想清楚,我不多说,根据你实际需要,走到以后可能你的思路会顺些,但是会产生很多逻辑bug,比如走不到怎么办之类的。

拥有AI的单位为了AI需要增加什么
好吧,大概说完了AI机制的流程和AI脚本的结构,我觉得剩下的就是你还得为执行者(运作AI的怪物等)的结构,增加一些属性,这些都是策划必须为程序去设计的,你就出个想法,留你何用?我程序没有想法吗?
AI属性.png

总结
好了,基本上思路已经说得差不多了,但这距离策划案还很远,需要的是你自己的补充,最基本的,你得列出:
1,所有的触发点。
2,所有的条件,当然这是不断扩充的,但你至少得先有一批吧,这个最好和程序商量着定,一些逻辑漏洞没有经验的人是想不全的。
3,所有的动作,同条件,最好商量着来,尤其是回调点。
把这些补全了,这看起来是一份系统策划案了,关于AI的这块,也不必太细,有个3、50页的样子差不多了,字太多了的确没人要看的,最好都是列表和你想法的流程图。
就这么完了?
慢来,这是拉完屎了,你不擦擦?有了这个机制,你之后还必须去做所有的AI详细设计,不管是列表、做个编辑器产生数据还是用脚本方式,这看你们的项目规划,但是策划都得去执行,只会提想法却不会实现的(大多公司现在所谓的主策划、系统策划)都只能算策,还不配有这个划字,按我的说法就是“只会想想,留你何用”。
好了,不废话了,祝愿你们能做出好玩的游戏,国内还没见过做的OK的动作游戏呢,见过的那些都达不到DNF的10%水平。

13

主题

405

帖子

1034

积分

金牌会员

Rank: 6Rank: 6

积分
1034
发表于 2013-3-24 11:03:37 | 显示全部楼层
作为基础,算蛮详细的 顶一个

0

主题

3

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2013-3-24 14:41:56 | 显示全部楼层
初涉,学习了。支持!

1

主题

93

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
QQ
发表于 2013-5-13 16:45:29 | 显示全部楼层
没太明白回调点 是什么意思。。。

0

主题

58

帖子

216

积分

中级会员

Rank: 3Rank: 3

积分
216
发表于 2013-5-13 17:17:22 | 显示全部楼层
好详细啊,要我写就是
检索间隔、条件、事件3个字段

46

主题

1586

帖子

3523

积分

论坛元老

【游戏哲学大师】

Rank: 8Rank: 8

积分
3523
QQ
发表于 2013-5-16 21:57:27 | 显示全部楼层
DNF AI 好吧~

0

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2013-5-30 10:50:18 | 显示全部楼层
可能是站的角度不同,从程序实现的角度说了说,对于策划如何从整个AI架构层面出发,设计一个健壮的逻辑能再传授点吗?

36

主题

1378

帖子

4955

积分

论坛元老

Rank: 8Rank: 8

积分
4955
发表于 2013-5-30 11:24:19 | 显示全部楼层
为什么你们不拿着  魔兽争霸编辑器 中的触发器 去好好玩一玩
毕竟 触发器已经有汉化版的出来了

8

主题

66

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2015-8-5 18:59:19 | 显示全部楼层
学习中,没完全懂

7

主题

448

帖子

784

积分

高级会员

Rank: 4

积分
784
发表于 2018-12-19 17:48:48 | 显示全部楼层
大神 谢谢 期待加入你的队伍 真的很不错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-19 03:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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