Game Engine Architecture by Jason Gregory:1.5 游戏引擎概况

翟柏
2023-12-01

1.5.1 Quake引擎系列

一般认为第一个3D的FPS游戏是位于美国德克萨斯州的id Software做的PC平台上的Castle Wolfenstein 3D(1992).这个游戏把整个行业带向一个全新的并且令人兴奋的方向。Id Software接着制作了Doom, Quake, Quake II, Quake III. 所有这些引擎在架构上都比较接近,我将它们称之为Quake引擎系列。Quake引擎的技术被拿来制作了大量的其它游戏,甚至其它引擎。例如,PC平台上的Medal of Honor的族谱大概像这样:
* Quake III (ID)
* Sin (Ritual)
* F.A.K.K.2 (rITUAL)
* Medal of Honor: Allied Assault(2015 & Dreamworks Interactive)
* Medal of Honor: Pacific Assault(Electronic Arts, Los Angele)
还有许多其它的基于Quake引擎技术的游戏,也是像上面那样通过许多不同的游戏还有工作室传承下来。事实上,Valve的Source engine(用来制作半条命这个游戏)也跟Quake技术有比较远的根源上的关系。

Quake还有Quake II的源代码是免费开放的,原版的Quake引擎是很合理的架构的,并且比较“干净”(当然有点过时了,并且还是用纯C写的)。这些代码可以作为工业上实用的游戏引擎是如何创造的很好的例子。完整的Quake还有Quake II的源代码在id公司的网站上可以得到: http://www.idsoftware.com/business/techdownloads.

如果你有Quake或者Quake II游戏,你可以用微软的Vistual Studio编译源代码,然后用电脑上的真正的游戏资源,在调试模式下运行游戏。这个有非常重要的教育意义。你可以设置断点,运行游戏,然后通过深入代码的执行来分析到底这个引擎是如何工作的。我极力推荐下载这两个引擎其中一个或者两个都下,然后用刚才说的那种方式来分析源代码。

(译者推荐:可以去读<Doom启世录>,看天才卡马克是如何创建这些引擎而开创Doom & Quake游戏时代的)


1.5.2 虚幻引擎系列(Unreal)

Epic Games在1998年带着它的传奇般的游戏“Unreal”进军FPS市场,从那以后,Unreal引擎成为FPS领域中Quake引擎最主要的对手。Unreal Engine 2是虚幻竞技场2004(Unreal Tournament 2004, UT2004)的基石,而且被用来制作数不尽的"mods"(译者按,mods这个好像是指由玩家或者公司在原来游戏的基础上修改出来的新的游戏。比如3C, dota之于魔兽),大学项目,还有商业游戏。Unreal Engine 3是更进一步的版本,其中有很多足以在业界可以引以自豪的最好的工具及最丰富的引擎特性,包括一个非常方便且强大的图形化用户接口以制作shader,还有一个叫做Kismet的图形化的用户接口用来写游戏逻辑。最近许多游戏都是用UE3做的,包括Epic自己的非常流行的战争机器(Gears of War).

Unreal Engine由于由于它的非常多的游戏特性及内建的非常易于使用的工具而闻名。Unreal Engine不是完美的,大多数开发者以不同的方式修改它以使得他们的游戏可以在一个特定的硬件平台上以最优的性能运行。不管怎样,Unreal是一个难以置信的非常强大的原型工具和商业游戏开发平台,它可以用来制作事实上任意一个3D的FPS游戏或者第三人称视角游戏(其它没提到的游戏也一样).

Unreal开发者网络(Unreal Developer Network, UDN)提供关于各种不同版本Unreal引擎的一个非常丰富的文档及其它资料(http://udn.epicgames.com)。有些Unreal 2的文档是免费开放的,然后任何拥有UT2004的人都可以制作"mods"。不过,其它的UE2文档及所有的UE3文档的访问权限仅限于拥有引擎授权的人。非常不幸的是,这个授权费用非常的贵,所有的独立游戏开发者及大部分的小工作室都没能力支付。不过仍然有许多关于Unreal的有用的网站及wiki。其中一个比较著名的是: http://www.beyandunreal.com


1.5.3 半条命的Source Engine

Source一系列火爆游戏如Half-Life 2, 以及HL2: Episode One, HL2: Episode Two, Team Fortress 2, 以及Portal(包含在The Orange Box中). Source是一个高质量的引擎,在画面能力及工具包上面可以跟Unreal Engine 3抗衡。


1.5.4 微软的XNA游戏工作室(XNA Game Studio)

微软的XNA游戏工作室是一个非常易于使用及容易接受的游戏开发平台,目标在于鼓励玩家去制作他们自己的游戏并通过在线的社区来分享它们,就如同YouTube鼓励自制视频上传及分享。
XNA是以微软的C#及Common Language Runtime(CLR)为基础的。主要的开发环境是Visual Studio或者它的免费版,Visual Studio Express.Visual Studio管理源代码及美术资源等所有的一切。用XNA,开发者可以为PC平台及微软的Xbox 360家用机平台制作游戏。在缴纳一定的费用之后,XNA游戏可以上传到Xbox Live网络,然后跟大家分享。通过提供卓越的工具以及真正的零费用,微软天才地打开了普通人制作自己的游戏的大门。这毫无疑问的给XNA带来了一个光明的迷人的前途。


1.5.5 其它商业引擎

还有许多其它的商业游戏引擎。可能有许多独立开发者并没有预算来购买一个引擎,不过它们中有许多有非常好的在线文档或者wiki,是一个非常好的关于游戏引擎及游戏编程的资料来源。比如可以迁出Terathon Software的C4 Engine(http://www.terathon.com),这家公司是Eric Lengyel在2001年创立的。C4引擎的文档可以在Terathon的网站上找到,C4引擎wiki上还有更多的细节(http://www.terathon.com/wiki/index.php?title=Main_Page)


1.5.6 私有的内部引擎

许多公司制作和维护了私有的内部引擎,如Electronic Arts用一个叫作SAGE的内部引擎制作了很多RTS游戏,是由Westwood Studios开发的。Naughty Dog的Crash Bandicool, Jak and Daxter series, 还有更近的Uncharted: Drake's Fortune, 这些游戏都是用一个内部引擎针对PS, PS2, PS3等平台做一些修改而制作的。事实上,大多数商业授权的引擎像Quake, Source或者Unreal引擎最开始都是私有的内部引擎。


1.5.7 开源引擎

开源3D游戏引擎是一些业余爱好者或者专业游戏开发者提供的在线的免费的引擎。“开源”(Open Source)这个概念意味着源代码是可以免费得到的,并且是使用一个开放的开发模式,意思是几乎所有人都可以贡献代码。授权协议,如果存在的话,一般是GPL(Gnu Public License)或者LGPL(Lesser Gnu Public License)协议。前者允许代码可以被任何人免费使用,只要他们的代码也会免费开放。后者甚至允许用作私有的商业程序。许多其它免费或者半免费的协议方案也同样用于开源项目。

网上有数量大得惊人的开源引擎。有些非常不错,有些很一般,还有一些就是非常烂的。这个网上提供的游戏引擎列表: http://cg.cs.tu-berlin.de/~ki/engines.html 将会给你一个完整的印象。

OGRE 3D是一个架构良好的,易于学习的,易于使用的3D渲染引擎。它是一个支持全面的特性的3D渲染引擎,包括高级光照及阴影,非常好的骨骼动画系统,一个用于HUD及GUI的2D系统。及用于制作全屏特效如bloom的延迟渲染系统。OGRE,用它的作者的话说,不是一个完整的游戏引擎,不过它就如同其它游戏引擎一样,提供了一个基本的组件。

其它一些著名的开源引擎列表:
* Panda 3D。一个基于脚本的引擎。这个引擎的最主要接口是Python脚本语言。它被设计用来方便及快速的制作原型3D游戏及虚拟世界。
* Yake。另外一个基于OGRE的完整的新的游戏引擎。
* Crystal Space。这个游戏引擎是用了可扩展的模块化的架构。
* Torque还有Irrlicht都是非常有名的并且被广泛使用的游戏引擎。

 类似资料: