博舍

游戏人工智能编程案例精粹(修订版)(游戏开发畅销经典图书,提供权威专业解决方案) PDF下载 游戏人工智能编程案例精粹pdf

游戏人工智能编程案例精粹(修订版)(游戏开发畅销经典图书,提供权威专业解决方案) PDF下载

第1章数学和物理学初探1.1数学1.1.1笛卡尔坐标系1.1.2函数和方程1.1.3三角学1.1.4矢量1.1.5局部空间和世界空间1.2物理学1.2.1时间1.2.2距离1.2.3质量1.2.4位置1.2.5速度1.2.6加速度1.2.7力1.3总结

第2章状态驱动智能体设计2.1什么是有限状态机2.2有限状态机的实现2.2.1状态变换表2.2.2内置的规则2.3WestWorld项目2.3.1BaseGameEntity类2.3.2Miner类2.3.3Miner状态2.3.4重访问的状态设计模式2.4使State基类可重用2.5全局状态和状态翻转(StateBlip)2.6创建一个StateMachine类2.7引入Elsa2.8为你的FSM增加消息功能2.8.1Telegram的结构2.8.2矿工Bob和Elsa交流2.8.3消息发送和管理2.8.4消息处理2.8.5Elsa做晚饭2.8.6总结

第3章如何创建自治的可移动游戏智能体3.1什么是自治智能体3.2交通工具模型3.3更新交通工具物理属性3.4操控行为3.4.1Seek(靠近)3.4.2Flee(离开)3.4.3Arrive(抵达)3.4.4Pursuit(追逐)3.4.5Evade(逃避)3.4.6Wander(徘徊)3.4.7ObstacleAvoidance(避开障碍)3.4.8WallAvoidance(避开墙)3.4.9Interpose(插入)3.4.10Hide(隐藏)3.4.11PathFollowing(路径跟随)3.4.12OffsetPursuit(保持一定偏移的追逐)3.5组行为(GroupBehaviors)3.5.1Separation(分离)3.5.2Alignment(队列)3.5.3Cohesion(聚集)3.5.4Flocking(群集)3.6组合操控行为(CombiningSteeringBehaviors)3.6.1加权截断总和(WeightedTruncatedSum)3.6.2带优先级的加权截断累计(WeightedTruncatedRunningSumwithPrioritization)3.6.3带优先级的抖动(PrioritizedDithering)3.7确保无重叠3.8应对大量交通工具:空间划分3.9平滑

第4章体育模拟(简单足球)4.1简单足球的环境和规则4.1.1足球场4.1.2球门4.1.3足球4.2设计AI4.2.1SoccerTeam类4.2.2场上队员4.2.3守门员4.2.4AI使用到的关键方法4.3使用估算和假设4.4总结

第5章图的秘密生命5.1图5.1.1一个更规范化的描述5.1.2树5.1.3图密度5.1.4有向图(Digraph)5.1.5游戏AI中的图5.2实现一个图类5.2.1图节点类(GraphNodeClass)5.2.2图边类(GraphEdgeClass)5.2.3稀疏图类(SparseGraphClass)5.3图搜索算法5.3.1盲目搜索(UninformedGraphSearches)5.3.2基于开销的图搜索(cost-basedgraphsearchs)5.4总结

第6章用脚本,还是不用?这是一个问题6.1什么是脚本语言6.2脚本语言能为你做些什么6.2.1对话流6.2.2舞台指示(StageDirection)6.2.3AI逻辑6.3在Lua中编写脚本6.3.1为使用Lua设置编译器6.3.2起步6.3.3Lua中的石头剪子布6.3.4与C/C++接口6.3.5Luabind来救援了!6.4创建一个脚本化的有限状态自动机6.4.1它如何工作?6.4.2状态(State)6.5有用的链接6.6并不是一切都这么美妙6.7总结

第7章概览《掠夺者》游戏7.1关于这个游戏7.2游戏体系结构概述7.2.1Raven_Game类7.2.2掠夺者地图7.2.3掠夺者武器7.2.4弹药(Projectile)7.3触发器7.3.1触发器范围类(TriggerRegion)7.3.2触发器类(Trigger)7.3.3再生触发器(RespawningTrigger)7.3.4供给触发器(Giver-Trigger)7.3.5武器供给器(WeaponGivers)7.3.6健康值供给器(HealthGiver)7.3.7限制生命期触发器(LimitedLifetimeTrigger)7.3.8声音通告触发器(SoundNotificationTrigger)7.3.9管理触发器:触发器系统(TriggerSystem)类7.4AI设计的考虑7.5实现AI7.5.1制定决策(DecisionMaking)7.5.2移动(Movement)7.5.3路径规划(PathPlanning)7.5.4感知(Perception)7.5.5目标选择(TargetSelection)7.5.6武器控制(WeaponHandling)7.5.7把所有东西整合起来7.5.8更新AI组件7.6总结

第8章实用路径规划8.1构建导航图8.1.1基于单元8.1.2可视点8.1.3扩展图形8.1.4导航网8.2《掠夺者》游戏导航图8.2.1粗颗粒状的图8.2.2细粒状的图8.2.3为《掠夺者》导航图添加物件8.2.4为加速就近查询而使用空间分割8.3创建路径规划类8.3.1规划到达一个位置的一条路径8.3.2规划路径到达一个物件类型8.4节点式路径或边式路径8.4.1注释边类示例8.4.2修改路径规划器类以容纳注释边8.4.3路径平滑8.4.4降低CPU资源消耗的方法8.5走出困境状态8.6总结

第9章目标驱动智能体行为9.1勇士埃里克的归来9.2实现9.2.1Goal_Composite::ProcessSubgoals9.2.2Goal_Composite::RemoveAllSubgoals9.3《掠夺者》角色所使用的目标例子9.3.1Goal_Wander9.3.2Goal_TraverseEdge9.3.3Goal_FollowPath9.3.4Goal_MoveToPosition9.3.5Goal_AttackTarget9.4目标仲裁9.4.1计算寻找一个健康物件的期望值9.4.2计算寻找一种特殊武器的期望值9.4.3计算攻击目标的期望值9.4.4计算寻找地图的期望值9.4.5把它们都放在一起9.5扩展9.5.1个性9.5.2状态存储9.5.3命令排队9.5.4用队列编写脚本行为9.6总结

第10章模糊逻辑10.1普通集合集合运算符10.2模糊集合10.2.1用隶属函数来定义模糊的边界10.2.2模糊集合运算符10.2.3限制词10.3模糊语言变量10.4模糊规则10.4.1为武器的选择设计模糊语言变量10.4.2为武器的选择设计规则集10.4.3模糊推理10.5从理论到应用:给一个模糊逻辑模块编码10.5.1模糊模块类(FuzzyModule)10.5.2模糊集合基类(FuzzySet)10.5.3三角形的模糊集合类10.5.4右肩模糊集合类10.5.5创建一个模糊语言变量类10.5.6为建立模糊规则而设计类10.6《掠夺者》中是如何使用模糊逻辑类的10.7库博方法10.7.1模糊推理和库博方法10.7.2实现10.8总结

附录AC++模板附录BUML类图附录C设置你的开发环境

跋参考文献

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇