图书介绍
游戏编程精粹PDF|Epub|txt|kindle电子书版本网盘下载
![游戏编程精粹](https://www.shukui.net/cover/55/31732602.jpg)
- (美)MichaelDickheiser编 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115167265
- 出版时间:2007
- 标注页数:572页
- 文件大小:60MB
- 文件页数:625页
- 主题词:游戏-应用程序-程序设计
PDF下载
下载说明
游戏编程精粹PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 通用编程2
引言&William E.Damon Ⅲ 2
1.1 面向编辑器的上下文相关HUD&Grex游戏公司,Adm Martin 3
1.1.1 问题3
1.1.2 解决方案6
1.1.3 实现7
1.1.4 用户控制10
1.1.5 总结11
1.1.6 参考文献11
1.2 在游戏中解析文本数据&Aurelio Reis 12
1.2.1 开始之前12
1.2.2 token到底是什么12
1.2.3 编写词法分析器13
1.2.4 工作原理14
1.2.5 制定自己的格式15
1.2.6 解析token列表17
1.2.7 总结18
1.2.8 参考文献18
1.3 基于组件的对象管理&Circle Studio公司,Bjarne Rene 19
1.3.1 除旧迎新19
1.3.2 组件20
1.3.3 系统的创建23
1.3.4 总结29
1.4 用模板实现一个可在C++中使用的反射系统&Artificial Mind&Movement公司,Dominic Fillion 30
1.4.1 需求31
1.4.2 第1部分:运行时类型信息31
1.4.3 在RTTI的实现中使用模板33
1.4.4 关于RTTI的其他修改建议35
1.4.5 第2部分:属性对象36
1.4.6 属性的存储38
1.4.7 属性类型38
1.4.8 属性注册钩子(Hook)函数39
1.4.9 属性的注册40
1.4.10 脚本应用41
1.4.11 Tweaker应用42
1.4.12 其他应用42
1.4.13 总结42
1.4.14 参考文献43
1.5 可加速BSP算法的球体树&Artificial Mind&Movement公司,Dominic Filion 44
1.5.1 BSP算法44
1.5.2 创建BSP树45
1.5.3 优化最初步骤46
1.5.4 总结51
1.5.5 参考文献51
1.6 改进后的视锥剔除算法&Frank Puig Placeres 52
1.6.1 视锥剔除52
1.6.2 传统的六面法53
1.6.3 雷达法54
1.6.4 这个点在视锥内部吗?54
1.6.5 球体在哪里?56
1.6.6 其他应用57
1.6.7 进一步的改造58
1.6.8 总结60
1.6.9 参考文献60
1.7 通用的分页管理系统&Ignacio Incera Cruz 61
1.7.1 老式的分页解决方案:一查到底61
1.7.2 GP分页解决方案:只检查需要的62
1.7.3 索引是关键62
1.7.4 GPtile:空间中的块65
1.7.5 The world:搜索空间67
1.7.6 窗口:在GPworld中航行69
1.7.7 多窗口,多用户70
1.7.8 优化:多线程分页71
1.7.9 总结71
1.7.10 参考文献71
1.8 基于栈的大规模状态机&James Boer 72
1.8.1 传统状态机编码及相关问题72
1.8.2 用C++方法解决游戏状态难题74
1.8.3 状态接口类75
1.8.4 状态的堆叠管理:为什么三维比二维好用75
1.8.5 状态对象管理系统76
1.8.6 总结78
1.8.7 参考文献79
1.9 使用BSP树构造CSG几何体&Octavian Marius Chincisan 80
1.9.1 CSG的布尔运算80
1.9.2 为什么要使用BSP树84
1.9.3 BSP树的实现85
1.9.4 组合装配86
1.9.5 总结88
1.9.6 参考文献89
1.10 在游戏中集成Lua&eV Interactive公司,Matthew Harmon90
1.10.1 Lua的概况90
1.10.2 Lua与C语言的接口92
1.10.3 在游戏中嵌入Lua94
1.10.4 实时性方面的考虑97
1.10.5 脚本管理框架99
1.10.6 总结102
1.10.7 参考文献102
1.11 用基于policy的设计改进Freelist&Nathan Mefford 103
1.11.1 Freelist概述103
1.11.2 Policy:雷霆救兵104
1.11.3 分解Freelist106
1.11.4 实现Freelist:这是它吗?107
1.11.5 选择最佳的policy109
1.11.6 可能性111
1.11.7 总结113
1.11.8 参考文献113
1.12 实时远程调试信息日志生成器&Microids Canada公司,Patrick Duquette 114
1.12.1 对标准化的调试日志的需求114
1.12.2 数据表示:你可看到我所看到的115
1.12.3 本文提议的解决方案115
1.12.4 游戏日志模块117
1.12.5 可能的改进和扩展118
1.12.6 总结118
1.12.7 参考文献118
1.13 透明的类的保存和加载技巧&Patrick Meehan 119
1.13.1 小窍门119
1.13.2 FreezeMgr的实现120
1.13.3 其他几个特性124
1.13.4 如何使用范例125
1.13.5 总结126
1.13.6 参考文献126
1.14 高效且忽略缓存的ABT树实现方法&瑞士联邦理工学院(Swiss Federal Institute of Technology,简称EPFL),虚拟现实实验室(virtual Reality Lab,简称VRLab),Sébastien Schertenleib 128
1.14.1 计算机内存结构128
1.14.2 ABT树129
1.14.3 确认阶段134
1.14.4 总结134
1.14.5 参考文献134
1.15 状态机的可视化设计&Scott Jacobs 136
1.15.1 为什么需要代码生成136
1.15.2 让“可视”成为可能137
1.15.3 状态的管理138
1.15.4 系统组装138
1.15.5 总结141
1.15.6 参考文献141
1.16 泛型组件库&Warrick Buchanan 142
1.16.1 类型识别系统142
1.16.2 工厂143
1.16.3 工厂单例与子工厂145
1.16.4DLL工厂145
1.16.5 组件146
1.16.6 组件接口147
1.16.7 接口版本管理147
1.16.8 定义组件及其接口149
1.16.9 组件的使用150
1.16.10 配置组件库151
1.16.11 总结151
1.16.12 参考文献151
1.17 选择自己的路线——菜单系统&Wendy Jones 152
1.17.1 为什么需要菜单系统152
1.17.2 菜单系统的对象153
1.17.3 总结158
1.17.4 参考文献159
第2章 数学162
引言&Naughty Dog公司,Eric Lengyel 162
2.1 在计算机图形学中使用几何代数&Chris Lomont 163
2.1.1 引言163
2.1.2 几何代数164
2.1.3 线性代数169
2.1.4 词典171
2.1.5 实例172
2.1.6 总结以及将来的方向176
2.1.7 参考文献177
2.2 最小加速度Hermite曲线&Tony Barrera,Barrera Kristiansen AB;G?vle大学创意媒体实验室Anders Hast;乌普萨拉大学图像分析中心,Ewert Bengtsson 178
2.2.1 连接具有C1连续的最小弯曲曲线180
2.2.2 封闭的最小弯曲的曲线181
2.2.3 总结182
2.2.4 参考文献182
2.3 动画中基于样条的时间控制&Red Storm Entertainment公司,James M.Van Verth 183
2.3.1 开始183
2.3.2 一般的距离-时间函数184
2.3.3 根据样条构造距离-时间函数185
2.3.4 接口选择191
2.3.5 总结191
2.3.6 参考文献191
2.4 快速四元数近似插值&Andy Thomason 193
2.4.1 使用四元数来表示旋转193
2.4.2 四元数旋转插值195
2.4.3 近似算法196
2.4.4 算法之间的比较206
2.4.5 Squad相关的计算207
2.4.6 延伸阅读208
2.4.7 总结208
2.4.8 参考文献208
2.5 极小极大数值近似&Christopher Tremblay 209
2.5.1 众所周知的优化209
2.5.2 什么是理想的近似210
2.5.3 极小极大近似的介绍211
2.5.4误差分析214
2.5.5 进一步改进近似215
2.5.6 参考文献216
2.6 应用于镜面和入口的斜视锥&Eric Lengyel 217
2.6.1 平面的表示217
2.6.2 投影矩阵218
2.6.3 裁剪面的修改219
2.6.4 OpenGL实现221
2.6.5 Direet3D实现224
2.6.6 致谢225
2.6.7 参考文献225
第3章 人工智能228
引言&美国西北大学,Robin Hunicke 228
3.1 利用导航网格实现自动掩体寻找&Radical Entertainment公司,Borut Pfeifer 230
3.1.1 导航网格230
3.1.2 开放目标寻路231
3.1.3 搜索掩体位置232
3.1.4 在掩体间行进233
3.1.5 团队掩护行为234
3.1.6 其他功能235
3.1.7 总结235
3.1.8 参考文献236
3.2 使用人工势场实现快速目标评级&Factor 5公司,Markus Breyer 237
3.2.1 基本思想237
3.2.2 公式238
3.2.3 势值函数的评估240
3.2.4 可视化240
3.2.5 方向场的应用241
3.2.6 多维扩展242
3.2.7 总结243
3.3 利用Lanchester损耗模型来预测战斗结果&Page 44 Studios有限责任公司,John Bolton 244
3.3.1 概述244
3.3.2 场景1:全体混战245
3.3.3 场景2:狭窄的石阶247
3.3.4 场景3:炮战248
3.3.5 场景4:关底Boss250
3.3.6 关于战斗力的再讨论251
3.3.7 局限性252
3.3.8 总结252
3.3.9 参考文献252
3.4 为游戏AI实现一个实用的智能规划系统&Relic Entertainment公司,Jamie Cheng;加拿大阿尔伯塔大学计算机科学系,Finnegan Southey 254
3.4.1 规划系统的框架255
3.4.2 规划域255
3.4.3 一个多主体规划器的例子258
3.4.4 规划的搜索262
3.4.5 几个应用问题263
3.4.6 优化265
3.4.7 总结266
3.4.8 参考文献266
3.5 针对多线程架构的决策树查询算法优化&Intel公司,Chuck DeSylva 268
3.5.1 概述268
3.5.2 注意事项269
3.5.3 优化270
3.5.4 总结273
3.5.5 参考文献273
3.6 利用并行虚拟机实现AI系统的并行开发&2015公司,Michael Ramsey 275
3.6.1 功能强大,但不白给275
3.6.2 核心术语及概念276
3.6.3 任务的创建277
3.6.4 任务管理279
3.6.5 PVM的实现282
3.6.6 实际应用:即时战略游戏283
3.6.7 强化游戏性284
3.6.8 总结285
3.6.9 参考文献286
3.7 超越A*算法&Xtrem Strategy游戏公司,Mario Grimani;Monolith Productions公司,Matthew Titelbaum 287
3.7.1 问题的定义287
3.7.2 算法288
3.7.3 算法的改进290
3.7.4 实现的细节292
3.7.5 应用实例292
3.7.6 性能方面的考虑297
3.7.7 几个前沿问题298
3.7.8 总结299
3.7.9 参考文献299
3.8 实现最小重新规划开销的先进寻路算法:动态A*(D*)算法&Marco Tombesi 301
3.8.1 D*算法302
3.8.2 D*算法的实现细节302
3.8.3 实例303
3.8.4 在游戏中又如何呢?305
3.8.5 总结305
3.8.6 参考文献305
第4章 物理学308
引言&Red Storm娱乐公司,Mike Dickheiser 308
4.1 游戏物理中空气动力学的近似计算&美国应用研究联营公司(Applied Research Associates Inc.),Graham Rhodes 310
4.1.1 背景知识310
4.1.2 钝体上的作用力313
4.1.3 流线体上的作用力315
4.1.4 应用实例318
4.1.5 总结319
4.1.6 参考文献320
4.2 动态青草的模拟和其他自然环境特效&沃特卢大学,Rishi Ramraj 321
4.2.1 水面特效321
4.2.2 青草的模拟323
4.2.3 变化传播模型324
4.2.4 树叶的模拟:模型的应用325
4.2.5 总结327
4.2.6 参考文献327
4.3 使用质点-弹簧模型获得真实的布料动画&塞维利亚大学,Juan M.Cordero 328
4.3.1 布料的离散表示328
4.3.2 作用力330
4.3.3 动态系统方法333
4.3.4 仿真模拟334
4.3.5 结论334
4.3.6 参考文献335
4.4 适合游戏开发的实用柔体动画技术:受压柔体模型&波兰弗罗茨瓦夫大学,Maciej Matyka 336
4.4.1 简化的质点-弹簧模型337
4.4.2 PSB模型背后的物理学338
4.4.3 PSB模型的实现339
4.4.4 典型的质点-弹簧模型340
4.4.5 PSB步骤341
4.4.6 体积计算341
4.4.7 采用预估修正法的Heun积分342
4.4.8 时间步长的计算速度342
4.4.9 几个仿真实例343
4.4.10 进一步的发展344
4.4.11 总结344
4.4.12 源代码说明345
4.4.13 致谢345
4.4.14 参考文献345
4.5 使用反馈控制系统让“布娃娃”活起来&苹果公司,Michael Mandel 347
4.5.1 现有的研究成果347
4.5.2 仿真过程的控制348
4.5.3 行为动作的创建350
4.5.4 总结351
4.5.5 致谢351
4.5.6 参考文献351
4.6 预定式物理系统的设计&Daniel F.Higgins 353
4.6.1 什么是预定式物理系统353
4.6.2 预定式物理引擎356
4.6.3 打磨上光360
4.6.4 龙卷风:一个好的开始363
4.6.5 总结365
4.6.6 参考文献366
4.7 预定式物理系统:相关技术及应用&Shawn Shoemaker 367
4.7.1 为什么要使用预定式物理系统367
4.7.2 预定式物理系统368
4.7.3 应用1:RTS游戏中建筑物的毁坏369
4.7.4 应用2:跳跃369
4.7.5 应用3:爆炸特效中的物体运动370
4.7.6 应用4:浮力371
4.7.7 应用5:伞兵371
4.7.8 总结373
4.7.9 参考文献373
4.8 三维汽车模拟器中真实的摄像机运动&匈牙利布达佩斯技术经济大学,控制工程与信息技术系,图形图像小组,Barnabás Aszódi,Szabolcs Czuczor 374
4.8.1 我们需要什么?物理法则374
4.8.2 我们得到的是什么?偶尔不够真实的运动375
4.8.3 考察摄像机的控制376
4.8.4 终极决策:实现人类的行为377
4.8.5 编程中涉及的问题379
4.8.6 总结382
4.8.7 关于演示程序382
第5章 图形图像384
引言&ATI公司,Jason L.Mitchell 384
5.1 在现代GPU上渲染逼真的云彩&育碧公司,Jean-Fran?ois Dubé 386
5.1.1 制造噪音386
5.1.2 云彩的密度388
5.1.3 云彩的光照处理389
5.1.4 优化390
5.1.5 总结390
5.1.6 参考文献391
5.2 下雪吧,下雪吧,下雪吧(下雨吧)&微软公司(现就职于Google公司),Niniane Wang;微软公司,Bretton Wade 392
5.2.1 使用纹理为粒子束建模393
5.2.2 渲染雪或雨的视差393
5.2.3 用锥体模拟摄像机的移动394
5.2.4 合并到一个矩阵中394
5.2.5 增加美工控制395
5.2.6 总结395
5.2.7 参考文献395
5.3 Widget:快速渲染和持久化小物体&Martin Brownlow 396
5.3.1 Widget的网格396
5.3.2 高效地绘制widget397
5.3.3 裁剪widget401
5.3.4 总结403
5.3.5 参考文献404
5.4 逼真的树木和森林的2.5维替用物&布达佩斯理工大学,Gábor Szijártó 405
5.4.1 引言405
5.4.2 以前的基于图像的方法406
5.4.3 改进以前的方法407
5.4.4 算法408
5.4.5 实现409
5.4.6 总结412
5.4.7 参考文献413
5.5 无栅格的可控火焰&佛罗里达中心大学,计算机科学学院,Neeharika Adabala;佛罗里达中心大学,计算机科学学院和电影与数字媒体学院,Charles E.Hughes 414
5.5.1 建模火焰415
5.5.2 实时渲染418
5.5.3 实例和讨论419
5.5.4 总结420
5.5.5 参考文献420
5.6 使用公告牌粒子构建强大的爆炸效果&美国任天堂公司,Steve Rabin 422
5.6.1 最初的闪光422
5.6.2 放射的火苗423
5.6.3 白色的热核心424
5.6.4 强烈的火球424
5.6.5 散发的烟雾425
5.6.6 碎片426
5.6.7 效果表426
5.6.8 额外的感觉426
5.6.9 效率问题427
5.6.10 总结428
5.6.11 参考文献428
5.7 渲染宝石的简单方法&ATI研究院公司,Thorsten Scheuermann 429
5.7.1 技术概览429
5.7.2 法线和cubemap采样问题430
5.7.3 传递的光能430
5.7.4 反射432
5.7.5 光斑433
5.7.6 总结436
5.7.7 参考文献436
5.8 体积化的后期处理&A2M公司,Dominic Filion;摩托罗拉公司,Sylvain Boissé 437
5.8.1 体积化的后期处理437
5.8.2 深度知识438
5.8.3 使用shader作z比较438
5.8.4 像素完美的裁剪439
5.8.5 后期处理440
5.8.6 最后一遍440
5.8.7 多个体440
5.8.8 总结441
5.8.9 参考文献441
5.9 过程式关卡生成&北得克萨斯大学,Timothy Roden和Ian Parberry 442
5.9.1 大致的方法442
5.9.2 关卡设计442
5.9.3 使用预制的几何体443
5.9.4 图的生成444
5.9.5 把预制件映射到图中446
5.9.6 可见性和碰撞检测448
5.9.7 增加关卡内容448
5.9.8 总结449
5.9.9 参考文献449
5.10 重组shader&A2M公司,Dominic Filion 450
5.10.1 组合效果450
5.10.2 处理组合爆炸451
5.10.3 通过HLSL生成shader变体452
5.10.4整合重组的shader454
5.10.5 通过shader建立完整的流水线455
5.10.6 其他问题455
5.10.7 总结456
5.10.8 参考文献456
第6章 网络和多玩家460
引言&Shekhar Dhupelia 460
6.1 保持大型多人在线游戏大型、在线和永存&Tantrum游戏公司,Shea Street 461
6.1.1 快速浏览461
6.1.2 大型化462
6.1.3 保持在线464
6.1.4 保持永存465
6.1.5 总结466
6.1.6 参考文献466
6.2 实现一个无缝的世界服务器&育碧公司,Patrick Duquette 467
6.2.1 一些定义467
6.2.2 实现468
6.2.3 远程控制器,或如何管理服务器的启动时期468
6.2.4 代理服务器468
6.2.5 登录服务器469
6.2.6 节点服务器469
6.2.7 世界管理器472
6.2.8 由此而往何处473
6.2.9 IOCP473
6.2.10 参考文献473
6.3 设计一个脏话过滤系统&Shekhar Dhupelia 475
6.3.1 语法与内容475
6.3.2 字典475
6.3.3 解析器476
6.3.4 过滤476
6.3.5 最好的过滤实践477
6.3.6 人工干涉478
6.3.7 总结478
6.3.8 参考文献478
6.4 远程过程调用系统的快速和高效实现&Hyun-jik Bae 480
6.4.1 RPC:简介483
6.4.2 RPC:设计484
6.4.3 RPC:实现486
6.4.4 RPC:使用489
6.4.5 样例程序490
6.4.6 更多特性490
6.4.7 总结492
6.4.8 参考文献492
6.5 在对等通信中克服网络地址转换&Jon Watte 493
6.5.1 读者493
6.5.2 IP地址494
6.5.3 套接字使用494
6.5.4 路由器、点、协议495
6.5.5 UDP包图496
6.5.6 什么是NAT496
6.5.7 NAT是如何破坏客户/服务协议的499
6.5.8 NAT是如何破坏对等协议的501
6.5.9 用于游戏的端到端解决方案503
6.5.10 总结509
6.5.11 参考文献509
6.6 一个可靠的消息协议&Martin Brownlow 510
6.6.1 术语定义510
6.6.2 为什么要可靠的消息510
6.6.3 传统的可靠消息511
6.6.4 一个简单的方法511
6.6.5 总结514
6.6.6 延伸阅读515
6.7 安全的随机数系统&Shekhar Dhupelia 516
6.7.1 随机数影响在线游戏516
6.7.2 网络模型517
6.7.3 随机数池517
6.7.4 随机数发生器518
6.7.5 重载标准的rand()和srand()520
6.7.6 下一步:记录和调试520
6.7.7 下一步:即时重放520
6.7.8 总结521
6.7.9 参考文献521
6.8 安全的设计&Adam Martin,Grex游戏公司 522
6.8.1 安全问题真的如此重要么?522
6.8.2 目标523
6.8.3 术语523
6.8.4 威胁模型:测试不安全性524
6.8.5 安全策略:让威胁无效527
6.8.6 同时修订两个文档527
6.8.7 该技术的其他优势528
6.8.8 延伸阅读528
6.8.9 总结529
6.8.10 参考文献529
第7章 音频532
引言&Mark DeLoura 532
7.1 多线程音频编程技巧&James Boer 533
7.1.1 多线程编程简介533
7.1.2 线程的术语和机制534
7.1.3 鉴别适合多线程编程的音频任务535
7.1.4 Intel的超线程技术是什么536
7.1.5 线程编程技巧和操作536
7.1.6 多线程的示例程序537
7.1.7 实时流数据机制541
7.1.8 流和线程541
7.1.9 总结543
7.1.10 参考文献543
7.2 基于组的声音管理&eV Interactive公司,Matthew Harmon 544
7.2.1 API包装预览544
7.2.2 能力545
7.2.3 定义组546
7.2.4 实现细节548
7.2.5 总结549
7.3 利用三维曲面作为音频发生器&Sami hamlaoui 550
7.3.1 方法550
7.3.2 点发生器551
7.3.3 线发生器552
7.3.4 球体发生器553
7.3.5 方体发生器554
7.3.6 总结555
7.3.7 光盘上的内容555
7.3.8 参考文献555
7.4 基于回馈延迟网络(FDN)的快速环境反响&Phenomic游戏开发公司,Christian Schüler 556
7.4.1 怎样将FDN作为资源来利用556
7.4.2 什么是反响557
7.4.3 回馈延迟网络(Feedback Delay Network)557
7.4.4 选择正确的回馈矩阵559
7.4.5 选择正确的延迟长度560
7.4.6 控制回响时间560
7.4.7 sweeping和细部延迟问题561
7.4.8 总结和可能的改进563
7.4.9 感谢564
7.4.10 参考文献564
7.5 单演讲者语音识别简介&Julien Hamaide 566
7.5.1 引言566
7.5.2 识别系统567
7.5.3 特征提取568
7.5.4 即时配对匹配570
7.5.5 训练571
7.5.6 局限性572
7.5.7 总结572
7.5.8 参考文献572