下载地址:
下载地址1资源简介:
中文名: AI游戏引擎程序设计原名: AI Game Engine Programming别名: 游戏开发经典丛书, 游戏编程, 游戏开发作者: (美)Brian.Schwab译者: 林龙信张波涛资源格式: PDF版本: 扫描版出版社: 清华大学出版社书号: 9787302163121发行时间: 2007年11月地区: 大陆语言: 简体中文简介: 内容介绍: AI(Artificial Intelligencc,人工智能)在游戏中是一个崭新的概念,如今得到了普遍的关注和重视。人们期望与具有更高智能水平的ai对手对抗,这促进了游戏ai技术的发展。特别是近来,已经出现了栱人类玩家的游戏风格和反应的ai对手,为游戏问题提供创造性解决方案AI的对手,甚至还出现了具有人类心情和情感的ai对手。 本书为游戏开发人员创建现代游戏的ai引擎提供了工具和必要的指导。带领读者从理论入实际的游戏开发,并给出可用的代码框架,详细说明技术的襀方法。另外,该书综合阐述了不同技术的使用范围,并囊括了普遍存在的瓶颈、设计上应该考虑的问题以及优化策略。所有这些内容对游戏ai引擎开发人员都是必不可少的参考资料。 作者介绍Brian Schwab具备十几年的游戏程序设计经验,在Angel Studios公司和DreamWorks公司拥有游戏和AI程序设计的关键职位。现在他是索尼娱乐公司的资深AI程序员。 目录: 第Ⅰ部分 概述第1章 基本定义与概念1.1什么是智能1.2什么是游戏AI1.3什么不是游戏AI1.4该定义与人工智能理论定义的区别1.5可应用的大脑科学与心理学理论1.5.1 大脑的组织结构1.5.2 知识库与学习1.5.3 认知1.5.4 心智理论1.5.5 有限最优1.5.6 来自机器人技术的启发1.6小结第2章 AI引擎的基本组成与设计2.1决策与推理2.1.1 解决方案的类型2.1.2 智能体的反应能力2.1.3 系统的真实性2.1.4 游戏类型2.1.5 游戏内容2.1.6 游戏平台2.1.7 开发限制2.1.8 娱乐限制2.2输入处理机与感知2.2.1 感知类型2.2.2 更新规则2.2.3 反应时间2.2.4 门限2.2.5 负荷平衡2.2.6 计算代价与预处理2.3导航2.3.1 基于网络2.3.2 简单避免与位势场2.3.3 地图节点网络2.3.4 导航网格2.3.5 组合系统2.4综合考虑2.5小结第3章 Alsteroids:AI试验平台3.1 GameObj类3.2 GameObj类的Update()函数3.3 Ship对象3.4 其他游戏对象3.5 GameSession类3.5.1 主逻辑与碰撞检测3.5.2 对象清除3.5.3 主飞船和宝物的产生3.5.4 奖励生命3.5.5 级别和游戏的结束3.6 Control类3.7 AI系统钩子3.8 游戏主循环3.9 小结第Ⅱ部分 游戏类型第4章 角色扮演类游戏4.1 通用AI元素4.1.1 敌人4.1.2 头目4.1.3 非玩家角色4.1.4 店员4.1.5 队员4.2 有用的AI技术4.2.1 脚本4.2.2 有限状态机4.2.3 消息4.3 示例4.4 例外4.5 需要改进的具体游戏元素4.5.1 角色扮演不等于战斗4.5.2 语法机器4.5.3 任务发生器4.5.4 更好的队员AI4.5.5 更好的敌人4.5.6 完全真实的市镇4.6 小结第5章 冒险类游戏5.1 通用AI元素5.1.1 敌人AI5.1.2 非玩家角色5.1.3 协作元素5.1.4 感知系统5.1.5 摄像机5.2 有用的AI技术5.2.1 有限状态机5.2.2 脚本系统5.2.3 消息系统5.2.4 模糊逻辑5.3 示例5.4 需要改进的领域5.4.1 潜行目标的附加类型5.4.2 传统冒险根源的回归5.4.3 更好的NPC通信5.4.4 用户界面5.4 小结第6章 即时策略游戏6.1 通用AI元素6.1.1 个体单元6.1.2 雇佣个体单元6.1.3 指挥官与中级战略元素6.1.4 高层战略性AI6.1.5市镇构建6.1.6本土生活6.1.7路径搜索6.1.8 战术与战略支撑系统6.2 有用的AI技术6.2.1 消息6.2.2 有限状态机6.2.3 模糊状态机6.2.4 层次化AI6.2.5 规划6.2.6 脚本6.2.7 数据驱动AI6.3 示例6.4 需要改进的领域6.4.1 学习6.4.2 确定AI元素何时受困6.4.3 AI助手6.4.4 对抗人物6.4.5 多战略少战术6.5 小结第7章 第一人称/第三人称射击游戏7.1 通用AI元素7.1.1 敌人7.1.2 敌人头目7.1.3 死亡竞赛对手7.1.4 武器7.1.5 协作智能体7.1.6 分队成员7.1.7 路径搜索7.1.8 空间推理7.2 有用的AI技术7.2.1 有限状态机7.2.2 模糊状态机7.2.3 消息系统7.2.4 脚本系统7.3 示例7.4 需要改进的领域7.4.1 学习与对手建模7.4.2 个性7.4.3 创造力7.4.4 预测7.4.5 更好的会话引擎7.4.6 动机7.4.7 更好的分队AI7.5 小结第8章 平台游戏8.1 通用AI元素8.1.1 敌人8.1.2 敌人头目8.1.3 协作元素8.1.4 摄像机8.2 有用的AI技术8.2.1 有限状态机8.2.2 消息系统8.2.3 脚本系统8.2.4 数据驱动系统8.3 示例8.4 需要改进的领域8.4.1 摄影技巧8.4.2 帮助系统8.5 小结第9章 射击类游戏9.1 通用AI元素9.1.1 敌人9.1.2 敌人头目9.1.3 协作元素9.2 有用的AI技术9.2.1 有限状态机9.2.2 脚本系统9.2.3 数据驱动系统9.3 例外9.4 示例9.5 需要改进的领域9.6 小结第10章 运动类游戏10.1 通用AI元素10.1.1 教练或团队级别AI10.1.2 玩家级别AI10.1.3 路径搜索10.1.4 摄像机10.1.5 混杂元素10.2 有用的AI技术10.2.1 有限状态机与模糊状态机10.2.2 数据驱动系统10.2.3 消息系统10.3 示例10.4 需要改进的领域10.4.1 学习10.4.2 游戏平衡10.4.3 玩法创新10.5 小结第11章 赛车游戏11.1 通用AI元素11.1.1 轨迹AI11.1.2 交通11.1.3 行人11.1.4 敌人与战斗11.1.5 非玩家角色11.1.6 其他竞争行为11.2 有用的AI技术11.2.1 有限状态机11.2.2 脚本系统11.2.3 消息系统11.2.4 遗传算法11.3 示例11.4 需要改进的领域11.4.1 除犯罪以外的其他感兴趣领域11.4.2 更多的只能AI敌人11.4.3 永不落幕的游戏世界11.5 小结第12章 经典策略游戏12.1 通用AI元素12.1.1 对手AI12.1.2 AI助手12.2 有用的AI技术12.2.1 有限状态机12.2.2 Alpha-Beta搜索12.2.3 神经网络12.2.4 遗传算法12.3 例外12.4 示例12.5 需要改进的领域12.5.1 创造力12.5.2 速度12.6 小结第13章 格斗类游戏13.1 通用AI元素13.1.1 敌人13.1.2 碰撞系统13.1.3 敌人头目13.1.4 摄像机13.1.5 动作和冒险元素13.2 有用的AI技术13.2.1 有限状态机13.2.2 数据驱动系统13.2.3 脚本系统13.3 示例13.4 需要改进的领域13.5 小结第14章 著名的混杂游戏类型14.1 文明游戏14.2 天神游戏14.3 战争游戏14.4 飞行模拟游戏14.5 音乐游戏14.6 益智游戏14.7 人工生命游戏第Ⅲ部分 基本的AI引擎技术第15章 有限状态机15.1 FSM概述15.2 FSM骨架代码15.2.1 FSMState类15.2.2 FSMMachine类15.2.3 FSMAIControl类15.3 在实验平台上实现FSM控制的飞船15.4 示例实现15.4.1 Control类编码15.4.2 状态编码15.5 使用该系统的AI的性能15.5.1 基于FSM系统的优势15.5.2 基于FSM系统的劣势15.6 范例扩展15.6.1 层次化FSM15.6.2 基于消息和事件的FSM15.6.3 具有模糊转换的FSM15.6.4 基于堆栈的FSM15.6.5 多重并发FSM15.6.6 数据驱动FSM15.6.7 惯性FSM15.7 最优化15.7.1 FSM和感知的负荷平衡15.7.2 LOD AI系统15.7.3 共享数据结构15.8 设计上考虑的因素15.8.1 解决方案的类型15.8.2 只能体的反应能力15.8.3 系统的真实性15.8.4 游戏类型15.8.5 游戏内容15.8.6 游戏平台15.8.7 开发限制15.8.8 娱乐限制15.9 小结第16章 模糊状态机16.1 FuSM概述16.2 FuSM骨架代码16.2.1 FuSMState类16.2.2 FuSMMachine类16.2.3 FuSMAIControl类16.3 在实验平台上实现FuSM控制的飞船16.4 示例实现16.4.1 添加Saucer16.4.2 其他的游戏修改16.4.3 FuSM系统16.5 控制类代码16.6 使用该系统的AI的性能15.6.1 基于FuSM系统的优势15.6.2 基于FuSM系统的劣势16.7 范例扩展16.7.1 有限数量当前状态的FuSM16.7.2 作为角色支持系统FuSM16.7.3 在较大FSM中作为单一状态的FuSM16.7.4 层次化FuSM16.7.5 数据驱动FuSM16.8 最优化16.9 设计上考虑的因素16.9.1 解决方案的类型16.9.2 智能体的反应能力16.9.3 系统的真实性16.9.4 游戏类型16.9.5 游戏平台16.9.6 开发限制16.9.7 娱乐限制16.10 小结第17章 基于消息的系统17.1 消息概述17.2 消息的骨架代码17.2.1 Message对象17.2.2 MessagePump类17.3 客户端句柄17.4 在AIseroids实验平台上的示例代码17.4.1 MessState类17.4.2 MessMachine类17.4.3 MessAIControl类17.5 状态编码17.6使用该系统的AI的性能17.6.1 消息系统的优势17.6.2 消息系统的劣势17.7 范例扩展17.7.1 消息优先级17.7.2 消息仲裁17.7.3 自动和扩展的消息类型17.8 最优化17.9 设计上考虑的因素17.9.1 解决方案的类型17.9.2 智能体的反应能力17.9.3 系统的真实性17.9.4 游戏类型和平台17.9.5 开发限制17.9.6 娱乐限制17.10 小结第18章 脚本系统18.1 脚本概述18.2 AIsteroids测试平台中的脚本实现18.2.1 一种配置脚本语言18.2.2 配置脚本系统的AI性能分析18.2.3 游戏中Lua的嵌入18.3 Lua在AIsteroids测试平台中的实现18.4 Lua脚本系统的AI性能分析18.5 脚本系统的优点18.5.1 快速原型开发18.5.2 更低的门槛18.5.3 更快的AI调试速度18.5.4 更多的用户扩展手段18.5.5 更广的使用范围18.6 脚本系统的缺点18.6.1 执行速度18.6.2 调试难度18.6.3 脚本作用18.6.4 宿主代码和脚本功能的划分18.6.5 需维护的系统数量18.7 范例扩展18.7.1 自定义语言18.7.2 内建调试工具18.7.3 只能脚本IDE18.7.4 游戏脚本自动集成18.7.5 自主修改脚本18.8 优化18.9 设计上考虑的因素18.9.1 解决方案的类型18.9.2 智能体的反应能力18.9.3 系统的真实性18.9.4 游戏类型和平台18.9.5 开发限制18.9.6 娱乐限制18.10 小结第19章 基于位置的信息系统19.1 基于位置的消息系统概述19.1.1 影像图技术(IM)19.1.2 智能地形技术(Smart Terrain)19.1.3 地形分析技术(Terrain Analysis, TA)19.2 各种技术的使用方法19.2.1 占用数据19.2.2 场地控制19.2.3 探路系统的辅助数据19.2.4 危险预警19.2.5 初步战场计划19.2.6 简单战场分析19.2.7 高级战场分析19.3 影像图框架代码及测试平台实现19.3.1 占用影响图19.3.2 占用IM测试平台的使用19.3.3 控制影响图19.3.4 控制IM测试平台的使用19.3.5 逐位影响图19.3.6 逐位IM测试平台的使用19.3.7 其他实现19.4 基于位置的信息系统的优点19.5 基于位置的信息系统的缺点19.6 范例扩展19.7优化19.8设计上考虑的因素19.8.1 解决方案的类型19.8.2 智能体的反应能力19.8.3 系统的真实性19.8.4 游戏类型和平台19.8.5 开发限制19.8.6 娱乐限制19.9 小结第20章 遗传算法20.1 遗传算法概述20.1.1 自然进化规律20.1.2 游戏中的进化20.1.3 遗传算法基本过程20.2 问题的表示20.2.1 基因和基因组20.2.2 适应度函数20.2.3 繁殖20.3 AIsteroids测试平台中遗传算法的实现20.4 遗传算法在测试平台中的性能20.5 基于遗传算法的系统的优点20.6 基于遗传算法的系统的缺点20.6.1 时间代价较大20.6.2 算法性能随机性大20.6.3 结果成败定义模糊20.6.4 最优解不能保证20.6.5 参数调试和扩展难度大20.7 范例扩展20.7.1 蚁群算法20.7.2 协同进化20.7.3 自适应遗传算法20.7.4 遗传程序设计20.8 设计上考虑的因素20.8.1 解决方案的类型20.8.2 智能的反应能力20.8.3 系统的真实性20.8.4 游戏类型20.8.5 平台20.8.6 开发限制20.8.7 娱乐限制20.9 小结第21章 神经网络21.1 自然中的神经网络21.2 人工神经网络概述21.3 神经网络的使用21.3.1 结构21.3.2 学习机制21.3.3 创建训练数据21.4 神经网络活动21.5 在AIsteroids测试平台上实现神经网络21.5.1 NeuralNet类21.5.2 NLayer类21.5.3 NNAIControl类21.6 测试平台的性能21.7 优化21.8 基于神经网络的系统的优点21.9 基于神经网络的系统的缺点21.10 范例扩展21.10.1 其他类型的神经网络21.10.2 神经网络学习的其他类型21.11 设计上考虑的因素21.11.1 解决方案的类型21.11.2 智能体的反应能力21.11.3 系统的真实性21.11.4 游戏类型和平台21.11.5 开发限制21.11.6 娱乐限制21.12 小结第22章 其他技术备忘录22.1 人工生命22.1.1 人工生命在游戏中的用途22.1.2 人工生命科学22.1.3 优点22.1.4 缺点22.1.5 游戏实际可以开发的领域22.2 规划算法22.2.1 在当前游戏中的使用状况22.2.2 优点22.2.3 缺点22.2.4 游戏设计可以开发的领域22.3 生产式系统22.3.1 在当前游戏中的使用状况22.3.2 优点22.3.3 缺点22.4 决策树22.4.1 优点22.4.2 缺点22.4.3 游戏设计可以开发的领域22.5 模糊逻辑22.5.1 优点22.5.2 缺点22.5.3 游戏设计可以开发的领域22.5 小结第Ⅳ部分 AI实战游戏开发第23章 分层式AI设计23.1 基本回顾23.2 分层式结构23.2.1 重现前述示例23.2.2 感知和事件层23.2.3 行为层23.2.4 动画层23.2.5 运动层23.2.6 短期决策层(ST)23.2.7 长期决策层(LT)23.2.8 基于位置的信息层23.3 BROOKS包容式体系结构23.4 游戏层次分解23.4.1 目标23.4.2 分层式超级玛丽23.4.3 AI怪物的实现23.4.4 AI玩家的实现23.5 小结第24章 AI开发中普遍关心的问题24.1 有关设计的问题24.1.1 数据驱动系统时需考虑的问题24.1.2 “一根筋”(OTM) 综合症24.1.3 多细节层次(LOD)AI24.1.4 支持AI24.1.5 通用AI设计思想24.2 有关娱乐的问题24.2.1 所有重要的趣味性因素24.2.2 随机感24.2.3 一些令AI系统看上去非常愚蠢的因素24.3 有关产品的问题24.3.1 保持AI行为的一致性24.3.2 提前思考游戏参数的调试问题24.3.3 预防AI系统的位置行为24.3.4 注意设计人员使用方式的差异性24.4 小结第25章 调试25.1 AI系统的通用调试25.2 可视化调试25.2.1 提供各种信息25.2.2 有助于调试25.2.3 时序信息25.2.4 监视状态转变25.2.5 有助于控制台调试25.2.6 调试脚本语言25.2.7 双功能影响图25.3 Widget25.3.1 实现25.3.2 BasicButton25.3.3 Watcher25.3.4 RadioButton25.3.5 OnOffButton25.3.6 ScrubberWidget25.3.7 程序集成25.4 小结第26章 总结与展望26.1 AI引擎设计总结26.2 AI游戏的未来展望附录 有关CD-ROM的说明
飞网下载站,免费下载共享资料,内容涉及教育资源、专业资料、IT资源、娱乐生活、经济管理、办公文书、游戏资料等。