[1.导读]
游戏引擎(Game Engine)是什么?大多数人给出的解释都是基于engine的英文翻译,将游戏引擎等同于汽车中的引擎(发动机),再好一些的解释成动力,这些解释都对,但是动力只说并不全面,不能完整反映出游戏引擎在游戏中的作用与地位。
布加迪威龙之所以强大就是源自其W16发动机
先举一个简单例子,在某游戏中的一个场景中,玩家控制的角色躲藏在屋子里,敌人正在屋子外面搜索玩家。突然,玩家控制的是一个穿迷彩服的士兵,突然碰倒了桌子上的一个杯子,杯子坠地发出破碎声,敌人在听到屋子里的声音之后聚集到玩家所在位置,玩家开枪射击敌人,子弹引爆了周围的易燃物,产生爆炸效果。在这个简单而常见的过程中,游戏引擎便在后台起着作用,控制着游戏中的一举一动。
一些游戏中常见的场景都是引擎在后台起着作用
把这个过程用专业们的语言分解一下就会变成这样:首先出场的是可以行动的士兵,也就是人物模型。模型由引擎中的动画系统赋予运动能力,游戏中角色能做出什么动作便取决于动画系统有多强大。人物的真实程度则取决于3D模型渲染引擎的能力,这也是游戏引擎最重要的功能之一,游戏的画质高低便由它来决定。之后,士兵碰倒了杯子,这个过程涉及到引擎的碰撞检测,它可以决定不同的物体在接触的时候会产生什么样的结果,有的游戏能穿墙有的则不能便是不同的碰撞检测控制的。例子中设定的是把杯子碰倒了,杯子发出了破碎声。在发生某种动作的同时发出相应的声音则属于引擎中的音效处理了。杯子破碎的声音吸引了敌人的注意,这是引擎中的AI智能运算在起作用,最后双方交火引发爆炸,爆炸产生的烟雾、爆炸物飞散则是引擎中的物理效果在起作用了。
可以说,游戏引擎虽然有着“动力(Engine)”之名,但是其实际上却是行“大脑(brain)”之实,指挥控制着游戏中各种资源。游戏引擎的准确定义也是如此,“用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。”通常来讲,游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。(引自wikipedia)
[2.游戏引擎与游戏开发]
十几年前的游戏都很简单(以现在的眼光来看),容量大小都是以M计,通常一款游戏的开发周期在8到10个月左右,最主要的是,每款游戏开发都需要重头编写代码,期间存在着大量的重复劳动,耗时耗力。慢慢地,开发人员总结出一个规律,某些游戏总是有些相同的代码,可以在同题材的游戏中应用,这样就可以大大减少游戏开发周期和开发费用,慢慢地这些通用的代码就形成了引擎的雏形,伴随着技术的发展,最终演变成今天这样的游戏引擎。
同样地,游戏引擎出现之后,也在另一方面促进着游戏开发。随着显卡性能越来越强,游戏的画质越来越高,游戏开发周期也越来越长,通常都会达到3到5年,自行开发游戏引擎的话时间还会更长,所以大多数游戏公司还是选择购买现成的游戏引擎,简化游戏的开发过程。
那么,实际的游戏开发过程中,游戏引擎是如何把游戏与显卡连接在一起的,游戏中的各种特效是如何调用显卡来实现的?这个问题如果要回答的很专业,恐怕不在笔者知识范围之内了,不过我们可以用很简单的方法来说解释一下。显卡是游戏的物理基础,所有游戏效果都需要一款性能足够的显卡才能实现,在显卡之上是各种图形API,目前主流的是DirectX和OpenGL,我们所说的DX10、DX9就是这种规范,而游戏引擎则是建立在这种API基础之上,控制着游戏中的各个组件以实现不同的效果。
在引擎之上,则是引擎开发商提供给游戏开发商的SDK开发套件,这样游戏厂商的程序员和美工就可以利用现成的SDK为自家的游戏加如自家建立的模型、动画以及画面效果,而最终的成品则是各种游戏。
整个关系可用下面的关系图来表示。
游戏引擎与GPU的关系图
经过十多年的发展,游戏引擎的功能也越来越强大,涌现出一批比较知名的引擎如DOOM/Quake、Unreal虚幻,那么这些引擎的成功之处在哪里呢?
[3 什么才是好的游戏引擎]
时至今日,游戏引擎已从早期游戏开发的附属变成了今日的当家角色,对于一款游戏来说,能实现什么样的效果,很大程度上取决于使用的引擎由多么强力。如果对什么才是优秀的游戏引擎做个判断,那么优秀的游戏引擎一定具有如下优点:
1.完整的游戏功能。随着游戏要求的提高,现在的游戏引擎不再是一个简单的3D图形引擎,而是涵盖3D图形、音效处理、AI运算、物理碰撞等游戏中的各个组件,组件设计也应该是模块化的,可以按需购买。以这两年最成功的虚幻3引擎为例,虽然全部授权金(不包括售后技术服务)高达几十万甚至上百万美元,但是可以分别购买相关组件,降低授权费用。
2.强大的编辑器和第三方插件。优秀的游戏引擎还要具备强大的编辑器,包括场景编辑、模型编辑、动画编辑等,编辑器的功能越强大,美工人员可发挥的余地就越大,做出的效果也越多。而插件的存在,使得第三方软件如3DS Max、Maya可以与引擎对接,无缝实现模型的导入导出。
3.简洁有效的SDK接口。优秀的引擎会把复杂的图像算法封装在模块内部,对外提供的则是简洁有效的SDK接口,有助于游戏开发人员迅速上手,这一点就如各种编程语言一样,越高级的语言越容易使用。
4.其他辅助支持。优秀的游戏引擎还提供网络、数据库、脚本等功能,这一点对于面向网游的引擎来说更为重要,网游还要考虑服务器端的状况,要在保证优异画质的同时降低服务器端的极高压力。
以上四条对于今天的游戏引擎来说不成问题,当我们回头历数过去的游戏引擎,便会发现这些功能也都是从无到有慢慢发展起来的,早期的游戏引擎在今天看来已经没有什么优势,但是正是这些先行者推动了今日的发展。 [4.3D游戏引擎始祖―《Wolfenstein 3D》]
谈及游戏引擎,有一家游戏公司最应该被提起,也有一个人最不应该忘记,那就是ID software和它的创始人之一约翰?卡马克(John D. Carmack)。据说这家公司仅有13名固定员工,而且停车场也只停13辆法拉利跑车,从这一八卦中可以看出大家都很关注这家公司是如何的盛产富翁,但是这群狂人开发的游戏技术更为傲人。
1990年,卡马克和id的另一巨头罗梅洛制作了一款小游戏《Commander Keen》(《指挥官基恩》),在PC机上首次实现了卷轴类游戏背景的流畅效果,后来他们又花了一个晚上的时间把当时的街机游戏《超级玛丽》移植到PC机上,实现了流畅的横板效果。他们把PC版《超级玛丽》发给任天堂,希望借此吸引任天堂的兴趣。当然,任天堂也确实很有兴趣,夸奖了他们几句,不过并无下文(大人物未成名之前总是被另一个大人物无视)。1991年,卡马克和罗梅洛成立了ID Software,开始自主创业。
后面的事就很简单了,凭借着过人的技术和狂热的信念,id公司创造了一个又一个技术巅峰。没多久,他们推出了《Wolfenstein 3D》(德军总部3D)。这款游戏的画面在现在看来不值一提,但是却是3D射击游戏之祖,卡马克也因此获得了“FPS游戏之父”的称号。
《重返德军总部3D》成了游戏引擎的始祖
作为最早的3D游戏引擎之一,《Wolfenstein 3D》(德军总部3D)使用了一种射线追踪技术来渲染游戏内的物体(严格来说,《Wolfenstein 3D》还是一种伪3D)。游戏中每个像素会发射一道光束,如果这道光束碰到了障碍物形成反射,游戏就会按照设定好的程序在障碍物的相应位置创建单维深度缓存(dimensional depth buffer),建立纹理图像。
《Wolfenstein 3D》开创了3D射击游戏时代,其独创性的3D技术也为其他游戏所采用,Blake Stone, Corridor 7,Operation Body Count、Super Noah's Ark 3D(超级诺亚方舟3D)、 Rise of the Triad(算是《Wolfenstein 3D》的续作,增加了跳跃和低头抬头等动作),还有一直未发售的 Hellraiser(养鬼吃人)等游戏都沿用了卡马克这一技术。
[5.《DOOM》问世―Id系列引擎之Id Tech 1 ]
注:Id公司为自家的引擎技术划代为Id Tech,DOOM引擎正是Id Tech 1,后文都将按照这个序列来写。
《Wolfenstein 3D》只是ID小试身手,1993年ID公司推出的DOOM(毁灭战士)游戏引擎才是引擎技术的代表。DOOM引擎改善了《Wolfenstein 3D》引擎中的一些缺陷,如所有房间的高度都是相同的,所有墙壁都是垂直的,运动也只能直线前进或后退等,并且加入了许多新效果。
在DOOM中,角色与游戏中的物品的互动性进一步增强,楼梯、楼梯上的花朵以及路桥已经可升可降。游戏中的光照效果也不再单一,不同的单位也有了不同的亮度,此外DOOM引擎还支持立体声音效,环境的定位感更真实。这些效果在3D显卡都没有问世的1993年毫无疑问是非常激动人心的进步。
DOMM一代的画面
凭借自身的过人之处,DOOM获得了350万的销量,为ID公司带来了滚滚财源。更重要的是,DOOM成了ID公司第一款用于商业授权的引擎,从DOOM开始,游戏公司又多了一条创收之路。当时使用过DOOM引擎的游戏主要有:Raven公司的《ShadowCaster》(投影者)、《Heretic》(1994)、《Hexen》(1995)、Rogue Entertainment公司的《Strife》、《HacX》(免费)以及美国 Marine 公司的《Marine Doom》等等。这些游戏全都使用了DOOM引擎,其中Raven公司于ID公司的合作最为紧密,出品的三款DOOM引擎游戏也较为知名。
DOOM发售一年之后,ID又推出了DOOM系列的第二部作品《DOOM:Hell on Earth》。凭借id的号召和一代的影响力,DOOM II获得了94年度的最佳原创幻想/科幻电脑游戏大奖,在销量和口碑上再创新高。
不过,从技术角度来讲,DOOM II上并没有什么创新之处,使用的DOOM,也没带来新颖的图形技术,就连游戏中的怪物和武器也没有新增多少。虽然id公司在1995年发布了一款扩展包《Master Levels for Doom II》,但是人们还是更期待《DOOM III》,只是这个期待要很长时间,《DOOM III》在10年后的2004年才正式发布。
[6.雷神问世―ID系列引擎之《Quake》 ]
就在DOOM系列热火朝天的时候,Id公司又于1996年发售了另一款新型游戏《Quake》,相比《DOOM》使用的将拥有高度信息的二维地图渲染成3D图像的伪3D引擎,Quake引擎是实实在在的3D引擎。
真正3D模式的Quake引擎
Quake引擎是当时第一款完全支持多边形模型、动画和粒子特效的引擎,而在技术之外,《Quake》的游戏操控方式也树立了FPS游戏的标准。游戏采用流动控制方案(fluid control scheme ),它使用鼠标来观看/瞄准/定向以及用键盘前进/后退/侧移,这也成了FPS游戏最普遍的操控模式,直到今日仍没有变化。
Quake的出现为FPS游戏建立了经典的操控方式
使用《Quake》引擎的主要是Id自己的《Quake》和《Quake World》系列、《HeXen II》(异教徒)、MageSlayer、Nexuiz(鏖战废土)、Day of Defeat(胜利之日),还有大名鼎鼎的《Half life:》(半条命)以及《Half life》扩展出来的《反恐精英》。
大名鼎鼎的CS使用的便是Quake引擎
[7.多彩光影效果―ID公司系列引擎之Id Tech2 ]
90年代的Id公司相当勤奋,几乎是每年推出一部新游戏,而且每次都能或多或少地带给人们不少惊喜。《Quake》一年之后,Id又发售了《Quake II》,采用的引擎也升级为Id Tech2。
《Quake II》
1997年的时候,当时3D加速卡(显卡那是都叫3D加速卡)已经兴起,《Quake II》引擎已经支持硬件3D加速,当时较为知名的3D API是OpenGL,《Quake》也因此重点优化了OpenGL性能,这也奠定了Id公司系列游戏多为OpenGL渲染的基础。
《Quake II》首次实现了彩色光影效果
Id Tech2引擎添加了256色材质贴图,首次实现了彩色光影效果,使得游戏中的物体在反射光影时候能展现出不同样的色彩效果,另外一个技术特性则是通过支持DLL(dynamic-link libraries,动态链接库)文件实现了对软件渲染和OpenGL渲染的支持。
基于Id Tech2引擎的游戏有《Quake II》、《Anachronox》(时空传奇)、《大刀》(Id另一强人罗梅洛离开Id之后开发的游戏)、《Soldier of Fortune》(命运战士)、《半条命》(Quake和Quake II的代码都有)。
《大刀》是罗梅洛离开Id之后使用《Quake II》引擎制作的一款游戏
[8.3D加速卡时代来临―ID系列引擎之Id Tech3 ]
1999年,Id又发布了《Quake III:Arena》,这是《Quake》系列的第三步,也标志着Id的引擎技术到了Id Tech3时代。在这一时代,Id Tec3已经不再支持软件渲染,必须要有一款支持硬件加速的显卡才能运行。
《Quake II》引擎需要一款硬件加速卡才能玩转
《Quake III》引擎增加了32Bit 材质的支持,还直接支持高细节模型和动态光影。同时,引擎在地图中的各种材质、模型上,都表现出了极好的真实光线效果。《Quake III》使用了革命性.MD3格式的人物模型,模型的采光使用了顶点光影(vertex animation)技术,每一个人物都被分为不同段(头、身体等),并由玩家在游戏中的移动而改变实际的造型,游戏中真实感更强烈。
《Quake III:Team Arena》
《Quake III》拥有游戏内命令行的方式,几乎所有使用这款引擎的游戏都可以用`键调出游戏命令行界面,通过指令的形式对游戏进行修改,增强了引擎的灵活性。
《Quake III》一款十分优秀的游戏引擎,即使是放到今天来讲,这款引擎仍有可取之处,即使画质可能不是第一流的了,但是其优秀的移植性、易用性、和灵活性使得它作为游戏引擎仍能发挥余热,使用《Quake III》引擎的游戏数量众多,比如早期的《使命召唤》系列、《荣誉勋章》、《绝地武士2》、《星球大战》、《佣兵战场2》、《007》、《重返德军总部2》等等。
第一代的《使命召唤》使用了《Quake III》引擎
[9.《DOOM3》震撼问世―ID系列引擎之Id Tech4 时间很快就到2004年,这一时代已经是DX9显卡的时代,但是人们关注的年度3D大作仍是基于OpenGL渲染的《DOOM3》,这也是Id公司的第四代引擎―Id Tech 4的代表作。《DOOM3》命运多舛,03年的源码泄露事件使得《DOOM3》很受伤,但是也因此使得其强悍面画和要求为人所知。
DOOM3引擎的开山作
当时的《DOOM3》到底强到什么程度?id自家人恐怕最清楚,《Doom3》的首席程序员罗布?达菲曾经说过:“Doom3从任何角度而言都是最完美的,而且它几乎完全追随并引导了硬件的发展。以id software的经验来看,Doom3估计又会被追捧至少5年,而在这5年里测试显卡FPS的基准估计都会是它了。”(你这话太大了点,至少07年发布的《Crysis》就超过了)。
在《DOOM3》中,即时光影效果成了主旋律,它不仅实现了静态光源下的即时光影,最重要的是通过shadow volume(阴影锥)技术,《DOOM3》引擎实现了动态光源下的即时光影在游戏中大规模的使用。
shadow volume(阴影锥)关闭(左)与开启(右)的效果对比
当然了,除了shadow volume(阴影锥)技术之外,《DOOM3》中的凹凸贴图、多边形、贴图、物理引擎和音效也都是非常出色的,可以说04年《DOOM3》一出,当时的显卡市场可谓一片哀嚎,GeForce FX 5800/Radeon 9700以下的显卡基本丧失了高画质下流畅运行的能力,强悍能力也只有现在的《Crysis》能与之相比了。
《Quake 4》是Id公司目前最高级的引擎
由于DOOM3引擎的优秀,后续有一大批游戏都使用了这款引擎,包括《DOOM3》资料片《Resurrection of Evil》(邪恶复苏)、 Id自家的《Quake4》(实际是由Raven公司捉刀)、Human Head Studios的《Prey》、Splash Damage 的《Enemy Territory: Quake Wars》(敌占区:雷神战争)和《Brink》、Raven的《Wolfenstein》(重返德军总部)等等。
Id Tech 5引擎能否让Id公司站在引擎技术最前端?
现在,Id公司还在进行着《DOOM4》的开发,引擎也升级到Id Tech5,虽然详细的技术规格仍然是迷,但是卡马克已经放言:“Doom4是一款为30帧而拼搏的作品,就像是应用了全新的引擎,它基于我们这四年来的研发成果。”如果他指的是游戏发布时的硬件水平,那么Id Tech5引擎恐怕又是高端显卡的坟墓了。 |