第一章绪论
电子游戏常被称为人类的第九艺术,它需要高度的表现力和感染力。游戏内容的制作不仅需要天刁‘的创意,也需要先进高效的开发制作工具。
随着内容复杂程度的不断提高,开发一款游戏的周期常常需要耗费从十数月到数十月,开发人员的规模也常达到数十甚至上百人。开发耗资在数百万到上千万。游戏软件的开发不仅需要适应不断增加的游戏内容的规模,还需要灵活的支持复杂的游戏规则变化和调整。适应需求的不断变化是游戏软件开发面临的严峻考验。
1. 1论文选题背景
游戏人工智能简介
游戏中的人工智能用于模拟具有智能的实体,它通过监听游戏逻辑的状态和逻辑事件,做出合乎游戏规则和所模拟实体角色身份的决策,并发出操纵实体产生行为的指令。
游戏人工智能作为一种工程实践,它不是以实现仿真智能作为目标。其基本目标是通过计算来仿真智能行为从而让玩家获得游戏实体具有智能的错觉。因此实现游戏人工智能常常引用近似方法以及作弊方法。有时甚至为了更好的服务游戏可玩性的需求,游戏人工智能还需要刻意降低对问题求解的正确率和准确性,以模拟计算失误的情况。
游戏人工智能针对不同类型的游戏,可能需要解决完全不同的问题。但相似类型的游戏中仍然存在较多重复或者接近的问题,解决这些反复出现的问题的方法可以被积累和复用。
1.2游戏人工智能中间件在国内外游戏软件开发行业的现状
游戏人一工智能在国内外各种类游戏开发活动中都具有很广泛的需求。目前国外比较知名的可复用游戏人工智能方面的组件以及它们的特点如下所示:
.寻路数据生成
.3d空间推理
.角色团队协作
.跨平台支持
.xaitment
.移动控制组件
.地形生成和寻路组件
.角色行为决策组件
.可视化的编辑器和沙盒
.Psagi s的A工.implant
.超大规模角色行为模拟
.导航网格和地形标一记编辑器
.基于感知器、思考以及动作规范的角色决策规则集成开发环境
.调试环境
.多种商业软件的插件支持
.SpirOps
.提供面向积极性的开发范式
.模拟人类决策过程
.支持增量地进行行为的创作,帮助开发过程维持在线性复杂度
.3d导航网格生成
.角色编辑器,具有自然轨迹的群体寻路模拟
.地形推理
.Havok AI
.基于硬件平台的性能优化
.高效的寻路和路径跟随
.优化的导航网格生成
.高效的路径查询、最近特征地形查询、快速可见性判断,空间对象查 询
这些组件分别涵盖了游戏人工智能领域的众多常见问题,并提供了优秀的解决方案。这些问题包括地形导航图的生成与优化、地形寻路、角色行为的管理、角色移动的控制等等。这些组件己经被不少游戏、计算机现场模拟分析等软件应用。在提高游戏和应用软件的开发效率和质量方面获得了显著的成功和理想的效果。
3.3 系统的架构及设计........... 31-34
3.3.1 层次架构........... 32-33
3.3.2 各层功能和责任........... 33-34
3.4 本章小结........... 34-35
第四章 详细设计........... 35-64
4.1 通用功能和算法........... 35-41
4.1.1 原子字符串........... 35-36
4.1.2 属性容器........... 36-37
4.1.3 事件分发器...........37-39
4.1.4 计算几何算法........... 39
4.1.5 空间管理算法...........39-40
4.1.6 数学工具(Math ........... 40
4.1.7 有限状态机(Finite...........40-41
4.2 人工智能算法层........... 41-48
4.2.1 基于规则的专家...........42-46
4.2.2 人工神经网络........... 46-47
4.2.3 遗传算法........... 47-48
4.3 游戏人工智能功能........... 48-57
4.3.1 角色行为与行为........... 48-52
4.3.2 地形推理........... 52-57
4.4 接口层........... 57-59
4.5 配置、测试与可视........... 59-60
4.6 中间件部分功能在示例........... 60-63
4.7 本章小结........... 63-64
第五章 总结与展望........... 64-66
5.1 总结........... 64
5.2 展望........... 64-66
总结
在本文的研究工作中,收集了具有虚拟战场的游戏开发过程中可能遇到的各种属于游戏人工智能领域的具体问题,分析整理了这些问题的常用解决方案,然后将解决方案按不同技术领域分别作了简单的介绍,最终,实际对面向虚拟战场的电子游戏人工智能中间件系统进行设计与实现。
在设计与实现过程中,讨论了如何提高模块内聚降低模块之间的祸合关系,以便提高各模块的可复用性。分析了需求可能发生扩展和变化的部分,针对这些扩展需求进行了专门的设计,提高中间件的可扩展性。设计了对模块内部状态进行探测和可视化的功能,为模块实际开发过程编写单元测试和最终游戏开发过程中的调试提供了便利,潜在提高了软件正确性和可靠性。