缅怀Quake 3引擎

2023-10-29 08:21
文章标签 引擎 缅怀 quake

本文主要是介绍缅怀Quake 3引擎,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

缅怀Quake 3引擎

优秀游戏的核心


From Quake 3 Engine Tribute
http://hardware.gotfrag.com/portal/story/30069/
作者 Andrew Flores
翻译 cypher
http://www.q3acn.com/ShowPost.aspx?PostID=15589&p=1

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引擎之前,我们先来了解游戏引擎究竟为何物。

何为Q3引擎

什么是游戏引擎?

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

电子百科对游戏引擎的定义:

游戏引擎是视频游戏的核心软件处理组件。它主要处理图像填充及其他必要技术,有时兼处理对象的游戏AI、碰撞探测。游戏引擎主要提供图像的输出(2D或者3D)。同时游戏引擎负责平台提取,以便游戏能够在部分代码改动的情况下,实现跨平台运行(如游戏机、操作系统)。


一个游戏引擎运行的原理大体相同。事先写好的代码分组处理游戏中的不同组件。当游戏将组建信息反馈给引擎时,引擎负责将不同的信息分组交给相应的代码,各组代码处理相应的信息,然后把输出结果返还给使用者。比如,我们来看看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运行。提到画质,我们进入下一话题:硬件。

游戏引擎是视频游戏的核心软件处理组件。它主要处理图像填充及其他必要技术,有时兼处理对象的游戏AI、碰撞探测。游戏引擎主要提供图像的输出(2D或者3D)。同时游戏引擎负责平台提取,以便游戏能够在部分代码改动的情况下,实现跨平台运行(如游戏机、操作系统)。


一个游戏引擎运行的原理大体相同。事先写好的代码分组处理游戏中的不同组件。当游戏将组建信息反馈给引擎时,引擎负责将不同的信息分组交给相应的代码,各组代码处理相应的信息,然后把输出结果返还给使用者。比如,我们来看看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引擎的流行游戏也在电子竞技方面得到普遍的应用(RTCW、COD、SOF、Q3:OSP、Q3:CPMA,等等)。在过去6年里Q3引擎革命性地出现为我们带来许多游戏美好的回忆;而没有它也就没有这些优秀游戏的诞生。当Unreal Warfare、Doom 3、Source这样的新引擎出现,又即将被更新、更好的引擎代替。唯有Q3一直在那里,始终提醒着我们一个优秀引擎应该具备的一切。

发展路上的里程碑

结束语

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

资料
- http://en.wikipedia.org/wiki/Quake_III_engine
- http://www.devmaster.net/engines/engine_details.php?id=101
- http://www.planetquake.com/q2faq/q3faq/
- http://www.cs.cornell.edu/~bjk45/publications/papers/WuenscheKotEtAl_GameEngines.pdf
- http://www.machinima.com/article.php?article=399
- http://www.nvnews.net/tweaks/quake3_tuneup.shtml

这篇关于缅怀Quake 3引擎的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299441

相关文章

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=

MySQL技术内幕_innodb存储引擎

MySQL技术内幕_innodb存储引擎 INNODB innodb中如果表没有主键 表是否由 非空唯一键,有则该字段为主键没有,则自动创建一个6字节大小的指针 innodb存储引擎的所有数据都存储在表空间中,表空间由段,区,页(块)组成。 如果启用了 innodb_file_per_table, 则每张表内的数据可以单独放在一个表空间中即使启用了上面参数,共享表空间也会因为 系统事务信息

Matter.js:Web开发者的2D物理引擎

Matter.js:Web开发者的2D物理引擎 前言 在现代网页开发中,交互性和动态效果是提升用户体验的关键因素。 Matter.js,一个专为网页设计的2D物理引擎,为开发者提供了一种简单而强大的方式,来实现复杂的物理交互效果。 无论是模拟重力、碰撞还是复杂的物体运动,Matter.js 都能轻松应对。 本文将带你深入了解 Matter.js ,并提供实际的代码示例,让你一窥其强大功能

认识鬼火引擎

一、Irrlicht简介 (1)概念Irrlicht引擎是一个用C++书写的高性能实时3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台)、OpenGL 或它自己的软件着色程序,可以实现该引的完​全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等。(

一个图形引擎的画面风格是由那些因素(技术)决定的?

可能很多人第一直覺會認為shader決定了視覺風格,但我認為可以從多個方面去考慮。 1. 幾何模型 一個畫面由多個成分組成,最基本的應該是其結構,在圖形學中通常稱為幾何模型。 一些引擎,如Quake/UE,有比較強的Brush建模功能(或應稱作CSG),製作建築比較方便。而CE則有較強的大型地表、植被、水體等功能,做室外自然環境十分出色。而另一些遊戲類型專用的引擎,例

气膜场馆:乡村振兴中的健康与经济新引擎—轻空间

随着乡村振兴战略的深入推进,气膜场馆作为新兴建筑形式,正在为农村地区带来全新的发展机遇。它不仅是乡村百姓锻炼身体的好去处,更是带动当地经济发展的强劲动力。 首先,气膜场馆为农村地区的居民提供了更多运动健身的机会。与传统体育设施相比,气膜场馆建设周期短、成本低,非常适合在乡村快速推广。通过提供羽毛球、篮球、排球等多种运动项目,村民可以在空闲时间增强体质,改善生活方式。这对于长期从事农业劳动的村

基于 RocketMQ 的云原生 MQTT 消息引擎设计

作者:沁君 概述 随着智能家居、工业互联网和车联网的迅猛发展,面向 IoT(物联网)设备类的消息通讯需求正在经历前所未有的增长。在这样的背景下,高效和可靠的消息传输标准成为了枢纽。MQTT 协议作为新一代物联网场景中得到广泛认可的协议,正逐渐成为行业标准。 本次我们将介绍搭建在 RocketMQ 基础上实现的 MQTT 核心设计,本文重点分析 RocketMQ 如何适应这些变化,通过优化存储

【mysql 存储引擎】MySQL常用存储引擎及特点

SHOW ENGINES;SHOW VARIABLES LIKE 'have%';SHOW VARIABLES LIKE 'storage_engine' 1.InnoDB存储引擎特点: 1)给MySQL数据库提供事物,包括回滚,包括修复能力,多版本并发控制事物安全。 2)支持外界元素。 3)创建表结构是存储在“.fim”文件中,数据和索引,数据分别存储在innodb表空间中。 4)缺点