图书介绍

游戏编程全接触2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

游戏编程全接触
  • (美)Mike McShaffry著;冯兆麟,孔祥一,李华杰译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115132194
  • 出版时间:2006
  • 标注页数:387页
  • 文件大小:41MB
  • 文件页数:412页
  • 主题词:游戏-应用程序-程序设计

PDF下载


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

下载说明

游戏编程全接触PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 游戏编程很奇怪,因为3

1.1 好的方面3

第一部分 游戏编程基础3

1.1.1 工作4

1.1.2 人4

1.1.3 工具——软件开发包(SDK)5

1.1.4 硬件5

1.1.5 平台6

1.1.6 会展7

1.2.1 游戏编程难得离谱8

1.2 坏的地方8

1.2.2 其他零碎9

1.2.3 那不是个bug——那是个特性9

1.2.4 工具10

1.3 恶心之处10

1.3.1 命中移动目标11

1.3.2 冲刺模式(和冲刺大餐)11

1.3.3 哼,骗子12

1.3.4 操作系统地狱12

1.4 这一切都值得,对吗?13

1.3.5 雇员流动的天然特质13

2.1 显示技术:快速概述15

2.1.1 分辨率和位深15

第2章 游戏中有什么15

2.1.2 核心显示技术:2D或者3D17

2.2 混合2D和3D技术23

2.2.1 Grim Fandango23

2.2.2 视频驱动程序和性能问题24

2.3 我必须用DirectX吗25

2.3.1 DirectX的设计逻辑体系25

2.3.3 DireetSound或者RAD游戏工具的Miles Sound26

2.3.2 Direct3D或者OpenGL26

2.3.4 DirectInput或者自己实现27

2.3.5 DirectPlay、TCP或者UDP27

2.3.6 DirectShow或Bink27

2.3.7 DirectMusic或自己实现28

2.4 用户界面编码28

2.5 资源缓冲28

2.6 主循环29

2.7 其他30

3.1 不可或缺的设计实践31

第3章 所有游戏程序员都应该了解的“简单东西”31

3.1.1 避免隐藏代码和非简单操作32

3.1.2 类结构:保持简单32

3.1.3 继承和包含33

3.1.4 变坏的虚函数33

3.1.5 使用接口类34

3.1.6 考虑使用工厂34

3.1.7 从游戏逻辑中分离用户界面35

3.1.8 实现流构造函数35

3.2.1 引用计数36

3.2 智能指针和裸指针36

3.2.2 智能指针37

3.3 正确使用内存41

3.3.1 了解不同种类的内存41

3.3.2 优化内存访问44

3.3.3 内存对齐45

3.3.4 虚拟内存46

3.3.5 使用内存映射文件46

3.3.6 编写自己的内存管理器48

3.4 游戏脚本语言49

3.4.1 使用脚本来处理文本50

3.4.3 解释与编译51

3.4.2 事件脚本51

3.4.4 用Lex和Yacc开发自己的语言52

3.4.5 Python和Lua56

3.5 Mike一背包的好东西57

3.5.1 一个很棒的随机数发生器57

3.5.2 用Optional<T>支持可选变量59

3.5.3 集合的伪随机遍历64

3.6 这并不是那么简单67

第4章 build游戏71

4.1 一点动机71

第二部分 让游戏跑起来71

4.2 创建项目72

4.2.1 创建坚不可摧的目录结构72

4.2.2 游戏引擎放在哪里?75

4.2.3 Visual Studio build选项配置75

4.2.4 build配置76

4.3 源代码仓库和版本控制76

4.3.1 NXN的AlienBrain77

4.3.2 微软的Visual SourceSafe78

4.3.3 免费的东西:CVS、RCS、78

4.3.6 使用源代码控制分支79

4.3.4 Perforce软件的Perforce79

4.3.5 非常昂贵的工具:StarTeam和ClearCase79

4.4 build游戏:一门黑色艺术?81

4.4.1 自动化build82

4.4.2 build机器82

4.4.3 自动build脚本82

4.5 创建build脚本83

4.5.1 标准build83

4.5.2 里程碑build84

4.6 多个项目和共享代码85

4.7 最后的建议86

第5章 用户界面编程和输入设备87

5.1 获取设备状态87

5.2 使用鼠标(和游戏杆)90

5.2.1 捕获鼠标91

5.2.2 使用鼠标拖放92

5.3 使用键盘94

5.3.1 Mike的键盘窥探器94

5.3.2 GetAsyncKeyState()和其他函数97

5.4.1 屏幕98

5.4 用户界面组件98

5.3.3 在Windows下处理Alt键98

5.4.2 对话框:模态与非模态101

5.4.3 控件103

5.4.4 控件判别105

5.4.5 命中测试和焦点顺序106

5.4.6 控件状态107

5.5 更多控件属性107

5.5.4 拖动108

5.5.3 上下文敏感帮助108

5.5.2 工具提示108

5.5.1 热键108

5.5.5 声音和动画109

5.6 最后的用户界面提示109

第6章 每一个游戏开发者都应该掌握的2D知识111

6.1 2D绘制和DirectX112

6.1.1 像素和视频硬件112

6.1.2 视频硬件和缓存113

6.1.3 视频表面和内存表面115

6.2 基本2D绘制概念116

6.2.1 Windows位图和其他GDI的小玩意117

6.2.2 颜色键和色度键118

6.2.3 复制表面120

6.2.4 使用Alpha通道复制表面121

6.3 绘制文本127

6.4 使用精灵(sprite)130

6.4.1 一个基本的精灵类130

6.4.2 排序顺序和位置131

6.4.3 绘制和动画132

6.4.4 初始化精灵135

6.4.5 Restore()136

6.4.6 脏矩形绘制136

6.5 图形文件格式137

6.6 结论138

第7章 初始化和主循环139

7.1 初始化101139

7.2 C++初始化中的一些缺陷140

7.3 初始化游戏144

7.3.1 检查系统资源144

7.3.2 计算CPU速度145

7.3.3 估计VRAM149

7.3.4 加载游戏调试选项150

7.3.6 初始化资源缓存151

7.3.5 你拥有的是个垃圾袋吗151

7.3.7 使用CreateWindow来创建窗口152

7.3.8 初始化声音系统154

7.3.9 加载用户可设置的游戏选项154

7.3.10 创建绘图表面155

7.3.11 初始化游戏对象156

7.4 主循环156

7.4.1 渲染并呈现屏幕159

7.4.2 更新游戏状态161

7.4.3 一个简单的协同多任务调度器163

7.4.4 从CProcess派生的类示例169

7.4.5 CProcess派生类的更多使用170

7.5 平稳着陆:干净漂亮地退出170

7.5.1 我该如何从这里逃脱171

7.5.2 关闭游戏172

7.6 我现在就可以做游戏了吗173

第8章 载入并缓冲资源175

8.1 图形和音乐的格式175

8.1.1 位图和纹理176

8.1.2 哪一个更好:24位、16位还是8位的图形176

8.1.4 声音和音乐177

8.1.3 使用有损压缩177

8.1.5 视频和过场电影178

8.2 资源文件179

8.2.1 打包资源到一个文件中180

8.2.2 打包资源的其他一些优点181

8.3 数据压缩181

8.4 iPac:一个资源文件生成器182

8.4.1 iPac概观182

8.4.2 iPac数据文件185

8.4.3 生成头文件187

8.4.4 其他与管理资源有关的特性188

8.5 资源高速缓存188

8.6 世界设计和缓存预测193

8.7 我的缓存不够了196

第三部分 构建你的游戏199

第9章 所有游戏程序员必须掌握的3D图形学知识199

9.1 3D图形流水线199

9.2 你的DirectX 9试练场200

9.3 3D数学101200

9.3.1 坐标和坐标系统201

9.3.2 矢量数学202

9.3.3 矩阵数学206

9.3.4 四元组数学211

9.3.5 视变换213

9.3.6 投影变换214

9.4 我受够数学了——请停下来215

9.4.1 三角形215

9.4.2 光照、法线和颜色216

9.4.3 贴有纹理的顶点218

9.4.5 三角形网格219

9.4.4 其他顶点数据219

9.4.6 索引的三角形网格221

9.4.7 材质223

9.4.8 纹理224

9.4.9 二次抽样(subsampling)225

9.4.10 mip-mapping226

9.5 3D图形——它那么容易226

第10章 3D引擎229

10.1 建立项目229

10.2 使用场景图230

10.2.1 场景图结点234

10.2.2 建造场景239

10.2.3 一个实用的摄像机控制器242

10.2.4 把SceneGraph放进DirectX游乐场247

10.3 遗漏了什么?249

10.4 3D中间件回顾250

10.4.1 Renderware Graphics251

10.4.2 Intrinsic Alchemy251

10.4.3 NDL出品的NetImmerse252

10.4.4 虚幻引擎252

10.5 开发自己的3D引擎252

10.6 物理引擎253

10.7 还没满足?254

第11章 开发Windows游戏需要特殊考虑的事项255

11.1 Microsoft Foundation Class(MFC)到底怎么样256

11.1.1 MFC——你一定疯了!!?@!257

11.1.2 MFC——你一定要使用它257

11.1.3 对MFC的最后裁决258

11.2 窗口模式和全屏幕模式259

11.2.1 丢失或者不兼容的表面260

11.2.2 坏窗口262

11.2.4 需要处理的消息263

11.2.3 GDI对话框和页面翻转(Flipping)263

11.2.5 WM_ACTIVATE264

11.2.6 WM_SYSCOMMAND265

11.2.7 WM_MOVE265

11.2.8 WM_DEVICECHANGE266

11.2.9 WM_POWERBROADCAST267

11.2.10 WM_DISPLAYCHANGE267

11.2.11 WM_ENTERSIZEMOVE、WM_EXITSIZEMOVE267

11.2.12 WM_GETMINMAXINFO267

11.3.1 API兼容性和UNICODE268

11.3 操作系统相关的内容268

11.3.2 游戏的注册表键269

11.3.3 Windows 95269

11.3.4 Windows 98和Windows ME269

11.3.5 Windows NT270

11.3.6 Windows 2000270

11.3.7 Windows XP270

11.4 “专为Windows设计(Designed for Windows)”标志认证程序270

11.5 结论285

第12章 调试游戏287

12.1 处理失败的艺术288

12.2 调试基础289

12.2.1 使用调试器291

12.2.2 安装Windows符号文件292

12.2.3 调试全屏游戏294

12.2.4 远程调试294

12.2.5 调试微型转储(dump)296

12.3 调试技巧299

12.3.1 调试是一个实验300

12.3.2 重现bug301

12.3.4 设置下一语句302

12.3.3 减小复杂度302

12.3.5 汇编级别调试303

12.3.6 给代码添加调料305

12.3.7 提取调试信息306

12.3.8 Lint和其他代码分析器306

12.3.9 BoundsChecker和实时分析器307

12.3.10 消失的bug307

12.3.11 调整数值307

12.3.12 caveman调试308

12.3.13 当一切办法都失败了308

12.4.1 内存泄漏和堆溢出309

12.4 各种各样的bug309

12.4.2 游戏数据损坏312

12.4.3 栈破坏313

12.4.4 剪切和粘贴的bug314

12.4.5 空间不足314

12.4.6 只有在release模式才出现的bug315

12.4.7 惹事生非的多线程315

12.4.8 奇怪的那些315

12.5 结束小思317

13.1 好进度、坏进度321

第13章 进度计划的艺术321

第四部分 专业游戏制作321

13.2 所有进度计划的关键:里程碑322

13.3 做计划前需要懂得的事情330

13.3.1 使用微软Project的技巧与诀窍330

13.3.2 电脑游戏中的关键编程任务331

13.3.3 基于物件的进度安排332

13.3.4 编写用户手册和cluebook333

13.3.5 了解队伍,了解游戏类型333

13.4 创建进度计划333

13.4.1 收集任务仓库334

13.4.3 分配任务和平衡进度335

13.4.2 关于预计时间的一些说明335

13.4.4 产品黑洞337

13.4.5 把进度切分成里程碑338

13.4.6 撰写项目里程碑文档339

13.4.7 编写个人里程碑文档339

13.4.8 在放出猎犬前还有一件你应该知道的事情340

13.5 把事情做对340

第14章 测试须知343

14.1 游戏为什么有bug343

14.1.1 理由1:开发组从没有见到bug重现343

14.1.2 理由2:项目组决定把bug置之不理344

14.2 测试计划345

14.2.1 功能测试345

14.2.2 压力测试348

14.2.3 可玩性测试350

14.2.4 可用性测试350

14.2.5 配置测试351

14.3 安排测试352

14.4 自动化的测试352

14.5 bug数据库359

14.6 哪些bug得到修正365

14.6.2 bug花费高昂367

14.6.1 绝不要修复这些bug367

14.7 对bug数据库的静态分析368

14.8 测试组370

14.9 beta公测371

14.10 结束语372

第15章 驶向结束373

15.1 结束时的问题374

15.1.1 质量374

15.1.2 代码375

15.1.3 内容378

15.2.1 严重滞后于计划的项目379

15.2 应付大麻烦379

15.2.2 人事相关问题382

15.2.3 竞争对手会置你于死地384

15.2.4 没有出路,是吗?384

15.2.5 最后说一句:不要慌张385

15.3 光明就在前方——毕竟不是一场训练385

15.3.1 测试存档385

15.3.2 补丁build或者产品演示386

15.3.3 事后分析386

15.3.4 如何利用你的时间387

热门推荐