论文部分内容阅读
随着现代游戏工业蓬勃发展,包括实时图形渲染、真实感交互、游戏人工智能等相关技术也在不断迈进。其中游戏人工智能技术受到理论人工智能发展和实时系统的计算时间的双重限制,使得它的发展相对落后于图形和交互技术。另外,因为不同的游戏对人工智能的需求差异很大,所以人工智能模块在游戏开发中并不能完全依赖游戏引擎,也并不存在集成完善的人工智能模块的游戏引擎。在游戏领域中,休闲娱乐游戏对人工智能的要求较低,棋牌类游戏的人工智能比较固定和完备。而即时战略游戏(Real-Time Strategy,本文简称RTS)和第一人称射击游戏(First-Person Shooter,本文简称FPS)由于其题材往往是模拟真实或虚拟战争,对人工智能的要求比较苛刻,这些要求体现在:(1)RTS和FPS游戏中,非玩家控制角色(Non-Player-Controlled Character,本文简称NPC)数量巨大。此类游戏NPC数量往往可以达到几十甚至数百,如此众多NPC的人工智能完全由计算机托管的同时要保证游戏帧率,就对人工智能数学模型的复杂程度提出限制。(2)RTS游戏中,虚拟场景中摄像机处在高处向下俯瞰,可以纵观战场,玩家可观测到群体NPC的宏观行为,对NPC的群体智能提出较高要求。而FPS游戏中,画面模拟人的真实视野,对NPC行为提出更高的要求,NPC做出合理行为的同时又要保证移动和动画播放衔接流畅,给游戏玩家较好的用户体验。本文针对RTS和FPS游戏对人工智能的需求,设计了一套较为完整的战场人工智能系统,既包含一些底层人工智能技术如移动、感知、动画控制等,又着重研究了控制多个群体战斗行为的人工智能架构,最终借助Unity3D游戏引擎予以实现。本论文的主要研究内容包括:(1)设计实现了底层的移动-动画控制系统。改进传统的Flock群聚移动技术,并使用A*寻路算法实现多个NPC群体的移动,使得NPC可以在地图中沿最优路径到达任意位置,并规避动态障碍物。同时将动画管理子系统和移动子系统结合起来,用移动信息来驱动动画播放。(2)设计实现了NPC感知记忆模型,为NPC提供虚拟环境信息输入。结合Unity3D中内置的物理引擎实现NPC的视觉和记忆,并设计一种消息路由机制使得视觉和记忆信息可以在NPC之间共享,以模拟真实战场的士兵相互通信。(3)设计实现了一个地图分析系统。利用视觉和记忆信息进行实时地图分析,NPC可以根据敌人信息对地图的各个区域形势进行判断,并决策生成目标移动地点。(4)设计一个分层控制的人工智能架构。包括指挥官-分队队长-分队成员三个控制层级,运用消息系统实现信息汇报和指令分发。在各控制层添加可执行指令队列的指令机,并为不同控制层分别设计相应的指令内容。不同层级的决策系统将指令压入对应的指令队列,指令即可在各个层级顺序执行,最终以NPC的战场行为表现出来。