购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

推荐序

在IT业界里,与一些程序员聊天时,可能聊到一些游戏的画面如何好看。对于不开发游戏的程序员来说,他们很可能会认为主要由美工在三维软件里创建资源,然后放进所谓“游戏引擎”的黑盒中,就能得到这些结果。但这个黑盒到底做了些什么才能把图形画出来?除了我们肉眼看到的图形之外,游戏引擎还做了什么工作,因而才被称为游戏引擎而不是图形引擎?不开发游戏的程序员可能很难想象出来。甚至由于近年闭源的Unity引擎在商业上的成功,即便是游戏程序员对于这个黑盒的了解程度也比较有限。

从软件开发的角度来说,抽象通常是好事。我们一般不需要了解每个CPU的半导体制作工序,不用知悉某操作系统的文件系统采用了哪种数据结构。那为什么巿面上有这么成熟的游戏引擎,多数国际游戏开发商所制作的顶级游戏会采用自研游戏引擎?我认为,一般商用游戏引擎以通用性、易用性为目标,但游戏是多元化的,不同类型的游戏有不一样的需求,同时顶级游戏会尝试研发更前沿、更极致的体验,易用性对于专业团队来说反而是次要的。自主研发游戏引擎,不仅需要大量资金,还需要专业技术人员。你需要找到最好的游戏引擎开发人员,然后让他们长期投入这样的技术建设,而不是开发一些短期能赚钱的项目。我相信,这种长期投资对于国内游戏业的发展非常重要。

我在8年前加入腾讯时,便与阿哲共事,参与一个自研游戏引擎的研发工作。后来国内手游的井喷式爆发,导致每款游戏的开发周期从以年计算缩短至以月计算,自研引擎难以跟上这种研发节奏。Unity的成功也促进了游戏公司在商业上的成功,但同时我感到业界的技术人才也出现了严重的断层,新入行的游戏程序员在面对黑盒时大部分情况下只能靠猜,对性能的敏感度也在降低。

我个人认为,即使使用通用的游戏引擎,了解游戏引擎的原理和实现对于技术成长也非常重要。知道黑盒的原理和实现,一方面能在使用时更得心应手,另一方面可以针对项目的特殊需求去扩展游戏引擎的功能。近年Epic Games对移动平台的投入,以至提供Unreal Engine的源代码,吸引了不少项目采用。了解游戏引擎的理论和实现已经成为游戏项目中的技术关键之一。

非常理想的情况下,在成长期间,游戏开发人员可以从零开发一些游戏演示示例,当中仅使用操作系统和底层 API(如图形、音频等);也可以学习一些新技术,对现有游戏引擎做一些扩展。关于游戏引擎,每个人有不同的学习方法。为了分享自己的知识和经验,多年来阿哲花了不少的业余时间,以一个完整的自研游戏引擎例子为主轴,完成了这本厚重的著作。本书还附有大量的示例,循序渐进地展示一些功能如何有机地加入一个庞大的系统中。建议读者在阅读每章前,也可先运行一下这些演示示例,知道该章要实现的目标,思考一下如何做,再看看阿哲给出的答案,也许能学得更深入,收获更多。

叶劲峰(Milo Yip)
腾讯魔方工作室群引擎中心技术总监 7DYR+qMJz3TMr0GJ459uqVi6OJsvUwegdvVIE11/n+GwxCB5ucmt18KYsnYiMGN/

点击中间区域
呼出菜单
上一章
目录
下一章
×