GEMINIGHT 警告:您的浏览器不支持JavaScript将无法正常浏览!
Warning: Your browser does not support JavaScript!
📋注册(Register) | 📛登录(Login)
🎲

主站(Home) »  论坛(Forum)  » 电脑游戏区(PC Game)
26638899

自称:离任管理员
注册于:2005年6月8日
等级:论坛元老
帖子数:9219
积分:58643
阅读权限:60
智者还是弱者?浅谈对FPS游戏AI的看法 1楼
Tags: FPS,AI

Tags引力关联贴

作者:tgfc—Jonsoncao

\N

这里仅仅说说我对halo一类游戏中敌人AI设计的一些简要介绍和看法:

\N

  1. 最短路径的算法:查了查资料,这算是最古老的AI算法之一了,通过不断搜索确定最短路径从而作决策,游戏中的敌人在确定了你的坐标之后,会从初始位置找最到最短的到达你的位置的路径向你冲过来攻击。

\N

\N

  但是在Halo1中不同,敌人会绕路从你的背后袭击,halo在这里改进了算法,但实际上也是一个小小的trick,在用一般算法确定路线之后,AI根据你的所在坐标会生成一个类似函数的东西,让AI进行选择路线,进行简单的if...else判断。

\N

 2. 固定模式活动的AI和带有反应能力的AI:halo1中敌人在某些环境生成函数不变的情况下,做得是重复的事情,而在这些环境函数发生变化之后,敌人会做出相应的反应;这里的环境函数的设计包括了AI的视野,周围的声音,在halo中又加入了一项比较革命的方式,就是友军的决策,友军的决策是这个函数的输出而再次变为另外一个环境函数的输入,中间涉及到模糊逻辑系统的实验设计问题,是比较前沿的

\N

  喜欢模糊逻辑系统(fuzzy logic)的同学们可以去参考我们学院刘应明院士同学写的一本非常著名的书名叫"Fuzzy Logic",里面对与模糊点集拓扑的设计问题进行了阐述,这也是为什么其他fps游戏不愿意设计一个类似halo1的AI系统(包括halo2,AI明显SB了不少)。

🗓2006-4-27 07:46(约18年前)  👁416
26638899

自称:离任管理员
注册于:2005年6月8日
等级:论坛元老
帖子数:9219
积分:58643
阅读权限:60
2楼
\N\N\N

\N
\N

halo1中的AI例子:

\N

\N

  2个elites和8个grunts组成的一组AI,elite分别为A(sub)1,A(sub)2,grunts为A(sub)1(sub)1到A(sub)1(sub)4,和A(sub)2(sub)1到A(sub)2(sub)4;每个元素有自己的独立行动AI,总AI=独立行动func1+func2(func3(影响));主脚标相同的为一组,两组之间独立,下级脚标只会被比自己脚标等级高或者同级的物体所影响,而比自己脚标等级低的影响被忽略掉(简单去掉那个可恶的写不出来的sub符号的意思就是A1影响A2,并且A1会影响A11到A14,A1i会影响A1j,而不能影响A1);影响函数为时间递减函数,当初始时刻不能被忽略的影响递减到允许范围之后,令其等于零,一个相当经典的AI系统就这么建立了。

\N

  得出的结果是什么呢?游戏中的情况就为,带头的elite被杀掉了,grunts们抱头鼠窜,不过过了一会又非常脸皮之厚的来给master chief同学送死来了;某grunt被打掉了,剩下的grunt抱头鼠窜;在elite还在的情况下某个grunt被干掉了,迂回进攻开始

\N

  不过实际上没有我喷的这么简单,因为影响不仅仅是队友间的,声音,视觉也是主要因素,这个一个庞杂的AI系统在halo1的时候就被搞了出来,不得不佩服pentium3之强大对比出来p4超长流水线的渣……

  3. 说说自己YY的未来的AI算法:因为在游戏机上的AI不能同大型机那样设计成多步决策型的AI,因为计算机的SB决定了逐个逐个搜索出来再做出决策是不可能的,大家也不能忍受你开了下枪,结果过一会发现elite一跳一跳过来用光剑把你砍死了(因为多步决策让elite明白过来用光剑砍你你会躲,然后根据你下一步的坐标来砍你,大概就这意思)。

\N

🗓2006-4-27 07:46(约18年前)
26638899

自称:离任管理员
注册于:2005年6月8日
等级:论坛元老
帖子数:9219
积分:58643
阅读权限:60
3楼
普通的这类fps游戏都是t(1)时间的输出作为t(2)时刻决策的输出一步出结果,不像深蓝下棋那样,考虑下一步的N(1)中可能之后再做出N(1)种决策假设,然后在这N(1)种可能性下再次考虑你可能走的N(1)*N(2)中假设……这种在游戏中是不能忍受而且不可能实现的。\N

  基本的情况就是,在本世代中,AI不会有革命性的变化,依然是if...else...的格式加入影响和环境函数,只不过由于物理性能和cpu性能的提升,可能AI决策的环境函数中会加入物理的变化,比如空气的流动(参考db中孙悟空一伙人感受气……),力量的大小(比如发现你的等级够高,出拳的力量够重,就可能会使用迂回战术,而不是无论你用什么武器都一窝蜂的一种攻击方式),而函数的设计也应该会更加细致,增加if...else的分支量,比如头挨打了一种决策,肩膀挨打了一种决策,等等。

\N

  本时代产生某种类似于自发性的AI的话……个人觉得是不可能了……因为貌似还没有人找到这么一种方式或者说是技术上实现的可能性,因为再怎么自发,也是在一个预设的环境中,通过搜索某些关键词来进行相应的反应,比如滚动条4

🗓2006-4-27 07:47(约18年前)

标题(Title):
关键字标签(Tags):
路人:回贴可以不必登录