𝔖 Scriptorium
✦   LIBER   ✦

📁

游戏编程精粹5

✍ Scribed by 帕里斯特


Publisher
人民邮电出版社
Year
2007
Tongue
Chinese
Leaves
622
Series
游戏编程精粹
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


《游戏编程精粹5》是著名技术丛书“游戏编程精粹”系列书的第5卷,由全球60多位优秀游戏开发精英撰写的文章汇集而成。书中每篇文章都针对游戏编辑中的某一特定问题给出解决方案,并提供实用算法和源代码。全书由7章组成,包括通用编程、数学、人工智能、物理、图形图像、音频以及网络和多人游戏,覆盖了当前游戏开发中的所有关键技术领域。《游戏编程精粹5》附光盘一张,提供书中所有的源程序和演示程序。

✦ Table of Contents


内容提要
关于随书光盘

关于封面图片
前言
作者简介
翻译和审校员
目录
第1章 通用编程
引言
1.1 面向编辑器的上下文相关HUD
1.1.1 问题
1.1.2 解决方案
1.1.3 实现
1.1.4 用户控制
1.1.5 总结
1.1.6 参考文献
1.2 在游戏中解析文本数据
1.2.1 开始之前
1.2.2 token到底是什么
1.2.3 编写词法分析器
1.2.4 工作原理
1.2.5 制定自己的格式
1.2.6 解析token列表
1.2.7 总结
1.2.8 参考文献
1.3 基于组件的对象管理
1.3.1 除旧迎新
1.3.2 组件
1.3.3 系统的创建
1.3.4 总结
1.4 用模板实现一个可在C++中使用的反射系统
1.4.1 需求
1.4.2 第1部分:运行时类型信息
1.4.3 在RTTI的实现中使用模板
1.4.4 关于RTTI的其他修改建议
1.4.5 第2部分:属性对象
1.4.6 属性的存储
1.4.7 属性类型
1.4.8 属性注册钩子(Hook)函数
1.4.9 属性的注册
1.4.10 脚本应用
1.4.11 Tweaker应用
1.4.12 其他应用
1.4.13 总结
1.4.14 参考文献
1.5 可加速BSP算法的球体树
1.5.1 BSP算法
1.5.2 创建BSP树
1.5.3 优化最初步骤
1.5.4 总结
1.5.5 参考文献
1.6 改进后的视锥剔除算法
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.7 通用的分页管理系统
1.7.1 老式的分页解决方案:一查到底
1.7.2 GP分页解决方案:只检查需要的
1.7.3 索引是关键
1.7.4 GPtile:空间中的块
1.7.5 The world:搜索空间
1.7.6 窗口:在GPworld中航行
1.7.7 多窗口,多用户
1.7.8 优化:多线程分页
1.7.9 总结
1.7.10 参考文献
1.8 基于栈的大规模状态机
1.8.1 传统状态机编码及相关问题
1.8.2 用C++方法解决游戏状态难题
1.8.3 状态接口类
1.8.4 状态的堆叠管理:为什么三维比二维好用
1.8.5 状态对象管理系统
1.8.6 总结
1.8.7 参考文献
1.9 使用BSP树构造CSG几何体
1.9.1 CSG的布尔运算
1.9.2 为什么要使用BSP树
1.9.3 BSP树的实现
1.9.4 组合装配
1.9.5 总结
1.9.6 参考文献
1.10 在游戏中集成Lua
1.10.1 Lua的概况
1.10.2 Lua与C语言的接口
1.10.3 在游戏中嵌入Lua
1.10.4 实时性方面的考虑
1.10.5 脚本管理框架
1.10.6 总结
1.10.7 参考文献
1.11 用基于policy的设计改进Freelist
1.11.1 Freelist概述
1.11.2 Policy:雷霆救兵
1.11.3 分解Freelist
1.11.4 实现Freelist:这是它吗?
1.11.5 选择最佳的policy
1.11.6 可能性
1.11.7 总结
1.11.8 参考文献
1.12 实时远程调试信息日志生成器
1.12.1 对标准化的调试日志的需求
1.12.2 数据表示:你可看到我所看到的
1.12.3 本文提议的解决方案
1.12.4 游戏日志模块
1.12.5 可能的改进和扩展
1.12.6 总结
1.12.7 参考文献
1.13 透明的类的保存和加载技巧
1.13.1 小窍门
1.13.2 FreezeMgr的实现
1.13.3 其他几个特性
1.13.4 如何使用范例
1.13.5 总结
1.13.6 参考文献
1.14 高效且忽略缓存的ABT树实现方法
1.14.1 计算机内存结构
1.14.2 ABT树
1.14.3 确认阶段
1.14.4 总结
1.14.5 参考文献
1.15 状态机的可视化设计
1.15.1 为什么需要代码生成
1.15.2 让“可视”成为可能
1.15.3 状态的管理
1.15.4 系统组装
1.15.5 总结
1.15.6 参考文献
1.16 泛型组件库
1.16.1 类型识别系统
1.16.2 工厂
1.16.3 工厂单例与子工厂
1.16.4 DLL工厂
1.16.5 组件
1.16.6 组件接口
1.16.7 接口版本管理
1.16.8 定义组件及其接口
1.16.9 组件的使用
1.16.10 配置组件库
1.16.11 总结
1.16.12 参考文献
1.17 选择自己的路线——菜单系统
1.17.1 为什么需要菜单系统
1.17.2 菜单系统的对象
1.17.3 总结
1.17.4 参考文献
第2章 数学
引言
2.1 在计算机图形学中使用几何代数
2.1.1 引言
2.1.2 几何代数
2.1.3 线性代数
2.1.4 词典
2.1.5 实例
2.1.6 总结以及将来的方向
2.1.7 参考文献
2.2 最小加速度Hermite曲线
2.2.1 连接具有C1连续的最小弯曲曲线
2.2.2 封闭的最小弯曲的曲线
2.2.3 总结
2.2.4 参考文献
2.3 动画中基于样条的时间控制
2.3.1 开始
2.3.2 一般的距离-时间函数
2.3.3 根据样条构造距离-时间函数
2.3.4 接口选择
2.3.5 总结
2.3.6 参考文献
2.4 快速四元数近似插值
2.4.1 使用四元数来表示旋转
2.4.2 四元数旋转插值
2.4.3 近似算法
2.4.4 算法之间的比较
2.4.5 Squad相关的计算
2.4.6 延伸阅读
2.4.7 总结
2.4.8 参考文献
2.5 极小极大数值近似
2.5.1 众所周知的优化
2.5.2 什么是理想的近似
2.5.3 极小极大近似的介绍
2.5.4 误差分析
2.5.5 进一步改进近似
2.5.6 参考文献
2.6 应用于镜面和入口的斜视锥
2.6.1 平面的表示
2.6.2 投影矩阵
2.6.3 裁剪面的修改
2.6.4 OpenGL实现
2.6.5 Direct3D实现
2.6.6 致谢
2.6.7 参考文献
第3章 人工智能
引言
3.1 利用导航网格实现自动掩体寻找
3.1.1 导航网格
3.1.2 开放目标寻路
3.1.3 搜索掩体位置
3.1.4 在掩体间行进
3.1.5 团队掩护行为
3.1.6 其他功能
3.1.7 总结
3.1.8 参考文献
3.2 使用人工势场实现快速目标评级
3.2.1 基本思想
3.2.2 公式
3.2.3 势值函数的评估
3.2.4 可视化
3.2.5 方向场的应用
3.2.6 多维扩展
3.2.7 总结
3.3 利用Lanchester损耗模型来预测战斗结果
3.3.1 概述
3.3.2 场景1:全体混战
3.3.3 场景2:狭窄的石阶
3.3.4 场景3:炮战
3.3.5 场景4:关底Boss
3.3.6 关于战斗力的再讨论
3.3.7 局限性
3.3.8 总结
3.3.9 参考文献
3.4 为游戏AI实现一个实用的智能规划系统
3.4.1 规划系统的框架
3.4.2 规划域
3.4.3 一个多主体规划器的例子
3.4.4 规划的搜索
3.4.5 几个应用问题
3.4.6 优化
3.4.7 总结
3.4.8 参考文献
3.5 针对多线程架构的决策树查询算法优化
3.5.1 概述
3.5.2 注意事项
3.5.3 优化
3.5.4 总结
3.5.5 参考文献
3.6 利用并行虚拟机实现AI系统的并行开发
3.6.1 功能强大,但不白给
3.6.2 核心术语及概念
3.6.3 任务的创建
3.6.4 任务管理
3.6.5 PVM的实现
3.6.6 实际应用:即时战略游戏
3.6.7 强化游戏性
3.6.8 总结
3.6.9 参考文献
3.7 超越A算法
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.8 实现最小重新规划开销的先进寻路算法:动态A
(D)算法
3.8.1 D
算法
3.8.2 D*算法的实现细节
3.8.3 实例
3.8.4 在游戏中又如何呢?
3.8.5 总结
3.8.6 参考文献
第4章 物理学
引言
4.1 游戏物理中空气动力学的近似计算
4.1.1 背景知识
4.1.2 钝体上的作用力
4.1.3 流线体上的作用力
4.1.4 应用实例
4.1.5 总结
4.1.6 参考文献
4.2 动态青草的模拟和其他自然环境特效
4.2.1 水面特效
4.2.2 青草的模拟
4.2.3 变化传播模型
4.2.4 树叶的模拟:模型的应用
4.2.5 总结
4.2.6 参考文献
4.3 使用质点-弹簧模型获得真实的布料动画
4.3.1 布料的离散表示
4.3.2 作用力
4.3.3 动态系统方法
4.3.4 仿真模拟
4.3.5 结论
4.3.6 参考文献
4.4 适合游戏开发的实用柔体动画技术:受压柔体模型
4.4.1 简化的质点-弹簧模型
4.4.2 PSB模型背后的物理学
4.4.3 PSB模型的实现
4.4.4 典型的质点-弹簧模型
4.4.5 PSB步骤
4.4.6 体积计算
4.4.7 采用预估修正法的Heun积分
4.4.8 时间步长的计算速度
4.4.9 几个仿真实例
4.4.10 进一步的发展
4.4.11 总结
4.4.12 源代码说明
4.4.13 致谢
4.4.14 参考文献
4.5 使用反馈控制系统让“布娃娃”活起来
4.5.1 现有的研究成果
4.5.2 仿真过程的控制
4.5.3 行为动作的创建
4.5.4 总结
4.5.5 致谢
4.5.6 参考文献
4.6 预定式物理系统的设计
4.6.1 什么是预定式物理系统
4.6.2 预定式物理引擎
4.6.3 打磨上光
4.6.4 龙卷风:一个好的开始
4.6.5 总结
4.6.6 参考文献
4.7 预定式物理系统:相关技术及应用
4.7.1 为什么要使用预定式物理系统
4.7.2 预定式物理系统
4.7.3 应用1:RTS游戏中建筑物的毁坏
4.7.4 应用2:跳跃
4.7.5 应用3:爆炸特效中的物体运动
4.7.6 应用4:浮力
4.7.7 应用5:伞兵
4.7.8 总结
4.7.9 参考文献
4.8 三维汽车模拟器中真实的摄像机运动
4.8.1 我们需要什么?物理法则
4.8.2 我们得到的是什么?偶尔不够真实的运动
4.8.3 考察摄像机的控制
4.8.4 终极决策:实现人类的行为
4.8.5 编程中涉及的问题
4.8.6 总结
4.8.7 关于演示程序
第5章 图形图像
引言
5.1 在现代GPU上渲染逼真的云彩
5.1.1 制造噪音
5.1.2 云彩的密度
5.1.3 云彩的光照处理
5.1.4 优化
5.1.5 总结
5.1.6 参考文献
5.2 下雪吧,下雪吧,下雪吧(下雨吧)
5.2.1 使用纹理为粒子束建模
5.2.2 渲染雪或雨的视差
5.2.3 用锥体模拟摄像机的移动
5.2.4 合并到一个矩阵中
5.2.5 增加美工控制
5.2.6 总结
5.2.7 参考文献
5.3 Widget:快速渲染和持久化小物体
5.3.1 Widget的网格
5.3.2 高效地绘制widget
5.3.3 裁剪widget
5.3.4 总结
5.3.5 参考文献
5.4 逼真的树木和森林的2.5维替用物
5.4.1 引言
5.4.2 以前的基于图像的方法
5.4.3 改进以前的方法
5.4.4 算法
5.4.5 实现
5.4.6 总结
5.4.7 参考文献
5.5 无栅格的可控火焰
5.5.1 建模火焰
5.5.2 实时渲染
5.5.3 实例和讨论
5.5.4 总结
5.5.5 参考文献
5.6 使用公告牌粒子构建强大的爆炸效果
5.6.1 最初的闪光
5.6.2 放射的火苗
5.6.3 白色的热核心
5.6.4 强烈的火球
5.6.5 散发的烟雾
5.6.6 碎片
5.6.7 效果表
5.6.8 额外的感觉
5.6.9 效率问题
5.6.10 总结
5.6.11 参考文献
5.7 渲染宝石的简单方法
5.7.1 技术概览
5.7.2 法线和cubemap采样问题
5.7.3 传递的光能
5.7.4 反射
5.7.5 光斑
5.7.6 总结
5.7.7 参考文献
5.8 体积化的后期处理
5.8.1 体积化的后期处理
5.8.2 深度知识
5.8.3 使用shader作z比较
5.8.4 像素完美的裁剪
5.8.5 后期处理
5.8.6 最后一遍
5.8.7 多个体
5.8.8 总结
5.8.9 参考文献
5.9 过程式关卡生成
5.9.1 大致的方法
5.9.2 关卡设计
5.9.3 使用预制的几何体
5.9.4 图的生成
5.9.5 把预制件映射到图中
5.9.6 可见性和碰撞检测
5.9.7 增加关卡内容
5.9.8 总结
5.9.9 参考文献
5.10 重组shader
5.10.1 组合效果
5.10.2 处理组合爆炸
5.10.3 通过HLSL生成shader变体
5.10.4 整合重组的shader
5.10.5 通过shader建立完整的流水线
5.10.6 其他问题
5.10.7 总结
5.10.8 参考文献
第6章 网络和多玩家
引言
6.1 保持大型多人在线游戏大型、在线和永存
6.1.1 快速浏览
6.1.2 大型化
6.1.3 保持在线
6.1.4 保持永存
6.1.5 总结
6.1.6 参考文献
6.2 实现一个无缝的世界服务器
6.2.1 一些定义
6.2.2 实现
6.2.3 远程控制器,或如何管理服务器的启动时期
6.2.4 代理服务器
6.2.5 登录服务器
6.2.6 节点服务器
6.2.7 世界管理器
6.2.8 由此而往何处
6.2.9 IOCP
6.2.10 参考文献
6.3 设计一个脏话过滤系统
6.3.1 语法与内容
6.3.2 字典
6.3.3 解析器
6.3.4 过滤
6.3.5 最好的过滤实践
6.3.6 人工干涉
6.3.7 总结
6.3.8 参考文献
6.4 远程过程调用系统的快速和高效实现 
6.4.1 RPC:简介
6.4.2 RPC:设计
6.4.3 RPC:实现
6.4.4 RPC:使用
6.4.5 样例程序
6.4.6 更多特性
6.4.7 总结
6.4.8 参考文献
6.5 在对等通信中克服网络地址转换
6.5.1 读者
6.5.2 IP地址
6.5.3 套接字使用
6.5.4 路由器、点、协议
6.5.5 UDP包图
6.5.6 什么是NAT
6.5.7 NAT是如何破坏客户/服务协议的
6.5.8 NAT是如何破坏对等协议的
6.5.9 用于游戏的端到端解决方案
6.5.10 总结
6.5.11 参考文献
6.6 一个可靠的消息协议
6.6.1 术语定义
6.6.2 为什么要可靠的消息
6.6.3 传统的可靠消息
6.6.4 一个简单的方法
6.6.5 总结
6.6.6 延伸阅读
6.7 安全的随机数系统
6.7.1 随机数影响在线游戏
6.7.2 网络模型
6.7.3 随机数池
6.7.4 随机数发生器
6.7.5 重载标准的rand()和srand()
6.7.6 下一步:记录和调试
6.7.7 下一步:即时重放
6.7.8 总结
6.7.9 参考文献
6.8 安全的设计
6.8.1 安全问题真的如此重要么?
6.8.2 目标
6.8.3 术语
6.8.4 威胁模型:测试不安全性
6.8.5 安全策略:让威胁无效
6.8.6 同时修订两个文档
6.8.7 该技术的其他优势
6.8.8 延伸阅读
6.8.9 总结
6.8.10 参考文献
第7章 音频
引言
7.1 多线程音频编程技巧
7.1.1 多线程编程简介
7.1.2 线程的术语和机制
7.1.3 鉴别适合多线程编程的音频任务
7.1.4 Intel的超线程技术是什么
7.1.5 线程编程技巧和操作
7.1.6 多线程的示例程序
7.1.7 实时流数据机制
7.1.8 流和线程
7.1.9 总结
7.1.10 参考文献
7.2 基于组的声音管理
7.2.1 API包装预览
7.2.2 能力
7.2.3 定义组
7.2.4 实现细节
7.2.5 结论
7.3 利用三维曲面作为音频发生器
7.3.1 方法
7.3.2 点发生器
7.3.3 线发生器
7.3.4 球体发生器
7.3.5 方体发生器
7.3.6 总结
7.3.7 光盘上的内容
7.3.8 参考文献
7.4 基于回馈延迟网络(FDN)的快速环境反响
7.4.1 怎样将FDN作为资源来利用
7.4.2 什么是反响
7.4.3 回馈延迟网络(Feedback Delay Network)
7.4.4 选择正确的回馈矩阵
7.4.5 选择正确的延迟长度
7.4.6 控制回响时间
7.4.7 sweeping和细部延迟问题
7.4.8 总结和可能的改进
7.4.9 感谢
7.4.10 参考文献
7.5 单演讲者语音识别简介
7.5.1 引言
7.5.2 识别系统
7.5.3 特征提取
7.5.4 即时配对匹配
7.5.5 训练
7.5.6 局限性
7.5.7 总结
7.5.8 参考文献


📜 SIMILAR VOLUMES


游戏编程精粹 1
✍ 德洛拉 📂 Library 📅 2004 🏛 人民邮电出版社 🌐 Chinese

<p>本书是由40多位国外游戏开发行业最为优秀的程序员撰稿的技术文集。每篇文章都针对游戏编程中的某个特定问题,不仅提供了解决思路,还给出了能立即应用到代码中的算法和源码。全书分为通用编程技术、数学技巧、人工智能、多边形技术和像素特效五章;附录部分提供了两个非常有用的工具库,矩阵工具库和文本工具库;随书附带光盘中包含有全书所有的源程序、演示程序、附录中的两个工具库以及glSet叩和GLUT等开发工具。</p> <p>本书适合游戏开发专业人员阅读。专家级开发人员可以立刻应用书中介绍的技巧,而初中级程序员通过阅读本书将增强其技能和知识。本书是游戏程序员必备的参考资料。</p> <p></p>

游戏编程精粹2
✍ 德洛拉 📂 Library 📅 2003 🏛 人民邮电出版社 🌐 Chinese

<p>欢迎阅读《游戏编程精粹2》。《游戏编程精粹2》精选了70篇讨论各种游戏编程主题的文章,读者可将其中阐述的技术直接应用到游戏中。能给读者呈现一本这样的图书,我感到自豪。这是一本必备的参考资料,是40多位经验丰富的游戏开发人员智慧和经验的结晶。</p>

游戏编程精粹3
✍ Dante Tregria 📂 Library 📅 2003 🏛 人民邮电出版社 🌐 Chinese

<p>《游戏编程精粹3》是“游戏编程精粹”系列的最新一卷,充满了即学即用的大师技巧、创意、建议和代码,并且提供了成功商业游戏中的许多解决方案。《游戏编程精粹3》覆盖了游戏开发的所有关键阶段,融合了70位顶尖高手的开发心得,每章还由一位该领域的专家编辑把关,以确保内容的原创性、准确性和实用性。</p>

游戏编程精粹4
✍ 柯姆斯 📂 Library 📅 2005 🏛 人民邮电出版社 🌐 Chinese

<p>本书秉承了“游戏编程精粹”系列的一贯作风,挟60余篇崭新的技术文章以飨读者。它将再次无可争议地成为一本游戏开发者不可多得的参考书。由于全部作者都来自于亲手打造当今优秀游戏的经验丰富的开发者们,读者在文章中不但可以找到针对疑难问题的有效解决方案,而且常能找到令人玩昧再三的深刻见解。它们将激起读者探索的欲望和创意的火花。新一卷的“游戏编程精粹”对于游戏程序员来说,无疑是一本宝贵的参考书。</p>

游戏编程精粹6
✍ Michael Dickheiser 📂 Library 📅 2007 🏛 人民邮电出版社 🌐 Chinese

<p>《游戏编程精粹GAME PROGRAMMING6》是游戏编程精粹系列书的最新版本,内容涉及通用编程、数学和物理、人工智能、脚本和数据驱动系统、图形学、音频音效、网络与多人在线游戏,以及游戏测试和手机游戏等内容,具有较强的先进性和实用性。随书附带光盘中提供了全书所有的源程序、演示程序及需要的各种游戏开发的第三方工具。因此,无论你是一个刚刚起步的游戏开发新手,还是资深业界专家,都能够在本书中找到灵感,增强洞察力及开发的技能。应用书中介绍的开发经验和技巧于实际项目中,将缩短开发时间,提高效率。</p>

游戏编程精粹7
✍ Scott Jacobs 📂 Library 📅 2010 年7月 🏛 人民邮电出版社 🌐 Chinese

<p>本书是游戏编程精粹系列的最新一本,内容涉及通用编程、数学和物理、人工智能、音频、图形学、网络和多人游戏、脚本和数据驱动系统等内容,具有较强的先进性和通用性。随书附带光盘中提供了本书的源程序、演示程序以及需要的各种游戏开发的第三方工具。</p> <p>因此,无论你是一个刚刚起步的游戏开发新手,还是资深业界专家,都能够在本书中找到灵感,增强洞察力及开发的技能。将书中介绍的开发经验和技巧应用于实际项目中,将缩短开发时间,提高效率。</p>