图书介绍

游戏编程精粹PDF|Epub|txt|kindle电子书版本网盘下载

游戏编程精粹
  • (美)MichaelDickheiser编 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115167265
  • 出版时间:2007
  • 标注页数:572页
  • 文件大小:60MB
  • 文件页数:625页
  • 主题词:游戏-应用程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

游戏编程精粹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.4DLL工厂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

热门推荐