文档介绍:3D游戏引擎详解剖析
自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏"引擎"。这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏, 或向已有的游戏素材中添加新的东西。大量的新游戏根据已经存在的游戏引擎开发出来,而大多数都以ID公司的Quake引擎为基础, 这些游戏包括Counter Strike, Team Fortress, Tac Ops, Strike Force, 以及Quake er。Tac Ops 和Strike Force 都使用了Unreal Tournament 引擎。事实上, "游戏引擎" 已经成为游戏玩家之间交流的标准用语,但是究竟引擎止于何处,而游戏又从哪里开始呢?像素的渲染,声音的播放,怪物的思考以及游戏事件的触发,游戏中所有这一切的幕后又是什么呢? 如果你曾经思考过这些问题, 而且想要知道更多驱动游戏进行的东西,那么这篇文章正好可以告诉你这些。本文分多个部分深入剖析了游戏引擎的内核, 特别是Quake引擎,因为我最近工作的公司Raven Software已经在Quake引擎的基础上开发出了多款游戏,其中包括著名的Soldier of Fortune 。
开始
让我们首先来看看一个游戏引擎和游戏本身之间的主要区别。许多人们会混淆游戏引擎和整个游戏。这有点像把一个汽车发动机和整个汽车混淆起来一样。你能够从汽车里面取出发动机, 建造另外一个外壳,再使用发动机一次。游戏也像那。游戏引擎被定义为所有的非游戏特有的技术。游戏部份是被称为'资产' 的所有内容(模型,动画,声音,人工智能和物理学)和为了使游戏运行或者控制如何运行而特别需要的程序代码, 比如说AI--人工智能。
对于曾经看过 Quake 游戏结构的人来说, 游戏引擎就是 ,而游戏部分则是 和 。如果你不知道这是什么意思, 也没有什么关系;在有人向我解释它以前, 我也不知道是什么意思。但是你将会完全明白它的意思。这篇游戏引擎指导分为十一个部份。是的, 从数量上来说,总共是十一个部份! 每个部分大概3000字左右。现在就从第一部分开始我们的探索吧,深入我们所玩游戏的内核,在这里我们将了解一些基本的东西, 为后面的章节作铺垫……
渲染器
让我们从渲染器来开始游戏引擎设计的探讨吧, 我们将从游戏开发者(本文作者的背景)的角度来探讨这些问题。事实上,在本文的各个段落,我们将常常从游戏开发者的角度探讨, 也让您像我们一样思考问题!
什么是渲染器,为什么它又这么重要呢?好吧,如果没有它,你将什么也看不到。它让游戏场景可视化,让玩家/观众可以看见场景,从而让玩家能够根据屏幕上所看到的东西作出适当的决断。尽管我们下面的探讨可能让新手感到有些恐惧,先别去理会它。渲染器做些什么?为什么它是必须的?我们将会解释这些重要问题。
当构造一个游戏引擎的时候, 你通常想做的第一件事情就是建造渲染器。因为如果看不见任何东西–那么你又如何知道你的程序代码在工作呢? 超过 50% 的 CPU 处理时间花费在渲染器上面; 通常也是在这个部分,游戏开发者将会受到最苛刻的评判。如果我们在这个部分表现很差,事情将会变得非常糟糕, 我们的程序技术,我们的游戏和我们的公司将在 10 天之内变成业界的笑话。它也是我们最依赖于外部厂商和力量的地方,在这里他们将处理最大限度的潜在操作目标。如此说来, 建造一个渲染器确实不象听起来那么吸引人(事实如此), 但如果没有一个好的渲染器, 游戏或许永远不会跻身于排行榜前10 名。
如今,在屏幕上生成像素,涉及到 3D 加速卡, API ,三维空间数学, 对 3D 硬件如何工作的理解等等。对