游戏程序设计教程

gamebook

丛书名:普通高等教育软件工程“十二五”规划教材   

书名:游戏程序设计教程——从游戏引擎构建到实际应用   

作者:万立中 万立新 编著

出版社:人民邮电出版社

出版时间:2014-2-1 

ISBN:9787115342584

 

 


内容提要


本书从游戏编程实践的角度,首先介绍了游戏编程要掌握的Windows编程和图形编程基础,然后以TinyEngine游戏引擎构建为贯穿全书主线,详细介绍了该引擎的完整创建过程,最后以实际游戏案例应用所构建的游戏引擎。


全书分为三个部分,第1至第4章为第一部分,该部分介绍游戏编程需要掌握的Windows编程基础和图形编程基础;第5至第10章为第二部分,它是全书的核心,该部分详细阐述了TinyEngine游戏引擎各组成模块的构建过程,每章都有应用实例;第11、12章为第三部分,这部分介绍了两个完整的引擎应用案例游戏,详细阐述了整个代码的实现过程。


本书适用于对C++语言有基本了解的读者阅读,适合作为游戏程序设计课程理论与实践配套的教材,也适合作为读者进入游戏开发领域的技术入门学习用书。

 


本书简介


全书从游戏编程实践的角度,首先介绍了游戏编程必须掌握的游戏理论、Windows编程基础、Windows图形编程基础,然后以TinyEngine游戏引擎的构建作为贯穿全书的主线,详细地描述了该游戏引擎各组成模块的构建过程及理论。每个章节的知识点以自然、逐步进阶的方式安排。除导论部分外,每章都有对应的案例,各案例之间相互关联,难度上不断加深,知识点运用上逐步进阶。全部案例都有详细、完整的实现过程描述和相应的实现代码。最后通过编写完整的游戏程序来实际应用所构建的TinyEngine游戏引擎。


全书共12个章节,分为三个部分:第一部分为游戏编程基础篇,涵盖第1-4章;第二部分为游戏引擎构建篇,涵盖第5-10章;第三部分为游戏引擎应用篇,涵盖第11-12章。其中第2-10章采用理论加实践的方式编写,除第1章为纯理论外,其余章节都涉及代码编写。2-10章的理论知识可以作为理论授课内容,与其对应的实例可以作为实践课的实训内容。第11-12章的内容,可以作为实践课的综合实训内容。全书教学内容完成后,学生就掌握了TinyEngine游戏引擎各模块的应用,通过模仿第11-12章的内容,编写其他游戏。


本书最大特点是从游戏引擎构建入手阐述游戏程序设计的相关理论和实践。全书内容不是教会编写几个独立、无关联的简单游戏,而是让学习者领会从游戏引擎构建到实际游戏开发的实用技术,强调系统性、完整性和实用性。


本书实际上作为教学讲义已经在游戏开发课程中使用多年,早在2009年就完成全书初稿,而且历经多次修订、完善。所有理论材料和案例代码都在教学实践中实际运用,教学效果良好。全部内容可在64个教学课时内完成,其中理论34个课时,上机实践30个课时,可以根据实际教学需要细化各章节的具体教学时数分配。


本书在编写过程中得到了家人的大力支持,其中的一些图片及游戏素材处理由万昕完成。整个游戏引擎架构与代码实现、调试由笔者亲自完成。


本书结构


本书共分12个章节,其中第1-4章介绍游戏编程基础,第5-10章介绍TinyEngine游戏引擎各组成模块的构建,第11-22章是游擎案例游戏编程。


第1章 游戏编程导论——介绍计算机游戏的概念、游戏基本构成要素、游戏类型、游戏设计常用术语、游戏制作基本流程、游戏引擎的含义及引擎结构、著名游戏引擎简介以及游戏编程语言等;


第2章 了解Windows编程——介绍Windows编程基础,如事件驱动及消息机制、窗口生成、Windows程序创建及程序框架分析等,最后通过实例介绍Windows程序图标和光标的修改。本部分知识是学习后续所有章节的基础;


第3章 构建游戏引擎框架——介绍TinyEngine引擎框架设计、T_Config头文件定义、屏幕分辨率改变及恢复、引擎类定义和实现,最后通过实例应用所构建的引擎类;


第4章 Windows图形编程——介绍位图相关概念、Windows图形技术简介、GDI图形操作及绘图函数、GDI+图形操作,最后通过实例对本章内容进行综合应用;


第5章 为引擎添加位图操作模块——介绍位图操作类的设计与实现、利用位图操作类设计游戏菜单类,最后通过实例介绍游戏菜单类的应用;


第6章 理解动画与游戏角色——介绍游戏动画的相关概念、帧动画绘制、文字动画绘制、游戏角色的含义、角色信息描述,最后通过编程实例实现游戏角色绘制与控制;


第7章 为引擎添加游戏角色模块——介绍游戏图层的概念、游戏图层类的构建、游戏角色类的创建、AI类的创建等,最后通过实例应用游戏角色类及AI类;


第8章 理解游戏地图——介绍游戏地图的概念、游戏地图制作、游戏地图类设计与实现、为角色类增加地图处理、为AI类增加地图处理等,最后通过综合实例进行实际应用;


第9章 为引擎添加游戏场景模块——介绍游戏场景模块需求分析、设计与实现,最后是游戏场景模块应用实例;


第10章 为引擎添加声音模块——介绍资源交换文件格式及操作、波形文件读取及播放、DirectSound操作类的创建等,最后是声音模块应用实例;


第11章 引擎案例—贪食鱼游戏——介绍如何使用TinyEngine游戏引擎制作贪食鱼游戏,具体涉及需求分析、游戏素材设计、数据结构及数据类型定义、游戏类设计及代码实现以及游戏运行与发布等;


第12章 引擎案例—新坦克大战游戏——介绍如何使用TinyEngine游戏引擎制作新坦克大战游戏,具体涉及需求分析、游戏素材设计、数据结构及数据类型定义、游戏类设计及代码实现等。

 


本书目录


第1章 游戏编程导论 1

            1.1 游戏设计概述 1

                    1.1.1 计算机游戏的概念 1

                    1.1.2 游戏基本构成要素 3

                    1.1.3 游戏类型 5

                    1.1.4 游戏设计常用术语 12

            1.2 游戏制作基本流程 14

                    1.2.1 前期阶段 15

                    1.2.2 制作阶段 15

                    1.2.3 后期阶段 16

            1.3 关于游戏引擎 17

                    1.3.1 游戏引擎的含义 17

                    1.3.2 游戏引擎的结构 18

                    1.3.3 关于游戏工具 19

                    1.3.4 著名游戏引擎简介 20

           1.4 游戏编程语言 21

           1.5 学习的先决条件 23

           1.6 几点相关说明 24

第2章 了解Windows编程 25

            2.1 Visual C++编程方式 25

                    2.1.1 直接调用Windows API方式 25

                    2.1.2 采用MFC方式 26

                    2.1.3 Windows程序设计基本概念 26

            2.2 事件驱动及消息机制 28

                    2.2.1 Windows中的事件驱动 29

                    2.2.2 Windows应用程序中的常见消息 29

            2.3 Windows窗口的生成 32

                    2.3.1 指定窗口特征 32

                    2.3.2 注册窗口类并创建窗口 35

            2.4 Windows程序创建及程序框架分析 36

                    2.4.1 Windows程序的创建 36

                    2.4.2 Windows程序的基本结构分析 39

            2.5 修改程序图标和光标 42

                    2.5.1 图标资源的创建和加载 43

                    2.5.2 光标资源的创建和加载 44

第3章 构建游戏引擎框架 46

            3.1 游戏引擎框架的构建 46

                    3.1.1 引擎框架的设计 46

                    3.1.2 T_Config头文件的定义 49

                    3.1.3 屏幕分辨率的改变及恢复 52

                    3.1.4 引擎类的定义和实现 55

            3.2 引擎类应用实例 63

                    3.2.1 编写引擎框架测试代码 63

                    3.2.2 为框架测试代码增加绘图处理任务 65

第4章 Windows图形编程 67

            4.1 与位图相关的概念 67

                    4.1.1 色彩模式 67

                    4.1.2 色彩深度 68

                    4.1.3 Alpha通道 69

                    4.1.4 RGB颜色的描述 69

            4.2 Windows图形技术 70

                    4.2.1 图形技术简介 70

                    4.2.2 图形设备接口 70

            4.3 GDI图形操作 73

                    4.3.1 位图与设备环境 73

                    4.3.2 设备相关的位图 74

                    4.3.3 设备无关的位图 76

            4.4 GDI绘图函数 82

                    4.4.1 BitBlt()函数及其应用 83

                    4.4.2 StretchBlt()函数及其应用 83

                    4.4.3 AlphaBlend()函数及其应用 84

            4.5 GDI+图形操作 85

                    4.5.1 GDI+简介 85

                    4.5.2 Graphics类 86

                    4.5.3 Image类与Bitmap类 86

                    4.5.4 图像显示 89

                    4.5.5 图像旋转与翻转 89

                    4.5.6 文字显示 94

            4.6 综合应用实例 95

第5章 为引擎添加位图操作模块 101

            5.1 位图操作类的设计与实现 101

                    5.1.1 位图操作类需求分析 101

                    5.1.2 位图操作类的定义 102

                    5.1.3 位图操作类的实现 103

            5.2 利用位图操作类设计游戏菜单类 108

                    5.2.1 游戏菜单类的需求分析 109

                    5.2.2 游戏菜单类的定义 110

                    5.2.3 游戏菜单类的实现 111

                    5.2.4 测试游戏菜单类 118

            5.3 游戏菜单类应用实例 118

第6章 理解动画与游戏角色 124

            6.1 理解游戏动画 124

                    6.1.1 帧动画与帧图像 124

                    6.1.2 帧序列 125

                    6.1.3 游戏FPS的设定 126

                    6.1.4 帧动画绘制实例 126

                    6.1.5 文字动画绘制实例 130

            6.2 游戏中的角色 132

                    6.2.1 角色的含义 132

                    6.2.2 游戏角色的共性 133

                    6.2.3 角色信息的描述 134

            6.3 多角色绘制与控制实例 135

第7章 为引擎添加游戏角色模块 143

            7.1 关于图层的概念 143

            7.2 构建游戏图层类 144

            7.3 创建游戏角色类 145

                    7.3.1 游戏角色类的设计 145

                    7.3.2 游戏角色类的实现 148

            7.4 为游戏角色类添加AI控制 157

                    7.4.1 AI类的基本需求与设计 158

                    7.4.2 AI类的实现 160

            7.5 游戏角色类及AI类应用实例 166

第8章 理解游戏地图 173

            8.1 关于游戏地图 173

            8.2 游戏地图的制作 174

                    8.2.1 基于图块的游戏地图原理 174

                    8.2.2 游戏地图的制作 176

            8.3 为引擎增加游戏地图类 181

            8.4 为角色类增加地图处理 187

            8.5 为AI类增加地图处理 190

            8.6 地图应用综合实例 191

第9章 为引擎添加游戏场景模块 203

            9.1 游戏场景模块需求分析 203

            9.2 游戏场景模块的设计 204

            9.3 游戏场景模块的实现 207

                    9.3.1 场景操作函数 207

                    9.3.2 图层操作函数 211

                    9.3.3 地图文件解析函数 214

                    9.3.4 场景绘制函数 217

            9.4 游戏场景模块应用实例 218

第10章 为引擎添加声音模块 226

            10.1 资源交换文件格式 226

            10.2 资源交换文件的操作 227

                    10.2.1 打开与关闭 227

                    10.2.2 文件的读写 228

                    10.2.3 文件的定位 229

            10.3 波形文件读取 230

                    10.3.1 波形文件结构体 230

                    10.3.2 编写波形文件读取类 231

            10.4 波形文件播放 233

                    10.4.1 DirectSound概述 234

                    10.4.2 在开发环境中设置DirectX SDK 234

                    10.4.3 DirectSound对象创建及初始化 235

                    10.4.4 声音缓冲区的创建 237

                    10.4.5 缓冲区声音的播放与控制 238

            10.5 DirectSound操作类的创建 239

                    10.5.1 AudioDXBuffer类的定义与实现 240

                    10.5.2 AudioDX类的定义与实现 244

            10.6 为菜单类添加音效处理 245

            10.7 声音模块应用实例 247

            10.8 游戏引擎小结 251

第11章 引擎案例——贪食鱼游戏 253

            11.1 游戏需求分析 253

            11.2 游戏总体设计 254

                    11.2.1 游戏素材设计 255

                    11.2.2 数据结构及数据类型定义 257

                    11.2.3 游戏类设计 258

            11.3 游戏代码实现 262

                    11.3.1 资源加载类函数 262

                    11.3.2 游戏状态更新类函数 269

                    11.3.3 关卡处理函数 275

                    11.3.4 游戏细节处理类函数 276

                    11.3.5 引擎接口函数实现 281

            11.4 游戏运行与发布 286

                    11.4.1 游戏运行测试 286

                    11.4.2 游戏项目发布 288

第12章 引擎案例——新坦克大战游戏 291

            12.1 游戏需求分析 291

            12.2 游戏总体设计 292

                    12.2.1 游戏素材设计 293

                    12.2.2 游戏地图设计 295

                    12.2.3 游戏类设计 296

            12.3 游戏代码实现 299

                    12.3.1 资源加载类函数 299

                    12.3.2 游戏状态更新类函数 307

                    12.3.3 关卡处理函数 313

                    12.3.4 游戏细节处理类函数 315

                    12.3.5 引擎接口函数实现 321

            12.4 游戏运行测试 325


参考文献 328

参考网站 328

 



 

www.pdf24.org    发送文章为PDF   

游戏程序设计教程》上有1条评论

发表评论