内容简介
   
 3D游戏编程大师技巧(套装共2册)+游戏人工智能编程案例精粹(修订版)2本
 9787115282798 
 9787115291134
  
 3D游戏编程大师技巧(套装共2册)
     - 出版社: 人民邮电出版社; 第1版 (2012年7月13日)
- 外文书名: 
- 丛书名: 
- 平装: 1086页
- 语种: 简体中文
- 开本: 16
- ISBN: 9787115282798
- 条形码: 9787115282798
- 商品尺寸: 23.8 x 18.8 x 4.8 cm
- 商品重量: 1.6 Kg
目录
     (上册)    
第一部分 3D游戏编程简介    
第1章 3D游戏编程入门 2    
1.1 简介 2    
1.2 2D/3D游戏的元素 3    
1.2.1 初始化 4    
1.2.2 进入游戏循环 4    
1.2.3 读取玩家输入 4    
1.2.4 执行AI和游戏逻辑 4    
1.2.5 渲染下一帧 4    
1.2.6 同步显示 5    
1.2.7 循环 5    
1.2.8 关闭 5    
1.3 通用游戏编程指南 7    
1.4 使用工具 11    
1.4.1 3D关卡编辑器 14    
1.4.2 使用编译器 15    
1.5 一个3D游戏范例:Raiders 3D 17    
1.5.1 事件循环 37    
1.5.2 核心3D游戏逻辑 38    
1.5.3 3D投影 39    
1.5.4 星空 41    
1.5.5 激光炮和碰撞检测 41    
1.5.6 爆炸 41    
1.5.7 玩Raiders3D 41    
1.6 总结 41    
第2章 Windows和DirectX 简明教程 43    
2.1 Win32编程模型 43    
2.2 Windows程序的最小需求 44    
2.3 一个基本的Windows应用程序 48    
2.3.1 Windows类 49    
2.3.2 注册Windows类 53    
2.3.3 创建窗口 53    
2.3.4 事件处理程序 55    
2.3.5 主事件循环 59    
2.3.6 构建实时事件循环 63    
2.4 DirectX和COM简明教程 64    
2.4.1 HEL和HAL 65    
2.4.2 DirectX基本类 66    
2.5 COM简介 67    
2.5.1 什么是COM对象 68    
2.5.2 创建和使用DirectX COM接口 70    
2.5.3 查询接口 70    
2.6 总结 72    
第3章 使用虚拟计算机进行3D游戏编程 73    
3.1 虚拟计算机接口简介 73    
3.2 建立虚拟计算机接口 75    
3.2.1 帧缓存和视频系统 75    
3.2.2 使用颜色 78    
3.2.3 缓存交换 80    
3.2.4 完整的虚拟图形系统 82    
3.2.5 I/O、声音和音乐 82    
3.3 T3DLIB游戏控制台 83    
3.3.1 T3DLIB系统概述 83    
3.3.2 基本游戏控制台 83    
3.4 T3DLIB1库 89    
3.4.1 DirectX图形引擎体系结构 89    
3.4.2 基本常量 89    
3.4.3 工作宏 91    
3.4.4 数据类型和结构 92    
3.4.5 函数原型 95    
3.4.6 全局变量 99    
3.4.7 DirectDraw接口 100    
3.4.8 2D多边形函数 103    
3.4.9 数学函数和错误函数 110    
3.4.10 位图函数 111    
3.4.11 8位调色板函数 115    
3.4.12 实用函数 118    
3.4.13 BOB(Blitter对象)引擎 119    
3.5 T3DLIB2 DirectX输入系统 126    
3.6 T3DLIB3声音和音乐库 131    
3.6.1 头文件 132    
3.6.2 类型 132    
3.6.3 全局变量 133    
3.6.4 DirectSound API封装函数 133    
3.6.5 DirectMusic API封装函数 138    
3.7 建立最终的T3D游戏控制台 140    
3.7.1 映射真实图形到虚拟接口的非真实图形 141    
3.7.2 最终的T3DLIB游戏控制台 143    
3.8 范例T3LIB应用程序 152    
3.8.1 窗口应用程序 152    
3.8.2 全屏应用程序 153    
3.8.3 声音和音乐 154    
3.8.4 处理输入 154    
3.9 总结 157     
第二部分 3D数学和变换    
第4章 三角学、向量、矩阵和四元数 160    
4.1 数学表示法 160    
4.2 2D坐标系 161    
4.2.1 2D笛卡尔坐标 161    
4.2.2 2D极坐标 163    
4.3 3D坐标系 165    
4.3.1 3D笛卡尔坐标 165    
4.3.2 3D柱面坐标 168    
4.3.3 3D球面坐标 168    
4.4 三角学 170    
4.4.1 直角三角形 171    
4.4.2 反三角函数 172    
4.4.3 三角恒等式 173    
4.5 向量 173    
4.5.1 向量长度 174    
4.5.2 归一化 174    
4.5.3 向量和标量的乘法 175    
4.5.4 向量加法 176    
4.5.5 向量减法 176    
4.5.6 点积 177    
4.5.7 叉积 179    
4.5.8 零向量 180    
4.5.9 位置和位移向量 180    
4.5.10 用线性组合表示的向量 181    
4.6 矩阵和线性代数 182    
4.6.1 单位矩阵 183    
4.6.2 矩阵加法 184    
4.6.3 矩阵的转置 184    
4.6.4 矩阵乘法 184    
4.6.5 矩阵运算满足的定律 186    
4.7 逆矩阵和方程组求解 186    
4.7.1 克来姆法则 188    
4.7.2 使用矩阵进行变换 190    
4.7.3 齐次坐标 191    
4.7.4 应用矩阵变换 192    
4.8 基本几何实体 198    
4.8.1 点 198    
4.8.2 直线 199    
4.8.3 平面 202    
4.9 使用参数化方程 206    
4.9.1 2D参数化直线 206    
4.9.2 3D参数化直线 208    
4.10 四元数简介 213    
4.10.1 复数理论 213    
4.10.2 超复数 218    
4.10.3 四元数的应用 223    
4.11 总结 226    
第5章 建立数学引擎 227    
5.1 数学引擎概述 227    
5.1.1 数学引擎的文件结构 228    
5.1.2 命名规则 228    
5.1.3 错误处理 229    
5.1.4 关于C++的最后说明 229    
5.2 数据结构和类型 229    
5.2.1 向量和点 230    
5.2.2 参数化直线 231    
5.2.3 3D平面 232    
5.2.4 矩阵 233    
5.2.5 四元数 236    
5.2.6 角坐标系支持 237    
5.2.7 2D极坐标 237    
5.2.8 3D柱面坐标 238    
5.2.9 3D球面坐标 239    
5.2.10 定点数 239    
5.3 数学常量 240    
5.4 宏和内联函数 242    
5.4.1 通用宏 246    
5.4.2 点和向量宏 246    
5.4.3 矩阵宏 247    
5.4.4 四元数 249    
5.4.5 定点数宏 249    
5.5 函数原型 250    
5.6 全局变量 253    
5.7 数学引擎API清单 253    
5.7.1 三角函数 254    
5.7.2 坐标系支持函数 255    
5.7.3 向量支持函数 258    
5.7.4 矩阵支持函数 266    
5.7.5 2D和3D参数化直线支持函数 277    
5.7.6 3D平面支持函数 281    
5.7.7 四元数支持函数 285    
5.7.8 定点数支持函数 293    
5.7.9 方程求解支持函数 298    
5.8 浮点单元运算初步 300    
5.8.1 FPU体系结构 301    
5.8.2 FPU堆栈 302    
5.8.3 FPU指令集 303    
5.8.4 经典指令格式 306    
5.8.5 内存指令格式 306    
5.8.6 寄存器指令格式 307    
5.8.7 寄存器弹出指令格式 307    
5.8.8 FPU范例 307    
5.8.9 FLD范例 308    
5.8.10 FST范例 308    
5.8.11 FADD范例 310    
5.8.12 FSUB范例 312    
5.8.13 FMUL范例 313    
5.8.14 FDIV范例 314    
5.9 数学引擎使用说明 315    
游戏控制台 317    
5.10 关于数学优化的说明 317    
5.11 总结 317    
第6章 3D图形学简介 318    
6.1 3D引擎原理 318    
6.2 3D游戏引擎的结构 319    
6.2.1 3D引擎 319    
6.2.2 游戏引擎 320    
6.2.3 输入系统和网络 320    
6.2.4 动画系统 321    
6.2.5 碰撞检测和导航系统 324    
6.2.6 物理引擎 325    
6.2.7 人工智能系统 326    
6.2.8 3D模型和图像数据库 327    
6.3 3D坐标系 328    
6.3.1 模型(局部)坐标 328    
6.3.2 世界坐标 331    
6.3.3 相机坐标 334    
6.3.4 有关相机坐标的说明 341    
6.3.5 隐藏物体(面)消除和裁剪 342    
6.3.6 透视坐标 347    
6.3.7 流水线终点:屏幕坐标 356    
6.4 基本的3D数据结构 363    
6.4.1 表示3D多边形数据时需要考虑的问题 363    
6.4.2 定义多边形 365    
6.4.3 定义物体 369    
6.4.4 表示世界 373    
6.5 3D工具 374    
动画数据和运动数据 375    
6.6 从外部加载数据 375    
6.6.1 PLG文件 375    
6.6.2 NFF文件 378    
6.6.3 3D Studio文件 381    
6.6.4 Caligari COB文件 387    
6.6.5 Microsoft DirectX .X文件 389    
6.6.6 3D文件格式小结 389    
6.7 基本刚性变换和动画 389    
6.7.1 3D平移 389    
6.7.2 3D旋转 390    
6.7.3 3D变形 392    
6.8 再看观察流水线 393    
6.9 3D引擎类型 394    
6.9.1 太空引擎 394    
6.9.2 地形引擎 395    
6.9.3 FPS室内引擎 396    
6.9.4 光线投射和体素引擎 397    
6.9.5 混合引擎 398    
6.10 将各种功能集成到引擎中 399    
6.11 总结 399    
第7章 渲染3D线框世界 400    
7.1 线框引擎的总体体系结构 400    
7.1.1 数据结构和3D流水线 401    
7.1.2 主多边形列表 403    
7.1.3 新的软件模块 406    
7.2 编写3D文件加载器 406    
7.3 构建3D流水线 414    
7.3.1 通用变换函数 414    
7.3.2 局部坐标到世界坐标变换 420    
7.3.3 欧拉相机模型 423    
7.3.4 UVN相机模型 426    
7.3.5 世界坐标到相机坐标变换 437    
7.3.6 物体剔除 440    
7.3.7 背面消除 444    
7.3.8 相机坐标到透视坐标变换 446    
7.3.9 透视坐标到屏幕(视口)坐标变换 451    
7.3.10 合并透视变换和屏幕变换 455    
7.4 渲染3D世界 457    
7.5 3D演示程序 461    
7.5.1 单个3D三角形 461    
7.5.2 3D线框立方体 464    
7.5.3 消除了背面的3D线框立方体 466    
7.5.4 3D坦克演示程序 467    
7.5.5 相机移动的3D坦克演示程序 470    
7.5.6 战区漫步演示程序 472    
7.6 总结 476     
(下册)    
第三部分 基本3D渲染    
第8章 基本光照和实体造型 478    
8.1 计算机图形学的基本光照模型 478    
8.1.1 颜色模型和材质 480    
8.1.2 光源类型 487    
8.2 三角形的光照计算和光栅化 493    
8.2.1 为光照做准备 497    
8.2.2 定义材质 498    
8.2.3 定义光源 502    
8.3 真实世界中的着色 507    
8.3.1 16位着色 507    
8.3.2 8位着色 507    
8.3.3 一个健壮的用于8位模式的RGB模型 508    
8.3.4 一个简化的用于8位模式的强度模型 511    
8.3.5 固定着色 515    
8.3.6 恒定着色 517    
8.3.7 Gouraud着色概述 533    
8.3.8 Phong着色概述 535    
8.4 深度排序和画家算法 535    
8.5 使用新的模型格式 540    
8.5.1 分析器类 540    
8.5.2 辅助函数 543    
8.5.3 3D Studio MAX ASCII格式.ASC 546    
8.5.4 TrueSpace ASCII.COB格式 548    
8.5.5 Quake II二进制.MD2格式概述 557    
8.6 3D建模工具简介 558    
8.7 总结 561    
第9章 插值着色技术和仿射纹理映射 562    
9.1 新T3D引擎的特性 562    
9.2 更新T3D数据结构和设计 563    
9.2.1 新的#defines 564    
9.2.2 新增的数学结构 566    
9.2.3 实用宏 567    
9.2.4 添加表示3D网格数据的特性 568    
9.2.5 更新物体结构和渲染列表结构 574    
9.2.6 函数清单和原型 577    
9.3 重新编写物体加载函数 583    
9.3.1 更新.PLG/PLX加载函数 584    
9.3.2 更新3D Studio .ASC加载函数 595    
9.3.3 更新Caligari .COB加载函数 596    
9.4 回顾多边形的光栅化 601    
9.4.1 三角形的光栅化 601    
9.4.2 填充规则 604    
9.4.3 裁剪 606    
9.4.4 新的三角形渲染函数 607    
9.4.5 优化 612    
9.5 实现Gouraud着色处理 613    
9.5.1 没有光照时的Gouraud着色 614    
9.5.2 对使用Gouraud Shader的多边形执行光照计算 624    
9.6 基本采样理论 632    
9.6.1 一维空间中的采样 632    
9.6.2 双线性插值 634    
9.6.3 u和v的插值 635    
9.6.4 实现仿射纹理映射 637    
9.7 更新光照/光栅化引擎以支持纹理 640    
9.8 对8位和16位模式下优化策略的最后思考 645    
9.8.1 查找表 645    
9.8.2 网格的顶点结合性 646    
9.8.3 存储计算结果 646    
9.8.4 SIMD 647    
9.9 最后的演示程序 647    
Raider 3D II 648    
9.10 总结 651    
第10章 3D裁剪 652    
10.1 裁剪简介 652    
10.1.1 物体空间裁剪 652    
10.1.2 图像空间裁剪 655    
10.2 裁剪算法 656    
10.2.1 有关裁剪的基本知识 657    
10.2.2 Cohen-Sutherland裁剪算法 661    
10.2.3 Cyrus-Beck/梁友栋-Barsky裁剪算法 662    
10.2.4 Weiler-Atherton裁剪算法 665    
10.2.5 深入学习裁剪算法 667    
10.3 实现视景体裁剪 667    
10.3.1 几何流水线和数据结构 669    
10.3.2 在引擎中加入裁剪功能 670    
10.4 地形小议 691    
10.4.1 地形生成函数 692    
10.4.2 生成地形数据 700    
10.4.3 沙地汽车演示程序 700    
10.5 总结 704    
第11章 深度缓存和可见性 705    
11.1 深度缓存和可见性简介 705    
11.2 z缓存基础 708    
11.2.1 z缓存存在的问题 709    
11.2.2 z缓存范例 709    
11.2.3 平面方程法 711    
11.2.4 z坐标插值 713    
11.2.5 z缓存中的问题和1/Z缓存 714    
11.2.6 一个通过插值计算z和1/z的例子 715    
11.3 创建z缓存系统 718    
11.4 可能的z缓存优化 734    
11.4.1 使用更少的内存 734    
11.4.2 降低清空z缓存的频率 734    
11.4.3 混合z缓存 736    
11.5 z缓存存在的问题 736    
11.6 软件和z缓存演示程序 736    
11.6.1 演示程序I:z缓存可视化 737    
11.6.2 演示程序II:Wave Raider 738    
11.7 总结 743     
第四部分 高级3D渲染    
第12章 高级纹理映射技术 746    
12.1 纹理映射——第二波 746    
12.2 新的光栅化函数 754    
12.2.1 最终决定使用定点数 754    
12.2.2 不使用z缓存的新光栅化函数 755    
12.2.3 支持z缓存的新光栅化函数 758    
12.3 使用Gouruad着色的纹理映射 759    
12.4 透明度和alpha混合 765    
12.4.1 使用查找表来进行alpha混合 766    
12.4.2 在物体级支持alpha混合功能 778    
12.4.3 在地形生成函数中加入alpha支持 784    
12.5 透视修正纹理映射和1/z缓存 786    
12.5.1 透视纹理映射的数学基础 787    
12.5.2 在光栅化函数中加入1/z缓存功能 793    
12.5.3 实现完美透视修正纹理映射 799    
12.5.4 实现线性分段透视修正纹理映射 803    
12.5.5 透视修正纹理映射的二次近似 808    
12.5.6 使用混合方法优化纹理映射 812    
12.6 双线性纹理滤波 814    
12.7 mipmapping和三线性纹理滤波 819    
12.7.1 傅立叶分析和走样简介 819    
12.7.2 创建mip纹理链 822    
12.7.3 选择mip纹理 830    
12.7.4 三线性滤波 836    
12.8 多次渲染和纹理映射 837    
12.9 使用单个函数来完成渲染工作 837    
12.9.1 新的渲染场境 838    
12.9.2 设置渲染场境 840    
12.9.3 调用对渲染场境进行渲染的函数 842    
12.10 总结 851    
第13章 空间划分和可见性算法 852    
13.1 新的游戏引擎模块 852    
13.2 空间划分和可见面判定简介 852    
13.3 二元空间划分 856    
13.3.1 平行于坐标轴的二元空间划分 857    
13.3.2 任意平面空间划分 858    
13.3.3 使用多边形所在的平面来划分空间 858    
13.3.4 显示/访问BSP树中的每个节点 861    
13.3.5 BSP树数据结构和支持函数 863    
13.3.6 创建BSP树 865    
13.3.7 分割策略 868    
13.3.8 遍历和显示BSP树 876    
13.3.9 将BSP树集成到图形流水线中 886    
13.3.10 BSP关卡编辑器 887    
13.3.11 BSP的局限性 897    
13.3.12 使用BSP树的零重绘策略 897    
13.3.13 将BSP树用于剔除 899    
13.3.14 将BSP树用于碰撞检测 906    
13.3.15 集成BSP树和标准渲染 907    
13.4 潜在可见集 912    
13.4.1 使用潜在可见集 913    
13.4.2 潜在可见集的其他编码方法 914    
13.4.3 流行的PVS计算方法 915    
13.5 入口 917    
13.6 包围体层次结构和八叉树 919    
13.6.1 使用BHV树 921    
13.6.2 运行性能 922    
13.6.3 选择策略 923    
13.6.4 实现BHV 924    
13.6.5 八叉树 931    
13.7 遮掩剔除 932    
13.7.1 遮掩体 933    
13.7.2 选择遮掩物 934    
13.7.3 混合型遮掩物选择方法 934    
13.8 总结 934    
第14章 阴影和光照映射 935    
14.1 新的游戏引擎模块 935    
14.2 概述 935    
14.3 简化的阴影物理学 936    
14.4 使用透视图像和广告牌来模拟阴影 939    
14.4.1 编写支持透明功能的光栅化函数 941    
14.4.2 新的库模块 944    
14.4.3 简单阴影 945    
14.4.4 缩放阴影 947    
14.4.5 跟踪光源 950    
14.4.6 有关模拟阴影的最后思考 953    
14.5 平面网格阴影映射 954    
14.5.1 计算投影变换 954    
14.5.2 优化平面阴影 957    
14.6 光照映射和面缓存技术简介 958    
14.6.1 面缓存技术 960    
14.6.2 生成光照图 960    
14.6.3 实现光照映射函数 961    
14.6.4 暗映射(dark mapping) 963    
14.6.5 光照图特效 964    
14.6.6 优化光照映射代码 964    
14.7 整理思路 965    
14.8 总结 965     
第五部分 高级动画、物理建模和优化    
第15章 3D角色动画、运动和碰撞检测 968    
15.1 新的游戏引擎模块 968    
15.2 3D动画简介 968    
15.3 Quake II .MD2文件格式 969    
15.3.1 .MD2文件头 971    
15.3.2 加载Quake II .MD2文件 979    
15.3.3 使用.MD2文件实现动画 987    
15.3.4 .MD2演示程序 995    
15.4 不基于角色的简单动画 996    
15.4.1 旋转运动和平移运动 997    
15.4.2 复杂的参数化曲线移动 998    
15.4.3 使用脚本来实现运动 999    
15.5 3D碰撞检测 1001    
15.5.1 包围球和包围圆柱 1001    
15.5.2 使用数据结构来提高碰撞检测的速度 1003    
15.5.3 地形跟踪技术 1003    
15.6 总结 1004    
第16章 优化技术 1005    
16.1 优化技术简介 1005    
16.2 使用Microsoft Visual C++和Intel VTune剖析代码 1006    
16.2.1 使用Visual C++进行剖析 1006    
16.2.2 分析剖析数据 1008    
16.2.3 使用VTune进行优化 1009    
16.3 使用Intel C++编译器 1015    
16.3.1 下载Intel的优化编译器 1015    
16.3.2 使用Intel编译器 1015    
16.3.3 使用编译器选项 1016    
16.3.4 手工为源文件选择编译器 1017    
16.3.5 优化策略 1017    
16.4 SIMD编程初步 1017    
16.4.1 SIMD基本体系结构 1019    
16.4.2 使用SIMD 1019    
16.4.3 一个SIMD 3D向量类 1030    
16.5 通用优化技巧 1036    
16.5.1 技巧1:消除_ftol() 1036    
16.5.2 技巧2:设置FPU控制字 1036    
16.5.3 技巧3:快速将浮点变量设置为零 1037    
16.5.4 技巧4:快速计算平方根 1038    
16.5.5 技巧5:分段线性反正切 1038    
16.5.6 技巧6:指针递增运算 1039    
16.5.7 技巧7:尽可能将if语句放在循环外面 1039    
16.5.8 技巧8:支化(branching)流水线 1040    
16.5.9 技巧9:数据对齐 1040    
16.5.10 技巧10:将所有简短函数都声明为内联的 1040    
16.5.11 参考文献 1040    
16.6 总结 1040     
第六部分 附录    
附录A 光盘内容简介 1042    
附录B 安装DirectX和使用Visual C/C++ 1044    
B.1 安装DirectX 1044    
B.2 使用Visual C/C++编译器 1044    
B.3 编译提示 1045    
附录C 三角学和向量参考 1047    
C.1 三角学 1047    
C.2 向量 1049    
C.2.1 向量长度 1050    
C.2.2 归一化 1050    
C.2.3 标量乘法 1051    
C.2.4 向量加法 1052    
C.2.5 向量减法 1052    
C.2.6 点积 1053    
C.2.7 叉积 1054    
C.2.8 零向量 1055    
C.2.9 位置向量 1055    
C.2.10 向量的线性组合 1056    
附录D C++入门 1057    
D.1 C++是什么 1057    
D.2 必须掌握的C++知识 1059    
D.3 新的类型、关键字和约定 1059    
D.3.1 注释符 1059    
D.3.2 常量 1060    
D.3.3 引用型变量 1060    
D.3.4 即时创建变量 1061    
D.4 内存管理 1062    
D.5 流式输入/输出 1062    
D.6 类 1064    
D.6.1 新结构 1064    
D.6.2 一个简单的类 1065    
D.6.3 公有和私有 1065    
D.6.4 类的成员函数(方法) 1066    
D.6.5 构造函数和析构函数 1067    
D.6.6 编写构造函数 1068    
D.6.7 编写析构函数 1070    
D.7 域运算符 1071    
在类外部定义成员函数 1071    
D.8 函数和运算符重载 1072    
D.9 基本模板 1074    
D.10 异常处理简介 1075    
异常处理的组成部分 1076    
D.11 总结 1078    
附录E 游戏编程资源 1079    
E.1 游戏编程和新闻网站 1079    
E.2 下载站点 1079    
E.3 2D/3D引擎 1080    
E.4 游戏编程书籍 1080    
E.5 微软公司的Direct X 多媒体展示 1081    
E.6 新闻组 1081    
E.7 跟上行业的步伐 1081    
E.8 游戏开发杂志 1081    
E.9 Quake资料 1082    
E.10 免费模型和纹理 1082    
E.11 游戏网站开发者 1082    
附录F ASCII码表 1083       
游戏人工智能编程案例精粹(修订版)
     - 出版社: 人民邮电出版社; 第2版 (2012年9月1日)
- 外文书名: 
- 丛书名: 
- 平装: 362页
- 语种: 简体中文
- 开本: 16
- ISBN: 9787115291134
- 条形码: 9787115291134
- 商品尺寸: 23.2 x 18.4 x 2.2 cm
- 商品重量: 640 g
编辑推荐
     亚马逊连续多年游戏开发畅销图书    
游戏开发图书的经典之作    
AI技术在游戏中应用的经典案例合集    
针对实际难题提供权威的专业解决方案    
引导读者学习使用C++变成语言设计、编程和实现游戏人工智能的过程    
读者可以从http://www.jblearning.com/catalog/9781556220784/下载本书的配套示例代码。      
名人推荐
     “本书不仅是一本适合游戏编程初学者的入门教材,对于高级程序员或专家也是一个不错的选择。本书简洁明了,内容几乎覆盖AI方面所有重要学科,从基础数学和物理到图论和Lua脚本编写,再到为程序员创建一些极为精妙的代理行为所需的工具,等等。本书在软件工程方面的内容同样也值得借鉴。演示游戏在代码实例中使用了我们极为熟悉的设计模式。我要将此书推荐给所有游戏程序员。这是一本很值得一读的书,它传播着奇思妙想!”     
——Chris Keegan 英国Climax Studios公司技术总监,《恶灵骑士》开发者之一     
“本书的问世,为许多难题提供了权威的专业解决方案,比如移动和朝向问题。Mat引导读者为真实的游戏构建坚实的基石。本书对于初涉AI领域的人来说是必备之选,对于经验丰富的专家,书中也提供了很多技巧。我要是在8年前就能读到这本书就好了。”     
——Jeff Orkin 英国Monollth Productions公司AI架构师,《无人永生2》、《恐惧》开发者之一     
“……将许多真正有用的信息以一种让我不感到头昏的方式美妙地组合在了一起。”     
——Gareth Lewis 英国Lionhead Studios公司项目主管,《黑与自2》开发者之一     
“本书的每一章都是由浅入深地介绍一项游戏人工智能技术,并围绕该技术给出大量的代码和文字实例。本书通俗易懂,通过将理论知识应用于自己的系统开发,或者通过扩展并理解某环境下的代码实例,你可以加深对游戏人工智能编程的理解。本书把每个独立的技术点组合在一起,形成各种各样的完整游戏环境。在这些环境下,你可以很好地理解一个庞大的游戏架构下的各个互动系统之间的关系。”     
——Mike Ducker 英国Lionhead Studios公司AI架构师,《神鬼寓言》开发者之一     
“通过一些容易模仿且描述得很好的实例,Mat向我们展示了如何使用大部分只有专业AI程序员才会使用的技术。对于初学者来说,这正是一本很棒的导论;而如果你是经验丰富的程序员,它同样也是一本极佳的参考手册。     
——Eric Martel 法国育碧游戏公司Al程序师,《孤岛惊魂》(XBox)开发者之一        
  
				 
				
				
					深度探索游戏开发前沿:技术精粹与智能实战  第一册:3D游戏编程大师技巧 (套装)  本套丛书第一部分,3D游戏编程大师技巧,将带领您深入3D游戏开发的每一个核心环节。我们精选最实用、最前沿的技术,旨在帮助您从入门到精通,掌握打造出令人惊叹的3D游戏所需的关键技能。  核心引擎技术深度解析:     渲染管线与图形学基础: 您将学习到现代3D渲染管线的运作机制,从顶点数据到最终像素的每一个阶段。我们将详细讲解光照模型(如PBR物理渲染)、着色器编程(HLSL/GLSL)、纹理映射、法线贴图、环境光遮蔽(AO)等核心概念,并辅以大量实例,帮助您理解并实现逼真的视觉效果。    几何体处理与优化: 高效的几何体处理是3D游戏性能的关键。我们将深入探讨模型加载、网格优化(如LOD级别)、碰撞检测算法(如AABB、OBB、球体包围等)、以及布线(Meshing)技术,确保您的游戏能够流畅运行,即使在复杂场景下也能保持高帧率。    动画系统与骨骼绑定: 栩栩如生的角色动画是游戏沉浸感的基石。本部分将详细讲解骨骼动画的原理、蒙皮(Skinning)技术、IK(逆运动学)与FK(前向运动学)的应用,以及如何使用状态机(State Machines)管理复杂的角色动画切换。您还将学习到如何实现程序化动画,赋予角色更强的动态生命力。    物理引擎集成与应用: 真实的游戏物理是提升交互性和沉浸感的关键。我们将详细介绍物理引擎(如PhysX、Bullet)的工作原理,包括刚体动力学、碰撞响应、关节约束、以及如何对游戏世界施加重力、摩擦力等物理效果。通过实例,您将学会如何精细控制物理模拟,实现各种游戏机制。    场景管理与优化: 随着游戏场景的复杂化,高效的场景管理至关重要。本部分将深入探讨各种场景管理技术,如八叉树(Octree)、BSP树(Binary Space Partitioning)等,以及视锥体剔除(Frustum Culling)和遮挡剔除(Occlusion Culling)等优化策略,最大限度地减少渲染开销。  高级编程技巧与架构设计:     面向对象设计与设计模式: 良好的代码结构是可维护和可扩展游戏的基础。我们将重点讲解面向对象编程(OOP)的思想,并引入游戏开发中常用的设计模式,如单例模式(Singleton)、工厂模式(Factory)、观察者模式(Observer)、状态模式(State)等,帮助您编写出更加优雅、高效的代码。    内存管理与性能调优: 内存是宝贵的资源,尤其是在大型3D游戏中。本部分将深入探讨内存分配与回收机制,以及各种性能调优技巧,包括CPU与GPU的协同优化、数据结构的选用、算法的复杂度分析、以及如何使用性能分析工具(Profiler)定位和解决性能瓶颈。    多线程与并发编程: 为了充分利用现代多核处理器的性能,多线程编程是必不可少的。我们将讲解线程同步、互斥锁、信号量等概念,以及如何在游戏逻辑、AI计算、网络通信等多个方面实现并发处理,大幅提升游戏响应速度和整体性能。    跨平台开发与工具链: 掌握跨平台开发技术,能够让您的游戏触达更广泛的玩家群体。我们将介绍主流游戏引擎(如Unity、Unreal Engine)在不同平台(PC、主机、移动端)的开发流程与适配技巧,并讲解如何有效地利用各种开发工具链,提高开发效率。    网络编程与多人游戏架构: 构建稳定、流畅的多人游戏是许多开发者的终极目标。本部分将详细讲解网络通信协议(TCP/UDP)、客户端/服务器架构、同步机制、以及常见的网络同步问题(如延迟、丢包)的解决方案。您将学会如何设计和实现 robust 的多人游戏网络系统。  实战案例与项目驱动学习:  本套丛书并非纸上谈兵,而是将理论与实践紧密结合。每一个章节都配有精心设计的代码示例,从简单的功能实现,到复杂的系统集成,都力求贴近真实的游戏开发场景。通过跟随这些案例进行编码实践,您将能够:     构建一个完整的3D场景渲染器: 从零开始,一步步实现自定义的渲染管线,理解光照、材质、纹理如何协同工作。    实现一个基础的物理模拟系统: 体验碰撞检测、刚体动力学在游戏中的应用,让物体具有真实的物理反应。    设计并实现一个角色动画控制器: 赋予角色生命力,处理不同动作间的平滑过渡,以及响应玩家的输入。    开发一个简单的多人联机 demo: 学习网络通信的基本原理,实现玩家间的实时互动。  通过这些循序渐进的实战项目,您将不仅仅是学习理论,更是将理论转化为解决实际问题的能力,逐步构建起属于自己的3D游戏开发技术体系。  ---  第二册:游戏人工智能编程案例精粹 (修订版)  在精彩的视觉效果和流畅的操作体验之外,赋予游戏角色智能,是提升游戏深度与趣味性的关键。游戏人工智能编程案例精粹 (修订版) 专注于游戏AI的实战应用,将带您领略如何让游戏中的NPC(非玩家角色)变得聪明、有逻辑、有策略,从而为玩家提供更具挑战性和沉浸感的游戏体验。  核心AI算法与技术深度解析:     路径查找与寻路算法: 智能的NPC需要能够有效地在复杂的游戏环境中穿梭。本部分将详细讲解各种经典的寻路算法,包括:        A 寻路算法: 学习其核心思想、启发式函数的设计,以及如何通过网格(Grid)、导航网格(NavMesh)等数据结构来实现高效的路径规划。        Dijkstra 算法: 理解其寻找最短路径的原理,以及在特定场景下的适用性。        其他寻路技术: 探讨如局部避障(Local Avoidance)算法,解决NPC在动态环境中规避障碍物的问题,以及基于行为树(Behavior Tree)的组合寻路策略。    决策与行为控制: 如何让NPC根据不同的情况做出合理的决策?我们将深入探讨:        有限状态机(FSM): 学习如何通过状态和转换来管理NPC的简单行为,如巡逻、追逐、逃跑等。        行为树(Behavior Trees): 掌握行为树的强大之处,如何通过组合节点(Sequences, Selectors, Decorators)构建出复杂而灵活的AI逻辑,实现高度模块化和可扩展的AI系统。        效用系统(Utility Systems): 了解如何为NPC的不同行为赋予“效用值”,从而在多个潜在行动中选择最优解,实现更动态和智能的决策。        决策树(Decision Trees): 学习如何通过一系列的问题和分支来引导NPC做出决策,适用于需要明确逻辑判断的场景。    感知与目标管理: NPC如何“看见”和“听见”游戏世界?如何设定和管理他们的目标?        感知系统: 讲解如何实现NPC的视觉、听觉等感知能力,如视野(Field of View)、听觉范围、以及如何处理目标锁定、目标丢失等情况。        目标导向行为(Goal-Oriented Behavior): 探讨如何设计NPC的长期和短期目标,以及如何让NPC动态地调整其行为以达成目标,如觅食、守卫、执行任务等。        感知过滤与优先级: 学习如何根据重要性来过滤感知到的信息,确保NPC能够优先响应最关键的威胁或机遇。    博弈论与策略AI: 在需要玩家与AI进行智力较量的游戏中,博弈论和策略AI是核心。        策略搜索算法: 介绍如Minimax算法及其Alpha-Beta剪枝优化,用于构建下棋、棋盘游戏等AI的决策能力。        蒙特卡洛树搜索(MCTS): 学习这种强大的搜索算法,尤其在处理状态空间巨大的游戏中,如实时战略(RTS)游戏。        学习型AI(Machine Learning for AI): 尽管不深入讲解复杂的ML算法,但会介绍其在游戏AI中的应用,如强化学习(Reinforcement Learning)用于训练AI玩家,以及通过数据驱动的方式优化NPC行为。    群体AI与涌现行为: 如何让一群NPC协同工作,产生出乎意料的智能?        群体模拟: 讲解如Boids模型(领航、聚合、分离),用于模拟鸟群、鱼群等生物的群体行为。        决策协同: 探讨如何设计NPC之间的沟通机制,以及如何通过简单的规则实现复杂的群体决策和协作。        涌现行为(Emergent Behavior): 强调如何通过精心设计的个体AI和环境互动,让复杂的、不可预知的群体行为自然涌现。  实战案例精粹,全面覆盖游戏类型:  本部分的核心在于其丰富的实战案例,每个案例都聚焦于一种具体的游戏类型或AI技术应用:     动作角色扮演游戏(ARPG)中的智能敌人: 演示如何设计具有不同攻击模式、走位策略、以及对玩家行为做出响应的敌人。    策略游戏(RTS/TBS)中的战术AI: 讲解如何构建能够进行资源管理、单位生产、战术部署、以及有效作战的AI指挥官。    冒险解谜游戏中的NPC互动: 演示如何设计具有对话逻辑、任务引导、以及对玩家行为产生反馈的NPC。    射击游戏(FPS/TPS)中的AI小队: 学习如何实现AI队友的协同作战,提供掩护,以及AI敌人的团队配合与战术执行。    模拟经营游戏中的智能居民/管理: 讲解如何模拟居民的日常行为、需求,以及管理系统中的各种决策。    平台跳跃游戏中的动态障碍与敌人: 演示如何设计具有复杂巡逻路径、攻击模式,以及与玩家互动产生反馈的障碍和敌人。  修订版亮点:  本次修订版不仅更新了部分过时的技术讲解,更增加了大量新的前沿案例和更优化的算法实现。我们重点关注:     现代导航网格(NavMesh)的高级用法: 包含动态NavMesh的构建、更新,以及在复杂地形上的路径规划优化。    与游戏引擎深度集成: 讲解如何在Unity、Unreal Engine等主流引擎中更高效地实现和部署AI系统。    AI性能优化: 针对大规模AI系统,提供实用的性能分析和优化技巧。    AI的可调试性与可视化: 强调如何通过可视化工具来调试和理解AI的决策过程,加速开发迭代。  学以致用,打造鲜活的游戏世界:  通过学习本书中的案例,您将能够:     为您的游戏注入生命力: 让您的NPC不再是呆板的木偶,而是能够思考、行动、并与玩家产生真实互动的角色。    提升游戏的可玩性与挑战性: 通过设计更智能的敌人和对手,为玩家提供更具深度和乐趣的游戏体验。    掌握游戏AI的底层逻辑: 理解从简单的寻路到复杂的策略决策,AI的实现原理。    加速您的AI开发进程: 直接应用书中提供的成熟框架和案例,快速实现高质量的游戏AI。  无论您是游戏开发新手,还是有经验的开发者,游戏人工智能编程案例精粹 (修订版) 都将是您手中宝贵的AI开发指南,助您在创造引人入胜的游戏世界的道路上,更进一步。