Quake3引擎

1010 篇文章 11 订阅
13 篇文章 0 订阅

Quake 3引擎从诞生起,就成为众多3D游戏开发者选择的基本引擎,时至今日,仍到处可见以Q3引擎作为游戏引擎的游戏。同时,该引擎在硬件发展过程中的地位也不容忽视。Gotfrag上一篇探讨Q3引擎的文章为我们揭示了这个或许我们还不甚了解的伟大引擎。

1999年,id公司发布了著名的Quake系列第三代——Quake 3:Arena。直到今天,Q3依然拥有广泛玩家群体,也成为最伟大的一款第一人称射击类游戏。Quake4的上市,多多少少又让我们回忆起Quake3的过去以及它对整个游戏界作出的贡献。当问到Quake3代表着什么,有人坚信着它代表鼠标、键盘操作控制技术的及至展示。Quake3作为游戏不仅具有拓展性很强的可玩度,同时游戏里令许多人感到晕眩的虚拟场景也让玩家印象深刻。物理特性、电脑AI在Quake3中的表现都可圈可点。而又是什么让这些经典浮现于真实游戏中?决定的因素有且仅有一个,这也决定着整个游戏的框架,它就是游戏引擎Quake3的引擎无疑对游戏开发者、玩家都是革命性的突破。因为Q3引擎所具备的高自由性、高拓展性,在今天仍可见采用CPMA、OSP等MOD的Quake比赛。同时,引擎的拓展性还表现在超强的移植性,Quake3出现在各大游戏机或是其他操作系统环境下:DC、PS2、MAC、Linux。在应用于如今广泛的电子竞技比赛同时,最新的电脑硬件评分测试,仍以Q3引擎作为运算参考。加之由于用户定制度很高的特点,使用Q3引擎的游戏时至今日仍在众多游戏中占有一席之地。在我们深入探讨Q3引擎之前,我们先来了解游戏引擎究竟为何物。

什么是游戏引擎?

当你在玩一款流行游戏时,实际你已经体验到开发者灌输到游戏引擎中的一切,而游戏引擎在游戏过程又将这些东西执行反馈给用户。顾名思义,游戏引擎,就像汽车引擎那样,收集、返回数据同时运行游戏。拿运行地图文件为例,.bsp表示关卡、场景文件(实际应用比如Quake 3、HL),游戏引擎获取这些信息,并按照事先算法进行解释,然后偿还为像素值输出到屏幕上,生动的3D图像呈现眼前。某些引擎只负责处理3D图像,比如Quake3,Doom3,HL。而Unreal的引擎则负责处理游戏所有的组件,包括物理特性、动画演示、音频效果、碰撞检测,等等。

一个游戏引擎运行的原理大体相同。事先写好的代码分组处理游戏中的不同组件。当游戏将组建信息反馈给引擎时,引擎负责将不同的信息分组交给相应的代码,各组代码处理相应的信息,然后把输出结果返还给使用者。比如,我们来看看Q3引擎是如何处理一个火箭跳的。首先,玩家会按下空格键和鼠标左键(以默认设置为例)。这些输入信息由代码转换为游戏可识别信息——跳、开火。火箭筒将会开火,炮弹发射到地面。引擎的碰撞探测部分将会测算出炮弹接触到地面的时间及爆炸时离玩家模型的距离,由此计算出火箭筒炮弹应该返回的作用关系。Q3引擎的物理系统将会处理玩家跳跃,同时得到炮弹反作用力的效果。引擎的图像分支负责将计算好的物理过程表现于屏幕上,就像玩家实际观看到的火箭跳动作。现在我们已经知晓了游戏引擎的大概工作程序,我们来看看Q3引擎有什么独特之处。


Quake 3引擎

重新回到1999年,当id公司刚一发布Q3:A,人们关于Q3与UT(Unreal Tournament,虚幻竞技场,Epic1998出品)孰优孰劣的争执也开始升温。尽管这是一个主观性很强的无休止争论,不过我还是可以看一下,实际哪个引擎包含了更多的功能。在1999年,一个第一人称射击游戏的精髓,就是跟它关联最为密切的图像引擎。游戏的画面质量由许多方面影响,最重要的几个因素为,材质、模型、光影、动画。Q3引擎包含这些主要因素的同时,与其他游戏引擎不同,它还添加了一些新成分。在最初的Quake引擎基础上,Quake 2的引擎添加了256色材质贴图。Quake 3引擎增加了32Bit 材质的支持。不仅如此,它还直接支持高细节模型和动态光影。同时,引擎在地图中的各种材质、模型上,都表现出了极好的真实光线效果。模型的采光使用了顶点光影技术。三种LOD(细节表现级)系统也使引擎可以对同一材质表现出三种不同质量的贴图效果。这样,在不同距离上使用不同的材质效果,实现远处模糊、近处清晰的效果。与Unreal引擎比较,后者支持了256色的材质,没有人物阴影,一个复杂的LOD系统使大型室内、室外场景优于Q3引擎。Q3引擎同时使用了革命性.MD3格式的人物模型。每一个人物都被分为不同段(头、身体等),并由玩家在游戏中的移动而改变实际的造型。而Quake 2引擎使用了缩定每秒为10个关键帧的动画,比之起来,模型要显得呆板、突兀许多。Unreal引擎同样使用了基于帧数变化的动画。Q3引擎无疑在那个时期领先于其他技术,这也导致当时最顶尖的系统也无法在最高画质下,超过30FPS运行。

 

Quake 3引擎与硬件

当Q3A于1999年发布时,玩家们唯一梦想,莫过于能在1024*768 32色下,打开全屏抗锯齿、动态光影流畅运行游戏。而不再是忍受640*480 16色的痛苦。如今随手拿来一个中级配置的电脑也可以轻松搞定Quake3,开启最高特效情况下,流畅运行于200FPS以上。这也是Q3能一直具备可玩性的理由,什么时候都可以玩上它。Q3引擎创新性让用户可以根据自己的配置来运行合适的效果。不管是在奔腾级处理器加GF显卡还是AMD-FX、7800GTX的电脑上,引擎始终让用户能够对图像进行自定义:墙面纹路、火光效果、动态光影、多重光影、16、32色材质、贴图细节、模型平滑度、模型细节、火箭或者榴弹的尾烟等等。如今的游戏引擎大多用于发挥目前、未来的显卡、处理器最高性能。不过,Q3引擎在提供低配置电脑运行同时,也早以达到这一功能。无疑,引擎在电脑硬件广泛适应程度及用户定义宽度的表现上是革命性的。而Q3引擎对硬件的重要作用不止于此。作为benchmark工具,Q3一直是最好的游戏之一。也许有人回说如今硬件可以轻易获取200到500的FPS,游戏中根本感受不到区别。如何肯定它的作用?答案就是那些表现的数值。哪怕是硬件的小小变化,FPS数也可以从200到210变化。Q3因它对硬件的敏锐探测及表现,一直以来作为极具效率的测试工具。从测试版发布到今天,Q3A依然是许多人使用的测分工具之一。


存活周期与扩展性

Q3引擎非凡的一面,并不是它如何地具有革命性突破,而是在于轻而易举的引导了如今的图像发展标准。事实上,从1999发布起,到2004年Source和Doom3引擎发布,这5年中它依然是所有开发人员的参照标准之一。而相比之下,Source或者Doom 3引擎在明年Unreal 3发布之时,亦将成为老一代的引擎。这也是Q3引擎带来的创新性变化的延续。即便在Q3引擎看起来落伍后,之后五年内依然由这个引擎开发出了许多让我们激动欣喜的游戏。这些游戏包括:RTCW、ET、MOH、SOF、COD、Star Wars等等。不过,再好的事物也会有尽头。当意识到他们古老的引擎的确已经成为过去时,id于2005年8月19日发布了Q3引擎的源代码。现在,任何人都可以基于这个引擎来开发游戏,不需要任何费用,完全自由共享。考虑到引擎本身的高质量,这并不是件坏事。而引擎如今颇受欢迎的原因不仅仅是因为它完全自由共享,而且因为它具有很强的易用性和移植性。几乎整个引擎可以通过如“cg_draw2d 0/1”(修改HUD和其他非场景性画面属性)的控制台命令进行修改。不仅如此,相当数量的新引擎设计成类似Q3引擎的样子。
id公司的最新引擎——Doom 3引擎,几乎就是在Q3引擎的基础上,加入了如面向对象编程等的更多现代技术,用C++语言重新改写了原来的C语言版引擎。同时,COD2基本就是运行在一个放大版的Q3引擎之下;类似于HL与Q2的关系。Q3引擎事实上的编程效率非常之高,在移植到Linux、MAC、DC、PS2时,几乎不需要做太多烦琐的修改。

大量我们喜爱的游戏使用或基于Q3引擎开发。而许多使用Q3引擎的流行游戏也在电子竞技方面得到普遍的应用(RTCE、COD、SOF、Q3:OSP、Q3:CPMA,等等)。在过去6年里Q3引擎革命性地出现为我们带来许多游戏美好的回忆;而没有它也就没有这些优秀游戏的诞生。当Unreal Warfare、Doom 3、Source这样的新引擎出现,又即将被更新、更好的引擎代替。唯有Q3一直在那里,始终提醒着我们一个优秀引擎应该具备的一切。

 

发展路上的里程碑

如今的FPS游戏,玩家要求图像与操作的完美结合。Q3引擎同时做到这两点,它对硬件的高度适应能力也将被我们永远怀念。新的引擎诞生,旧的引擎消逝。引擎的发展日新月异,而Q3引擎的传奇永远存活于历史。Q3引擎在诞生6年后依然得到广泛应用,并将继续作为新引擎的榜样存在下去。几年来,Q3引擎作为游戏发展道路上重要的里程碑。如今我们已经习惯越来越趋近于真实的游戏画面;应用最新硬件技术的特效。而想要继续进步,我们应该铭记的,是真正改变了游戏发展的过去。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kenshin1987/archive/2008/10/04/3016237.aspx

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值