资源大小: 64.87MB
发布时间: 2013-01-31
文件格式: pdf
下载次数: 2
分享到:

下载地址:

下载地址1
(本站为飞网专业下载站,域名:down.cfei.net)

资源简介:

中文名: 游戏编程精粹3原名: Game Programming Gems 3别名: 游戏编程, 游戏开发作者: Dante Treglia译者: 张磊资源格式: PDF版本: 扫描版出版社: 人民邮电出版社书号: 7115108706发行时间: 2003年7月地区: 大陆语言: 简体中文简介: 内容介绍:  本书汇集了近70篇最新的游戏编程大师的技术文章。这些文章都来自于实际经验的积累,各有独到之处,依其所属领域不同,全书划分为通用编程技术、数学技巧、人工智能、图形、网络和多玩家游戏、音频处理六章,覆盖了当今游戏开发中的所有关键技术领域。  本书适合游戏开发专业人员阅读。对于入门级的读者,本书指出了您将要面临的各方面挑战,并提供大量的参考资料和资源助您提高专业知识和技术;对于专家级的读者,本书中实用的新思想与新技巧将帮助您节省大量游戏开发的宝贵时间。 作者介绍:Thor Alexander thor@hardcodedgames.comThor Alexander在过去的10年中致力于为游戏界创造更为可信的智能人物角色。最近,他创建了Hard Coded Games公司(位于德克萨斯州奥斯汀),为在线游戏创造具有艺术效果的人工智能和机器学习。在此之前,他在Electronic Arts、微软还有Xatrix Entertainment担任过资深人工智能开发和设计人员,同时他还是Asgard Interactive的创始人之一,并且是Harbinger Technologies的CEO。他是hyperSim智能人物系统和GoCap(Game Observation Capture)的发明者. 目录: 第1章 通用编程技术简介 (作者:Kim Pallister)1.1 调度游戏中的事件 (作者:Michael Harvey,Carl S.Marshall)1.1.1 调度器的组成1.1.2 一个简单的调度器 1.1.3 高级概念 1.1.4 结论 1.1.5 参考文献 1.2 一个基于对象组合的游戏架构 (作者:Scott Patterson)1.2.1 游戏开发的各个阶段1.2.2 游戏架构设计1.2.3 游戏架构实现 1.2.4 源代码1.2.5 参考文献 1.3 让C中的宏重现光辉 (作者:Steve Rabin)1.3.1 声明 1.3.2 第1个宏技巧: 把枚举值转化为字符串1.3.3 第2个宏技巧: 利用二进制表达式得到编译期常量 1.3.4 第3个宏技巧:给标准断言添加描述性注释1.3.5 第4个宏技巧:编译期断言1.3.6 第5个宏技巧:得到一个数组里面的元素个数 1.3.7 第6个宏技巧: 在一个字符串中间加入__LINE__1.3.8 第7个宏技巧:防止进入无限循环1.3.9 第8个宏技巧:小型的特制语言1.3.10 第9个宏技巧:简化类接口 1.3.11 结论 1.3.12 参考文献 1.4 平台无关的函数绑定代码生成器 (作者:Allen Pouratian)1.4.1 年轻与智慧 1.4.2 概要1.4.3 细节1.4.4 脚本 1.4.5 网络1.4.6 结论 1.4.7 参考文献 1.5 基于句柄的智能指针 (作者:Brian Hawkins)1.5.1 用法1.5.2 句柄1.5.3 智能指针1.5.4 结论 1.5.5 参考文献 1.6 定制STL分配器 (作者:Pete Isensee)1.6.1 一个范例1.6.2 分配器的基础1.6.3 分配器的要求1.6.4 缺省的分配器对象 1.6.5 编写自己的分配器 1.6.6 潜在的用途1.6.7 分配器状态数据 1.6.8 一些建议1.6.9 实现细节1.6.10 结论 1.6.11 参考文献 1.7 立即存盘 (作者:Martin Brownlow)1.7.1 为何如此困难 1.7.2 SAVEMGR类 1.7.3 SAVEOBJ类 1.7.4 数据类型与扩展1.7.5 重载缺省函数 1.7.6 一个简单的例子1.7.7 结论 1.8 自动列表设计模式 (作者:Ben Board)1.8.1 实现 1.8.2 实现时的注意事项 1.8.3 结论 1.9 浮点异常处理 (作者:Soren Hannibal)1.9.1 为什么要崩溃1.9.2 你的程序处理浮点异常么1.9.3 异常的类型1.9.4 代码1.9.5 调试浮点错误 1.9.6 结论 1.10 使用UML开发一个配合设计的游戏引擎 (作者:Thomas Demachy)1.10.1 对象就在游戏之中 1.10.2 动态的类——正如动态的棋子1.10.3 协作与迭代 1.10.4 实现上的问题1.10.5 结论 1.10.6 参考文献 1.11 使用Lex和Yacc分析自定义数据文件 (作者:Paul Kelly)1.11.1 Lex1.11.2 Yacc1.11.3 优点与缺陷 1.11.4 Yacc和Lex中的交互1.11.5 针对游戏子系统的自定义数据文件 1.11.6 把数据输出工具与Lex和Yacc结合起来 1.11.7 一个完整的例子1.11.8 结论 1.11.9 如何得到Flex和Bison1.11.10 参考文献 1.12 为世界市场开发游戏 (作者:Aaron Nicholls)1.12.1 市场潜力1.12.2 门面事,先处理——显示和输入 1.12.3 字符集1.12.4 界面和设计方面的考虑1.12.5 本地化1.12.6 设计和规划中的考虑1.12.7 测试1.12.8 结论 1.12.9 参考文献 1.13 3D游戏中的实时输入和用户界面 (作者:Greg Seegert)1.13.1 实现用户界面 1.13.2 指定用户界面元素1.13.3 本地化问题1.13.4 输入系统1.13.5 鼠标与操纵杆1.13.6 在处理延迟方面用户界面的作用 1.13.7 结论 1.13.8 参考文献 1.14 自然的选择:饼状菜单的演化 (作者:Don Hopkins)1.14.1 Feng GUI的饼状菜单1.14.2 对饼状菜单的研究与评估 1.14.3 饼状菜单插件 1.14.4 未来发展方向1.14.5 走进SimCity中的城镇1.14.6 Sims中的起居室 1.14.7 结论 1.14.8 参考文献 1.15 轻量级的、基于规则的日志记录 (作者:Brian Hawkins)1.15.1 规则1.15.2 调试标志1.15.3 配置文件 1.15.4 可配置的标志值 1.15.5 日志记录1.15.6 用法1.15.7 结论 1.15.8 参考文献 1.16 日志服务 (作者:Eric Robert)1.16.1 管理信息 1.16.2 系统层次 1.16.3 Journal接口 1.16.4 创建日志服务 1.16.5 结论 1.16.6 参考文献 1.17 实时的层次化性能评测 (作者:Greg Hjeistrom,Byon Garrabrant)1.17.1 性能评测树1.17.2 用法1.17.3 实现 1.17.4 结论 1.17.5 参考文献 第2章 数学技巧简介 (作者:John Byrd)2.1 对数与随机数生成的2基快速函数 (作者:James McNeill)2.1.1 整数的2基对数 2.1.2 位掩码与随机数生成2.1.3 函数是如何工作的2.1.4 参考文献 2.2 使用分数矢量得到更精确的几何图形 (作者:Thomas Young)2.2.1 问题2.2.2 一个解决方法:分数矢量 2.2.3 使用分数矢量 2.2.4 数字的范围 2.2.5 实现上的细节2.2.6 结论 2.2.7 参考文献 2.3 三角函数的更多近似计算方法 (作者:Robin Green)2.3.1 衡量误差2.3.2 正弦与余弦函数 2.3.3 多项式逼近2.3.4 有关收敛性的注意事项 2.3.5 结论 2.3.6 参考文献 2.4 四元数的压缩 (作者:Mark Zarb-Adami)2.4.1 四元数 2.4.2 三个最小数方法2.4.3 极点方法2.4.4 实现 2.4.5 性能 2.4.6 结论 2.4.7 答谢 2.4.8 参考文献 2.5 受限的逆向运动学 (作者:Jason Weber)2.5.1 骨节层次 2.5.2 循环坐标推演2.5.3 旋转限制 2.5.4 调整每个骨节,同时保持限制 2.5.5 结论 2.5.6 参考文献 2.6 针对物理建模的单元自动机 (作者:Tom Forsyth)2.6.1 CA基础2.6.2 八叉树2.6.3 实际的物理2.6.4 核心处理模型2.6.5 气体2.6.6 水流2.6.7 流速2.6.8 热量 2.6.9 火焰 2.6.10 动态更新速率2.6.11 结论 2.6.12 参考文献 2.7 在动态仿真中处理摩擦 (作者:Miguel Gomez)2.7.1 库仑摩擦力2.7.2 数值方法2.7.3 一个三维公式2.7.4 几何图形问题2.7.5 结论 2.7.6 参考文献 第3章 人工智能简介 (作者:Steven WoodCock)3.1 经GoCap优化过的机器学习 (作者:Thor Alexander)3.1.1 GoCap架构一览3.1.2 训练开车 3.1.3 学习规则3.1.4 结论 3.1.5 参考文献 3.2 区域游览:对寻径模式的扩展 (作者:Ben Board,Mike Ducker)3.2.1 辞旧 3.2.2 迎新 3.2.3 分而治之3.2.4 路径遍历3.2.5 对此模式的扩展3.2.6 结论 3.2.7 参考文献 3.3 基于函数指针的内嵌式有限状态机 (作者:Charles Farris)3.3.1 什么是有限状态机 3.3.2 FSM的实现 3.3.3 实现CFSM3.3.4 使用CFSM3.3.5 结论 3.3.6 参考文献 3.4 在RTS中的地形分析——一个隐藏的重要因素 (作者:Daniel Higgins)3.4.1 区域3.4.2 凸包3.4.3 重要的匹配器 3.4.4 关隘3.4.5 进行地形分析3.4.6 结论 3.4.7 参考文献 3.5 一个针对AI代理、对象,以及任务的可扩展触发器系统 (作者:Steve Rabin)3.5.1 触发器系统简介3.5.2 对象自有的触发器系统3.5.3 定义条件3.5.4 使用布尔逻辑组合条件3.5.5 定义响应3.5.6 求取触发器的值 3.5.7 一次性触发与载入次数 3.5.8 使用标志和计数器将触发器结合起来 3.5.9 触发器系统与脚本语言的对比3.5.10 局限性 3.5.11 结论 3.5.12 参考文献 3.6 基于A*算法的战术式寻径 (作者:William van der Sterren)3.6.1 有风险的A*3.6.2 对于有缺陷路径的战术式改良 3.6.3 暴露时间与对敌人建模 3.6.4 威胁并不仅仅是静态的3.6.5 更战术化的改进3.6.6 性能 3.6.7 有效的火力线以及视野的探测3.6.8 扩展的A*算法的代价3.6.9 ASE程序 3.6.10 结论 3.6.11 参考文献 3.7 快速游览网格的方法 (作者:Stephen White,Christopher Christensen)3.7.1 静态障碍与动态障碍3.7.2 游览网格 3.7.3 门户 3.7.4 建表3.7.5 其他的门户相关问题3.7.6 表示生物 3.7.7 动态障碍3.7.8 在静态障碍与动态障碍之间进行游览3.7.9 有关游览网格的其他想法3.7.10 结论 3.8 在寻径与碰撞之间选择一种关系 (作者:Thomas Young)3.8.1 在碰撞控制下的运动 3.8.2 对于寻径的碰撞模型3.8.3 方法1:具有容错性的AI3.8.4 方法2:在无障碍空间一个子集内的寻径3.8.5 方法3:使用寻径器本身处理人物碰撞3.8.6 实现沿路的运动 3.8.7 结论 3.8.8 参考文献 第4章 图形简介 (作者:Jeff Lander)4.1 消除T形连接与重新三角化 Eric Lengyel4.1.1 T形连接的消除 4.1.2 重新三角化4.1.3 实现 4.1.4 结论 4.2 快速高程场法线的计算 (作者:Jason Shankel)4.2.1 一个任意网格上的法线 4.2.2 高程场法线 4.2.3 结论 4.2.4 例子程序 4.2.5 参考文献 4.3 快速计算面片法线 (作者:Martin Brownlow)4.3.1 定义4.3.2 传统方法4.3.3 相关问题4.3.4 一个更简单的方法4.3.5 其他的优点 4.3.6 此方法的精确度有多大 4.3.7 结论 4.3.8 参考文献 4.4 快速、简单的遮蔽剪裁 (作者:Wagner T.Corrêa,Princeton University)4.4.1 可见性问题4.4.2 PLP算法4.4.3 cPLP算法4.4.4 讨论4.4.5 实验结果4.4.6 结论 4.4.7 参考文献 4.5 三角形条带的创建、优化以及渲染 (作者:Carl S.Marshall)4.5.1 三角形条带4.5.2 三角形条带的创建 4.5.3 优化4.5.4 渲染4.5.5 倾向于缓存的三角形条带4.5.6 连续分层细节的三角形条带4.5.7 结论 4.5.8 参考文献 4.6 针对复杂数据集计算优化阴影体 (作者:Alex Vlachos,Drew Card)4.6.1 前期工作4.6.2 算法4.6.3 优化算法4.6.4 参考文献 4.7 针对人物运动的表面细分 (作者:William Leeson)4.7.1 各种细分模式4.7.2 骨节的层次化结构以及顶点积累缓冲 4.7.3 优化4.7.4 系统集成4.7.5 源代码4.7.6 结论 4.7.7 参考文献 4.8 改良的骨节变换计算 (作者:Jason Weber)4.8.1 背景知识4.8.2 简单的方法4.8.3 添加骨节4.8.4 改变权重4.8.5 系统集成与优化4.8.6 结论 4.8.7 参考文献 4.9 针对真实人物运动的架构 (作者:Thomas Young)4.9.1 问题:针对任意目标的运动 4.9.2 问题:运动之间的平滑过渡 4.9.3 解决问题的一个架构:局部修正器与独立的插值系数 4.9.4 应用:处理任意目标的运动 4.9.5 位移修正器 4.9.6 应用:变换 4.9.7 其他细节4.9.8 结论 4.9.9 参考文献 4.10 可编程顶点着色器的编译器 (作者:Adam Lake)4.10.1 可编程顶点着色器 4.10.2 编译器 4.10.3 编译器的组成部分4.10.4 结论 4.10.5 致谢4.10.6 参考文献 4.11 画板光束 (作者:Brian Hawkins)4.11.1 矩阵 4.11.2 顶点 4.11.3 UV映射4.11.4 结论 4.12 针对等测引擎的3D技术 (作者:Greg Snook)4.12.1 进入第三个维度 4.12.2 方法1:画板越多,效果越好 4.12.3 方法2:变换纹理4.12.4 方法3:垂直插值的纹理4.12.5 结论 4.12.6 参考文献 4.13 使用法向地图进行曲面模拟 (作者:Oscar Blasco)4.13.1 法向地图 4.13.2 整个过程的纵览4.13.3 数据准备4.13.4 投影线4.13.5 得到细节信息 4.13.6 后处理4.13.7 已知的问题4.13.8 其他方法4.13.9 结论 4.13.10 致谢4.13.11 参考文献 4.14 动态的、具有照片效果的地形光照 (作者:Naty Hoffman,Kenny Mitchell)4.14.1 背景知识4.14.2 解的分类 4.14.3 日照:地平角、椭圆阴影以及PTM4.14.4 天空光照:辐射透过量的近似与分块4.14.5 活动的云层阴影4.14.6 基于视频的解决方案4.14.7 非地形对象4.14.8 结论 4.14.9 参考文献 4.15 立体图光照技术 (作者:Kenneth L.Hurley)4.15.1 立体图的物理属性 4.15.2 如何与立体图进行数据交换 4.15.3 使用立体图进行渲染4.15.4 对云层进行编码4.15.5 在一个立体图中对光源进行编码4.15.6 在立体图中渲染散射光照 4.15.7 将日夜循环编码进立体图中4.15.8 结论 4.15.9 参考文献 4.16 程序纹理 (作者:Mike Milliger)4.16.1 参数与函数 4.16.2 进入游戏世界4.16.3 硬件加速4.16.4 结论 4.16.5 致谢4.16.6 参考文献 4.17 独一无二的纹理 (作者:Tom Forsyth)4.17.1 程序纹理4.17.2 智能纹理缓存4.17.3 合成模型4.17.4 层的映射与变换 4.17.5 层的源与过滤器 4.17.6 合成方法4.17.7 对数字的控制 4.17.8 动态纹理4.17.9 可扩展性 4.17.10 使用CPU还是图形芯片进行合成运算4.17.11 演示程序 4.17.12 结论 4.17.13 参考文献 4.18 使用纹理作为查找表进行逐像素光照计算 (作者:Alex Vlachos, John Isidoro,Chris Oat)4.18.1 不使用立体图进行h归一化(n.h/h.h映射)的镜面逐像素光照 4.18.2 使用一个(n.h)k图的逐像素镜面指数 4.18.3 色彩偏移的光晕4.18.4 拥有正确的逐像素衰减的逐像素点光照 4.18.5 拥有正确的逐像素衰减的逐像素聚光灯与方向性光照 4.18.6 结论 4.18.7 参考文献 4.19 使用手工制作的着色模型进行渲染 (作者:Jan Kautz)4.19.1 着色模型4.19.2 基于微表面的着色模型4.19.3 NDF着色 4.19.4 使用NDF的凸凹贴图 4.19.5 扩展4.19.6 结论 4.19.7 参考文献 第5章 网络和多玩家游戏简介 (作者:Andrew Kirmse)5.1 将实时策略游戏中的延迟最小化 (作者:Jim Greer, EA.com,Zachary Booth Simpson, Mine Control)5.1.1 帧锁定与事件锁定5.1.2 时间同步 5.1.3 结论 5.1.4 参考文献 5.2 实时策略网络协议 (作者:Jan Svarovsky)5.2.1 其他的协议 5.2.2 我们的协议 5.2.3 精炼 5.2.4 有用的模块5.2.5 在StarTopia中容易犯的错误 5.2.6 示例游戏 5.2.7 结论 5.2.8 参考文献 5.3 一个针对巨量多玩家游戏的灵活的仿真架构 (作者:Thor Alexander)5.3.1 架构一览5.3.2 支持类 5.3.3 核心类 5.3.4 管理器与工厂5.3.5 把它们都组合起来 5.3.6 结论 5.3.7 参考文献 5.4 对多玩家游戏进行扩展 (作者:Justin Randall)5.4.1 改善游戏公平度的策略 5.4.2 设计可扩展的服务器 5.4.3 分布负载 5.4.4 优化5.4.5 结论 5.4.6 参考文献 5.5 基于模板的对象序列化 (作者:Jason Beardsley)5.5.1 现存的解决方案5.5.2 可移植性 5.5.3 Serializer 类 5.5.4 扩展与优化5.5.5 未来的工作5.5.6 结论 5.5.7 参考文献 5.6 安全套接字 (作者:Pete Isensee)5.6.1 IPSec5.6.2 警告5.6.3 安全连接 5.6.4 包格式5.6.5 发送数据 5.6.6 接收数据 5.6.7 示例实现 5.6.8 CryptoAPI5.6.9 性能 5.6.10 安全性 5.6.11 结论 5.6.12 参考文献 5.7 一个网络监控与模拟工具 (作者:Andrew Kirmse)5.7.1 界面 5.7.2 网络监控 5.7.3 TCP模拟5.7.4 UDP模拟5.7.5 主机带宽模拟5.7.6 结论 5.8 使用DirectPlay 8.1创建多玩家游戏 (作者:Gabriel Rohweder)5.8.1 DirectPlay内幕5.8.2 数据传输5.8.3 可重入的回调函数 5.8.4 使用DirectPlay发送语音 5.8.5 相关资源5.9 使用Java微型版开发无线游戏 (作者:David Fox)5.9.1 网络特性 5.9.2 Java微型版5.9.3 J2ME网络精髓5.9.4 HTTP的限制 5.9.5 优化数据包5.9.6 从服务器获取图像 5.9.7 结论 5.9.8 参考文献 第6章 音频处理简介 (作者:Scott Patterson)6.1 使用Ogg Vorbis进行音频压缩 (作者:Jack Moffitt)6.1.1 心理声学压缩 6.1.2 使用压缩的情况 6.1.3 使用Ogg的代码示例6.1.4 结论 6.1.5 参考文献 6.2 创建一个美妙的3D音频环境 (作者:Garin Hiebert)6.2.1 3D音频的核心概念 6.2.2 有效地使用你的音频引擎 6.2.3 实现 6.2.4 结论 6.2.5 参考文献 6.3 使用轴对齐的边界框设置音障 (作者:Carlo Vogelsang)6.3.1 问题6.3.2 解决方法6.3.3 实现 6.3.4 结论 6.3.5 参考文献 6.4 使用双二次共振滤波器 (作者:Phil Burk)6.4.1 数字滤波器的工作原理6.4.2 IIR与FIR滤波器 6.4.3 双二次滤波器的实现 6.4.4 改变变量 6.4.5 避免异常情况 6.4.6 控制滤波器 6.4.7 计算此滤波器的系数 6.4.8 低通滤波器 6.4.9 高通滤波器 6.4.10 带通滤波器 6.4.11 将滤波器进行串联6.4.12 将滤波器进行并联6.4.13 软件6.4.14 结论 6.4.15 参考文献 6.5 语音压缩与音效的线性预测编码 (作者:Eddie Edwards)6.5.1 对语音建模 6.5.2 软件仿真6.5.3 取代声带 6.5.4 控制重新合成器 6.5.5 增加扬声器的深度6.5.6 对数据编码6.5.7 速度 6.5.8 实验6.5.9 参考文献 6.6 复杂声音的随机合成方法 (作者:Phil Burk)6.6.1 线性同余算法6.6.2 噪声种类 6.6.3 软件示例6.6.4 软件6.6.5 结论 6.6.6 参考文献 6.7 针对游戏的实时模块化音频处理 (作者:Frank Luchs)6.7.1 模块化音频处理6.7.2 通过程序生成声音 6.7.3 Sphinx MMOS系统6.7.4 处理器 6.7.5 模块文件简介6.7.6 模块文件的应用 6.7.7 源代码6.7.8 结论 6.7.9 参考文献 索引


飞网下载站,免费下载共享资料,内容涉及教育资源、专业资料、IT资源、娱乐生活、经济管理、办公文书、游戏资料等。