游戏引擎架构前言
千变万化的游戏可以分为许多类别和“流派”,从纸牌游戏到大型多人在线游戏(MMOG ),也可以在任何装有微芯片的设备上运行。你现在可以在PC、手机和各种专门为游戏设计的手持/电视游戏机上玩游戏。家用电视游戏通常代表了最先进的游戏技术,而且因为定期发布新版本,所以有游戏机“代”的说法。最新一代的游戏主机包括微软的Xbox 360和索尼的PlayStation 3,但我们不能忽视经久不衰的PC和最近流行的任天堂Wii。
最近休闲游戏下载量的急剧增加,让这个多元化的商业游戏世界变得更加复杂。即便如此,大型游戏仍然是一个大生意。现在的游戏平台非常复杂,拥有不可思议的计算能力,这进一步增强了软件的复杂性。这些先进的软件都需要人来创造,这就导致了团队数量的增加,开发成本的增加。随着行业的成熟,开发团队不得不寻找更好更高效的方法来制作产品,可复用软件和中间件应运而生,以弥补软件复杂度的增加。
因为游戏种类繁多,风格各异,游戏平台多种多样,不可能有单一的理想软件解决方案。但是,业界已经开发了一些模型和大量潜在的解决方案可供选择。现在的问题是如何找到一个合适的方案来满足一个项目的需要。此外,开发团队必须考虑项目的所有方面以及如何集成它们。对于一个全新的游戏设计来说,很少能找到一个完美匹配游戏设计各方面的软件包。
目前行业内的老手,入行都是“先锋”。我们这一代很少来自计算机科学专业(Matt的专业是航空工程,Jason的专业是系统设计工程),但是现在很多学院都开设了游戏开发的课程和学位。今天,为了获得关于游戏开发的有用信息,学生和开发者必须找到好的方法。对于高端图形技术,从研究到实践有大量高质量的信息。但是这些信息往往不能直接应用到游戏的制作环境中,或者说没有实现制作级的质量。对于图形以外的游戏开发技术,市面上有一些所谓的入门书籍,描述了很多细节,却没有提及参考文献,就像自己的发明一样。这种做法根本没用,甚至经常包含不准确的内容。另一方面,市面上也有一些高端的专门书籍,比如物理、碰撞、人工智能等等。但是,这样的书要么太啰嗦让你受不了,要么太深奥让一些读者看不懂,要么太碎片化无法整合。其中有些甚至直接与某项技术挂钩,一旦软硬件发生变化,其内容就会迅速过时。
此外,互联网也是收集相关知识的绝佳工具。但是,除非你真的知道要找什么,否则断链、信息不准确、内容质量差也会成为学习障碍。
幸运的是,我们有Jason Gregory,他是业内资深人士,有在顽皮狗工作的经验,这是世界上备受瞩目的游戏工作室之一。杰森在USC教游戏编程的时候,找不到一本总结游戏架构的教材。幸运的是,他承担了这个任务,填补了这个空白。
Jason在这本书里整理了应用于游戏实际发布的制作级知识以及整个游戏开发的整体情况。他根据自己的经验,不仅融合了游戏开发的概念和技巧,还用实际的代码实例和实现实例来说明如何通过知识制作游戏。本书中的引用和参考资料可以让读者更深入地探索游戏开发过程的各个方面。虽然示例通常基于某些技术,但概念和技术用于实际创建游戏,可以超越单个引擎或API的限制。
这本书是我们进入游戏时想要的书。我们相信,对于有经验的人来说,这本书可以帮助初学者增加知识,开阔视野。
杰夫·兰德
马修·怀汀