第1章 游戏开发概述 1
1.1 计算机游戏历史 1
1.2 什么是游戏 2
1.3 游戏的分类 2
1.3.1 角色扮演游戏 2
1.3.2 网页游戏 2
1.3.3 动作游戏 3
1.3.4 冒险游戏 4
1.3.5 策略模拟类游戏 4
1.4 游戏设计的相关知识 5
1.4.1 计算机图形学 5
1.4.2 艺术设计 6
1.4.3 人工智能 6
1.4.4 人机交互 7
1.5 案例分析:一个典型的游戏循环代码框架 8
1.5.1 典型游戏循环结构 8
1.5.2 打字游戏实例 12
本章小结 19
习题1 19
参考文献 19
第2章 Windows游戏开发基础 20
2.1 事件模型 20
2.2 匈牙利符号表示法 21
2.2.1 变量的命名 22
2.2.2 函数的命名 22
2.2.3 类型和常量的命名 22
2.2.4 类的命名 22
2.2.5 参数的命名 23
2.3 最简单的Windows程序 23
2.3.1 总是从WinMain()开始 24
2.3.2 程序剖析 25
2.3.3 设置MessageBox样式 26
2.4 Windows应用程序基本结构 28
2.5 创建Windows窗口类 28
2.6 注册Windows类 34
2.7 创建窗口 34
2.8 事件句柄 37
2.9 主事件循环 42
2.10 产生一个实时事件循环 47
本章小结 48
习题2 48
参考文献 49
第3章 2D游戏引擎编程接口 50
3.1 精灵动画 50
3.1.1 基本概念 50
3.1.2 图像合成 51
3.1.3 精灵动画的闪烁问题 52
3.2 2D地图技术 53
3.2.1 固定地图 53
3.2.2 滚屏地图 54
3.3 2D碰撞检测 54
3.3.1 地图格子划分检测 54
3.3.2 外包围盒检测 55
3.3.3 像素检测 55
3.4 二维游戏案例 56
3.4.1 界面设计 57
3.4.2 程序流程 57
3.4.3 关键数据结构 61
3.4.4 核心函数 61
本章小结 63
习题3 63
第4章 3D游戏编程的数学基础 64
4.1 坐标系 64
4.1.1 笛卡儿坐标系 64
4.1.2 常用坐标系 65
4.1.3 坐标系嵌套 67
4.1.4 坐标系转换 67
4.2 向量 68
4.2.1 向量的数学定义 68
4.2.2 向量的几何定义 68
4.3 矩阵 69
4.3.1 矩阵的数学定义 69
4.3.2 矩阵的几何解释 70
4.3.3 矩阵和旋转 71
4.4.3 D空间中方位与角位移 73
4.4.1 什么是方位 73
4.4.2 矩阵形式 74
4.4.3 欧拉角 75
4.4.4 四元数 75
4.4.5 各种方法比较 79
4.5 OGRE中的数学应用 80
4.5.1 平移 80
4.5.2 缩放 83
4.5.3 旋转 83
4.5.4 其他 88
4.5.5 总结 89
4.6 OGRE简介 89
4.6.1 OGRE的设计理念 89
4.6.2 OGRE的设计亮点 89
4.6.3 OGRE子系统概述 93
4.7 OGRE简单数学应用实例实现 96
4.7.1 OGRE配置 97
4.7.2 OGRE中的重要知识点 100
4.7.3 平移 100
4.7.4 缩放 103
4.7.5 旋转 104
4.7.6 投影 107
本章小结 109
习题4 109
参考文献 110
第5章 一个基于Unity的3D射击游戏 111
5.1 Unity的工程组织结构 111
5.2 新建工程,导入资源 112
5.2.1 新建工程 112
5.2.2 Unity工作界面介绍 113
5.2.3 Unity资源导入 117
5.3 创建开始场景 118
5.3.1 创建开始场景 118
5.3.2 脚本讲解 120
5.4 创建设置场景 121
5.4.1 创建设置场景 121
5.4.2 脚本讲解 122
5.5 创建游戏场景 125
5.5.1 场景创建 125
5.5.2 地形 125
5.5.3 城墙底部 126
5.5.4 城墙上部 127
5.5.5 平行光光源和点光源 128
5.5.6 袭击物爆炸时的几种音效 130
5.5.7 各种袭击物 132
5.5.8 子弹 142
5.5.9 手枪 143
5.5.10 沙尘暴效果 146
5.5.11 技能:流星火雨 146
5.5.12 技能:极度冰寒 149
5.5.13 主摄像机 151
5.5.14 为场景添加索引 153
5.6 生成游戏exe 153
5.7 游戏运行效果 154
本章小结 155
习题5 155
第6章 3D游戏引擎编程接口 156
6.1 3D游戏引擎框架分析 157
6.1.1 硬件层、设备驱动层、操作系统层、第三方SDK与中间件 157
6.1.2 平台无关层、核心系统层、资源管理器层、用户界面设备层 160
6.1.3 绘制器层、调优调试工具层、碰撞处理与物理计算层 161
6.1.4 动画层、声音层、网络层、Gameplay基础系统层 164
6.1.5 游戏特定相关系统层 166
6.2 场景管理子系统 166
6.3 基于UDK的游戏场景设计 169
6.3.1 场景搭建简介 169
6.3.2 UDK场景编辑器介绍 170
6.3.3 地形模式基础操作 171
6.3.4 摄像机模式基础操作 174
6.3.5 场景光源光照设置 176
6.3.6 游戏场景构建 178
6.4 资源管理子系统 181
6.4.1 脱机资源管理 182
6.4.2 运行时的资源管理 186
本章小结 190
习题6 190
参考文献 191
第7章 游戏场景管理与加速计算 192
7.1 场景可视化处理 192
7.1.1 八叉树 192
7.1.2 BSP二叉空间分割 195
7.1.3 BVH层次包围盒技术 199
7.2 PVS技术 201
7.2.1 潜在可见集的构造 201
7.2.2 使用潜在可见集 203
7.2.3 潜在可见集的其他编码方法 204
7.2.4 流行的PVS计算方法 205
7.3 遮掩剔除技术 207
7.3.1 遮掩体 209
7.3.2 选择遮掩物 210
7.3.3 混合型遮掩物选择方法 210
本章小结 210
习题7 211
参考文献 212
第8章 游戏用户界面 213
8.1 游戏界面设备种类 214
8.1.1 命令行界面 214
8.1.2 图形用户界面 215
8.1.3 基于触屏技术的图形用户界面 215
8.1.4 语音识别界面 216
8.1.5 基于摄像机的界面 217
8.1.6 基于传感器的界面 219
8.2 人机交互编程技术 220
8.2.1 CEGUI 220
8.2.2 Kinect 222
8.2.3 Leap Motion 233
8.3 三维游戏界面设计 238
8.3.1 用户界面设计原则 238
8.3.2 用户界面设计过程 239
8.3.3 用HID进行交互 239
本章小结 240
习题8 241
参考文献 241
参考答案 242