
“Finney,我买了您的书(本书的姊妹篇《3D游戏开发大全》,译者注),觉得它好棒啊!但是在那本书中您为什么只是简短地涉及了一些方面,而没有介绍更多的主题呢?”
我收到了很多对《3D游戏开发大全》(以下简称为3DGPAI1)一书感到满意的读者向我发来的表示赞美的电子邮件。但是,也有不少热心读者提出了批评,抱怨我没有在3DGPAI1中包含他们所关心的这个或那个主题。对于我来说,万幸的是, 他们并没有组织起来—— 我可不希望发生这样的事情:当我眺望窗外时,却发现一群手持干草叉、高举火把的人们向我聚拢而来。
但是,他们并非暴民,而是一群和您一样热爱电脑游戏的人,而且他们相信自己能比游戏软件开发巨头制作出更好的游戏作品,他们正在影响着游戏开发行业的发展。
那么您知道吗,您(以及他们)的想法可能是正确的。但直到最近仍存在这样一个问题:许多富有创造力和天赋的人缺乏开发资金和其他资源的支持,而这些又是刚刚开始制作游戏时支付开发成本和获得游戏引擎的授权所必需的。
这种局面正在发生改变。就像本书和3DGPAI1,以及诸如Torque之类的游戏引擎都是这些改变得以发生的原因。
0.1 关于本书的姊妹篇——《3D游戏开发大全》
如果您尚未看过3DGPAI1这本书,那么请允许我先在这里对它简要地介绍一下:3DGPAI1可以全面地教会您如何使用Torque 游戏引擎开发3D游戏。它涵盖了程序设计基础、使用Torque引擎进行编程、3D图形学基础、使用MilkShape 3D和 QuArK进行3D建模、使用Audacity进行音频处理、使用Paint Shop Pro进行纹理处理,它还给出了TorqueScript(Torque引擎提供的一种脚本语言,译者注)脚本语言的大量使用技巧。尽管3DGPAI1已经比较全面地介绍了关于游戏开发的众多主题,但仍不要奢望那本区区600多页的书能够涵盖游戏开发所涉及的全部内容,所以引来一群举着火把的示威者也就不足为奇了。
0.2 关于本书
这本书将引导您进一步学习,它将涉及许多更难的技术领域:诸如人工智能、动态皮肤以及对游戏引擎运行机制的更深入剖析等。我们还将通过研究TorqueScript脚本语言的goodie-box来揭示它的实现机制,从而使您的游戏开发水平有一个较大的提升。
0.2.1 您需要准备什么
学习本书,您需要安装一个合适的计算机操作系统。假定您现在使用的是Windows XP系统,当然,您也可以使用其他Windows版本。
这并不是一本如3DGPAI1那样适合初学者学习的书。如果您已经购买了3DGPAI1,并且在使用它后获得了不错的学习效果,那么您一定也可以在本书中获得同样的体验,当然,这也不是绝对的。
1. 技能
如果您是一名非常全面的程序员(不管用什么编程语言),或者您有过使用Valve’s Hammer 或3D Max等工具建模的工作经验,那么您不用参考3DGPAI1一书中的基础内容部分,也可以很好地跟上本书。
阅读本书时您应该比较熟悉以下计算机相关操作:找到Windows文件夹和硬盘上某一位置的路径、使用 Windows的shell 命令(cmd.exe)、创建快捷方式和编辑它们的属性。
2. 系统
您需要一台基于Windows系统的计算机来配合学习这本书(以下给出系统的最低配置要求)。如果您使用的是Macintosh或者 Linux系统,也可以使用本书来制作一款游戏,因为本书中所使用的Torque游戏引擎也适用于这些操作系统。但是,并不是所有要用到的开发工具在Mac 和Linux 系统下都可用,因此这本书将主要以基于Intel系列的Windows 操作系统作为开发平台。
系统需求
处理器 最低配置为Pentium III/800MHz
操作系统 Windows 98/ME /2000/XP
显卡 三维加速器卡,NVidia GeForce2-32MB或者更好的
显示器 推荐17英寸的显示器
输入设备 键盘和鼠标
内存 最低配置为128MB,推荐256MB
硬盘 最低配置为4GB
光驱 最低配置为CD-R
并且,我还建议您使用好一点的新型声卡,并且能够使用宽带上网。
0.2.2 本书将提供什么
为了能使您最大限度地利用好本书,建议购买Torque 游戏引擎的使用授权,现在您只需付100美元就可获得它的使用授权。如果您已获得该授权,就可以去GarageGames网站(www.garagegames.com) 下载最新版本的社区资源,其中包含很多本书没有涉及到的技术。
本书所使用的Torque版本是Torque Release v1.3。在您下载Torque引擎演示demo的网址http://www.garagegames.com/makegames/上,您也能找到Torque Release v1.3的可执行文件和demo的代码。本书所有的章节练习都使用了TorqueScript脚本语言,但并没有讨论和涵盖任何关于Torque引擎的核心代码或者集成于该引擎中的C/C++代码模块。
0.2.3 本书附带的CD
本书所附带的CD中包含了大量的资源:Torque引擎及几种自定义构件(custom build)、基于TorqueScript脚本语言的游戏源代码和艺术作品资源、开发工具和使用Torque引擎开发的一些游戏的demo版本。
1. 源代码
本书附带的CD中包含了所有示例和答案的TorqueScript脚本代码。示例文件按每章的内容排列,完整demo的脚本文件都包含在它所在章节的对应文件夹里。
2. 游戏引擎
本书附带的CD中包含一个完整的Torque游戏引擎:可执行文件、动态链接库(DLL)、所有需要的GUI组件和相关支持文件。Torque 游戏引擎功能全面,具有高级网络通信处理能力,支持动画融合技术,具有内置于服务器端的防作弊能力,支持BSP技术,提供一个强大且完全面向对象的脚本语言(类似于C++),以及许多其他高级功能。
3. 工具
大多数标准工具集(正如在3DGPAI1中所建立的)在本书附带的CD中都提供了。尽管我们不可能面面俱到地介绍这些工具的使用细节,但是它们确实可以为您开发游戏带来方便。这些工具包括最新版本的MilkShape 3D、QuArK和UltraEdit-32。
4. 其他内容
在本书附带的CD中,还有一个名为 EXTRAS的文件夹,它包含了使用Torque引擎制作的demos和游戏,它们面向Windows、Macintosh和Linux操作系统。此外, Macintosh 和Linux系统下的Torque 游戏引擎v1.3版本中demo的安装文件也包含在此。
0.3 现在就动手吧!
我一直这样告诉人们:如果您想成为一个不因人成事的成功者,则需要对自己正在做的事情投入极大的热情。如果您总是原地不动不停地做那些缺乏热情、斤斤计较、功利而盲目的商业决定的话,就不可能成为一个有所成就的独立开发者。随时随地都会出现一个满腔热情,目光敏锐的家伙准备超越您!
那么,现在您应该知道自己该做什么了吧!
首先,赶上那个家伙或者和他结成强有力的联盟,以本书所提供的知识作为强大武器,那么机会就是您的啦。
第Ⅰ部分 高级脚本编程
第1章 多目标环境 3
1.1 TorqueScript脚本语言 3
1.2 3D数学预览 4
1.3 可玩性 5
1.4 制作‘Bots 7
1.4.1 AI概念 7
1.4.2 继续上一个话题 8
1.4.3 群体动力学 9
1.5 艺术性 9
1.5.1 细节 10
1.5.2 入口 11
1.5.3 光照 12
1.5.4 外皮脱卸 12
1.6 本章小结 13
第2章 使用TorqueScript脚本
语言 15
2.1 Torque 项目的组织 15
2.2 安装Torque 16
2.3 TorqueScript概览 18
2.4 问题解决机制 18
2.4.1 日志 19
2.4.2 编译器错误检查 20
2.4.3 清除字节码模块 21
2.4.4 调试输出说明 21
2.4.5 使用trace函数 22
2.4.6 使用dump函数 23
2.4.7 使用游戏中的对象
浏览器 26
2.4.8 TorqueScript源代码
调试器 27
2.5 对象 36
2.5.1 创建对象 36
2.5.2 操作对象 37
2.6 数据块对象 39
2.6.1 创建数据块对象 42
2.6.2 数据块的声明 43
2.7 ScriptObject 43
2.7.1 创建一个ScriptObject 44
2.7.2 使用ScriptObject 44
2.8 文件处理 45
2.8.1 export语句 45
2.8.2 文件对象 46
2.9 使用字符串 47
2.9.1 标记字符串 47
2.9.2 转义序列 48
2.10 本章小结 49
第3章 向量和矩阵 51
3.1 向量 51
3.1.1 向量的定义 52
3.1.2 向量的用法 57
3.2 矩阵 64
3.2.1 使用矩阵的好处 66
3.2.2 矩阵的用法 66
3.3 TorqueScript的应用技巧 70
3.3.1 一个变换的小程序 71
3.3.2 旋转 74
3.4 本章小结 77
第4章 在3D下使用TorqueScript 79
4.1 门的旋转 79
4.1.1 门资源 80
4.1.2 门的旋转代码 81
4.1.3 门的旋转操作测试 92
4.2 门的滑动 94
4.2.1 门资源 94
4.2.2 门代码 94
4.2.3 滑动门的测试 102
4.3 warping 102
4.3.1 离开任务区 103
4.3.2 准备工作 103
4.3.3 脚本代码 105
4.3.4 warp测试 107
4.4 本章小结 107
第Ⅱ部分 人 工 智 能
第5章 轻松进入人工智能世界 111
5.1 对人工智能的错误理解 112
5.2 人工智能的应用领域 112
5.2.1 路径查找(searching)
和路径规划(routing) 113
5.2.2 规则和专家系统 113
5.2.3 逻辑和不确定性 114
5.2.4 自然语言处理 116
5.2.5 神经网络 116
5.3 群体思想 118
5.4 近期发展趋势展望 119
5.5 本章小结 120
第6章 游戏中的人工智能 121
6.1 行为 121
6.1.1 感知 121
6.1.2 行动 123
6.1.3 反应 123
6.1.4 学习 124
6.2 ‘Bot的定义 125
6.2.1 敌对者 127
6.2.2 同盟者 129
6.2.3 派别成员 131
6.2.4 群体行为 132
6.2.5 cheatbot 133
6.3 本章小结 134
第7章 虚拟敌人 135
7.1 具有静态行为的AI角色 135
7.1.1 准备工作 137
7.1.2 代码的修改 141
7.1.3 aiGuard模块 141
7.1.4 继续研究守卫 157
7.2 跟踪路径 158
7.2.1 制定一条路径 158
7.2.2 应用路径 160
7.3 追逐 162
7.4 本章小结 163
第8章 AI交互技术 165
8.1 步骤 165
8.2 代码 167
8.2.1 准备工作 167
8.2.2 AITServer模块 169
8.2.3 AITClient 模块 175
8.2.4 AITCommands模块 180
8.2.5 AITGui模块 183
8.2.6 AITScript文件 186
8.2.7 AIT资源 188
8.2.8 制作AIT脚本 188
8.3 AI角色对话系统的测试 189
8.4 本章小结 191
第9章 群体行为 193
9.1 完美的群体 194
9.1.1 准备工作 194
9.1.2 群体的模块 196
9.1.3 代码测试 202
9.2 一个追逐群体 203
9.3 本章小结 206
第Ⅲ部分 强化游戏编程
第10章 损害控制 209
10.1 生命值 210
10.1.1 player.cs脚本模块中的
关键特征 212
10.1.2 添加能量条 224
10.1.3 损害与能量的关联 226
10.2 打击位置 227
10.3 砰、砰、轰隆隆! 228
10.3.1 准备工作 229
10.3.2 代码 230
10.3.3 惊奇的桶爆炸测试 237
10.4 疯狂的巡逻车 237
10.4.1 巡逻车的损害处理
代码 237
10.4.2 巡逻车的爆炸 240
10.5 在玻璃房子中生活 242
10.5.1 准备工作 242
10.5.2 代码 245
10.5.3 窗户的测试 252
10.6 本章小结 253
第11章 让一切变得更真实 255
11.1 现实世界的地形 256
11.1.1 DEM文件格式 256
11.1.2 将DEM转换为高度图
(Heightmap)格式 257
11.1.3 Torque的准备工作 259
11.1.4 游戏地形中的高度图 259
11.2 植被 264
11.2.1 森林 264
11.2.2 牧场 266
11.3 本章小结 269
第12章 效果优化 271
12.1 士兵身上的光芒 271
12.1.1 日升、日落 274
12.1.2 制作光晕效果 278
12.2 无处不在的水 281
12.2.1 水的表现形态 281
12.2.2 水的杀伤力 288
12.3 水中漫步 291
12.4 本章小结 291
第13章 PHP创建联机游戏服务 293
13.1 PHP和Apache 294
13.1.1 Apache的安装 294
13.1.2 设置 295
13.1.3 安装PHP 296
13.1.4 连接Apache和PHP 299
13.2 使用Web的游戏内部
服务 300
13.3 游戏内部的信息抢夺者 300
13.4 身份验证 304
13.4.1 PHP身份验证代码 305
13.4.2 TorqueScript 代码 306
13.5 本章小结 313
第Ⅳ部分 强化游戏建模
第14章 结构建模 317
14.1 细节层次 318
14.1.1 示范 318
14.1.2 细节层次 322
14.1.3 实现 324
14.1.4 怪兽角色的操作
细节 330
14.2 实体 332
14.2.1 入口 332
14.2.2 演示 333
14.2.3 创建与放置入口 334
14.3 光照 335
14.3.1 静态光照 336
14.3.2 动画光照 337
14.3.3 光照测试 338
14.4 本章小结 340
第15章 形体建模 341
15.1 细节层次化 342
15.1.1 创建板条箱 342
15.1.2 玩家化身 347
15.2 本章小结 352
第16章 可变外皮 355
16.1 板条箱 357
16.1.1 资源和准备工作 357
16.1.2 代码 358
16.1.3 使用可变外皮的
板条箱 359
16.2 一切就绪,预备,出发! 362
16.2.1 就绪…… 362
16.2.2 预备…… 363
16.2.3 出发! 365
16.3 空闲状态时的外皮变换 366
16.3.1 设置 366
16.3.2 代码 366
16.3.3 Mr.Box演示 369
16.4 本章小结 370
16.5 实践! 370
附录A Torque游戏引擎参考 371
A.1 TorqueScript函数参考 372
A.2 Torque参考表 425
附录B 附加资源 445
B.1 本书中附加的TGE Build
代码资源 445
B.2 Internet上的游戏开发
资源 445
B.2.1 与Torque相关的Web
站点 446
B.2.2 游戏开发Web站点 446
B.3 游戏开发工具参考 450
B.4 共享软件和免费软件
工具 451
B.4.1 建模 451
B.4.2 程序编辑 452
B.4.3 音频编辑 452
B.4.4 其他 452
B.5 零售工具 453
B.6 GNU一般公众许可证 454