首页 > 精品范文库 > 14号文库
LUNA_游戏引擎介绍
编辑:诗酒琴音 识别码:23-337737 14号文库 发布时间: 2023-04-07 03:36:02 来源:网络

第一篇:LUNA_游戏引擎介绍

LUNA

游戏引擎介绍

学院:计算机科学与技术班级: 学号: 姓名:

《LUNA 游戏引擎介绍》

LUNA游戏引擎系LUNA团队精心研发的拳头产品,该引擎秉承了国内外许多著名游戏引擎的优点,并开创式的融入了多个游戏引擎制作的新模式、新观点,较好的吸引了其他知名游戏引擎的精华,是中国国内游戏引擎中非常优秀的作品,虽然该引擎的商业版迟迟未能推出,但丝毫不能阻挡业界开发者想揭开她神秘面纱的想法,现在特对该引擎作一些技术揭秘:

LUNA 游戏引擎经过多个版本的更新和衍生,从最初单纯的游戏基本库到如今拥有完整且多元化的游戏制作解决方案,经历了五个年头。在这五个年头里,LUNA引擎的主要开发者Villa Lee先后数次大刀阔斧的整改引擎的结构和框架,由其是最近一个版本的更新,耗费了半年时间之间,实时的给引擎注入代表当今世界最领先图形技术和游戏制作技术。

为了具备与操作系统无关性的特点,LUNA引擎单独划出了两个底层管理模块。

第一个是操作系统转置层,该层中主要封装了Linux、Win32等不同操作系统的API,同时包含了底层错误反应系统、事件驱动系统、CPU监测管理系统、Thread Manager、和两个高精度计时器;

另一个是操作系统管理层,类似于MSDOS的Io.sys。该层中主要集成了Memory监测管理系统、管道处理系统、管道映射表分析器、管道搜索器、FPU/3D Now!™/SSE 优化指令集。

同大多数著名的引擎一下,LUNA有极为丰富的高效的渲染指令。并且这些指令是以类工厂形式提供给引擎使用者使用的。各个指令的分类以及各个其他非渲染类子系统相关的功能如下表:

♦ 角色动画、模型系统

支持Lod Mesh,根据视点距离自动减面及调整细节等级。支持顶点位移、旋转、缩放动画 支持蒙皮(Skin)

支持骨架和骨架动画。3ds max 中的Biped、Bones 或Dummy 等均可作为骨架输出。支持材质动画 支持路径动画 支持材质坐标系动画 支持贴花纸(Decal)动画 支持贴花纸坐标系动画

支持融合和形变动画,例如从人变成龙或其他动物 支持面部表情动画

支持可见度动画,如模型或模型部分淡入淡出。支持通用和任意缩放动画,或模型的部分任意缩放动画

支持动画合成,同一模型同时可以播放多个动画,不同动画会自动叠加合成,不同动 画可以按照不同的速度播放。支持自定义动画长度和播放速度,在模型输出时可以调整动画的播放速度。支持动画播放运行时加速、减速。

支持动画中某帧触发相对应的事件,例如播放到动画中某一帧的时候进行扣血等。支持对模型的部分进行操作。

支持环境贴图、反射贴图、细节贴图等,可以做反光效果等。♦ 碰撞检测系统

快速准确的碰撞检测算法。支持边界框碰撞。支持AABB 碰撞。支持射线碰撞。支持任意形状的碰撞。

支持按照不同类别的物件进行分类碰撞。例如可以设定玩家与地面、静态物件等发生 碰撞,怪物与地面发生碰撞却不与静态物件发生碰撞等。♦ 效果系统

效果系统包含对各种光效组合的支持,全面提升游戏画面的可视性: 支持材质自动融合。支持实时动态阴影。

支持动态光效,支持非线性光效动画,可自定义RGB 三色关键帧动画。支持爆炸效果。支持熔岩效果。支持太阳眩光。支持闪电特效。

支持镜头颤动效果,可自定义颤动的物理频率和振幅。支持刀光剑影。

支持雨雪效果,雨雪材质可以从指定的材质列表中随机选择,雨雪量大小、风力大 小、雨量速度等等参数可以自定义,支持暴风雨效果(特定算法)。支持水花和波纹、气泡效果。支持物件被击破产生碎片。支持运动模糊效果。

支持自定义特效,可以在显卡上对硬件显示模块进行直接编程,高速执行,算法类似 Uneal3。所有自定义特效可以通过特效管理器进行管理,并可分别运用在不同模型 上。♦ 粒子系统

>>> 自定义粒子触发方向、发散参数、发散位移参数、生存周期、间隔周 期、内外延角、风力参数、推进力参数、重力、推进力变化参数、速度参数等等参 数。

支持动态贴图,可以调整材质变换速度。支持粒子不同阶段使用不同颜色。粒子发散器可以控制粒子喷射数量。粒子可以绑定在模型上特定节点。

专门有为粒子编写的粒子脚本编辑器方便策划人员编写漂亮的粒子。♦ 室内场景系统

支持BSP/PORTAL/PVS 算法。支持光图。

支持室内动态光效,支持顶点光。

支持室内全场景警报状态,全场景产生某种特定光效。支持多层细节层,自动减面。支持材质替换。

支持路径编辑。可用于过场动画或游戏。支持室内触发器。支持镜像物件,如镜子等。支持自定义节点。支持力场。♦ 室外场景系统

支持无边际连续室外地形,地形可以动画变化。支持海底场景和天界等无重力场景。室外地形支持连续自动减面。

室外地形支持多种材质,支持同一区域上多材质,支持材质自动融合。支持流水和动态波纹,支持天空倒影,水流波浪等参数均可调整。支持昼夜变化。支持质量雾。支持场景中可见度。

支持太阳光和太阳光效,太阳光支持颜色和亮度的关键帧非线性变化,太阳高度角可 以变化。支持天空中多层动态云层。

场景中支持风,支持风速变化,支持暴风。♦ 场景管理系统

细节层管理器,可对场景中所有物件进行同一细节层管理。光效管理器,可对场景中众多光效进行同一管理。场景分区域管理,无缝衔接。高速搜索算法,管理需要渲染的对象。♦ 格式容合系统

格式容合系统主要是为了高效的重复利用开发者已拥有的游戏资源,可以不经任何其他转换直接应用到游戏中而设计。支持兼容文件格式包含如下清单:

完全支持QUAKE引擎的.MDL/.MD2/.MD3/.BSP/.WAD文件格式,并提供直接高效渲染方法 完全支持COLLADA DTE格式以及微软的.X的MESH、SKINMESH模型文件格式,并提供直接高效渲染方法

完全支持MS3D文件模式,并提供直接高效渲染

支持.3DS文件顶点动画和模型文件模式,并提供直接高效渲染方法

支持.PNG/.DDS/.TGA/.BMP/.IMG/.PCX/.GIF/.WMF等等诸多常用的图片文件格式 支持目前应用较大的.WAV/.MP3/.MID/.SND/.WMV/.AVI/.MPEG等等声音媒体文件格式

♦用户界面系统

全真模拟Windows 的结构化控件的管理系统 各控件可以按照不同的方式随父控件缩放、移动 良好的扩展性,容易增加新控件 ♦3D音频系统

支持多种音频格式:WAV、MP3、MIDI、WMA、CD 音轨等。多通道音效。

支持真实3D 音效,支持多普勒声波衰弱算法、3D 音频摇动。支持软件和硬件加速混音,支持DirectSound™、EAX

2、EAX 3。支持高级音效处理(类似Winamp 的DSP 系统)。♦人工智能系统

新一代交互系统

长期以来,游戏玩家主要是通过键盘、鼠标或游戏手柄来完成游戏操作,LUNA引擎在对这些基本游戏交互设备的支持情况下,特意融合了国际较为知名的低分辨率动态图像识别算法和语音识别算法,使玩家在较低成本投入情况下,用肢体或行为语音来完成对LUNA游戏引擎开发的游戏的操作。增添了对游戏的参与性及亲身体验感。

其中动态图像识别系统包含:动作跟踪、动作运动轨迹计算、动作深度判定、色相位自调节、正切线二次插补等子模块。识别速度快、精度较高。

网络引擎系统

LUNA游戏引擎本着最低的游戏开发成本为宗指,在强大的图形渲染平台上加入了高效的网络引擎系统,该系统采用IOCP完成端口模型+P2P超接点网络技术,支持TCP/IP、UDP、HTTP等多种网络传输协议,使开发者在较短的开发周期内制作出高质量的网络程序。物理引擎系统

游戏中的玩家运动均按照真实的动力学计算,整个场景中包含重力、重力场。场景中存在 风,烟可以随风飘动;水中存在更大的阻力和浮力,有些物体可以随水流走。支持钢体精确碰撞。

支持针对汽车、飞行器材、船支等交通工具类的不同动力学算法。

支持自由落体或施加力、力场的物体运动,例如子弹等,可以留下漂亮的弹道。配合自制的骨骼系统轻松完成物体碎裂、变形、散落等现实世界描述

LUNA引擎从开发伊始,就十分重视游戏工具、编缉器的开发。目前已经成功开发了方便实用的工具套间,其中包括:

场景编辑器、脚本编辑器、模型编辑转换器、模型和动画VIEWER、音频编辑器,其中场景编辑器包括地形编辑模块、运行时调试工具、属性编辑模块、任务编辑模块等等。

第二篇:浏览器引擎介绍

一些内容来自于我能找到的资料和我自己的理解,不保证正确,但是大致应该是没错的。

一、排版引擎

首先厘清一下浏览器内核是什么东西。

英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器内核,至于为什么流行这么称呼,请自行领悟。

Rendering Engine,顾名思义,就是用来渲染网页内容的,将网页的内容和排版代码转换为可视的页面。因为是排版,所以肯定会排版错位等问题。为什么会排版错位呢?有的是由于网站本身编写不规范,有的是由于浏览器本身的渲染不标准。

现在有几个主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以常常会把排版引擎的名称和浏览器的名称混用,比如常的说IE内核、Chrome内核。其实这样子是不太合理的,因为一个完整的浏览器不会只有一的排版引擎,还有自己的界面框架和其它的功能支撑,而排版引擎本身也不可能实现浏览器的所有功能。下面罗列一下几款主流的排版引擎和浏览器。

1、Trident(Windows)

IE浏览器所使用的内核,也是很多浏览器所使用的内核,通常被称为IE内核。基于Trident内核的浏览器非常多,这是因为Trident内核提供了丰富的调用接口。老的Trident内核(比如常说的IE6内核)一直是不遵循W3C标准的,但是由于它的市场份额最大,所以后果就是大量的网站只支持老的Trident内核,依据W3C标准写的网页在老的Trident内核下面又出现偏差。目前可供调用的最新版的Trident内核是IE9所用的内核,相较之前的版本对W3C标准的支持增强了很多。

Trident内核的浏览器:

IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0); 世界之窗

1、世界之窗

2、世界之窗3;

360安全浏览器1、360安全浏览器2、360安全浏览器3、360安全浏览器4、360安全浏览器5;

傲游

1、傲游2;搜狗浏览器1;腾讯TT;阿云浏览器(早期版本)、百度浏览器(早期版本)、瑞星安全浏览器、Slim Browser;

GreenBrowser、爱帆浏览器(12 之前版本)、115浏览器、155浏览器;

闪游浏览器、N氧化碳浏览器、糖果浏览器、彩虹浏览器、瑞影浏览器、勇者无疆浏览器、114浏览器、蚂蚁浏览器、飞腾浏览器、速达浏览器、佐罗浏览器;

2、Gecko(跨平台)

Netscape6启用的内核,现在主要由Mozilla基金会进行维护,是开源的浏览器内核,目前最主流的Gecko内核浏览器是Mozilla Firefox,所以也常常称之为火狐内核。因为Firefox的出现,IE的霸主地位逐步被削弱,Chrome的出现则是加速了这个进程。非Trident内核的兴起正在改变着整个互联网,最直接的就是推动了编码的标准化,也使得微软在竞争压力下不得不改进IE。不过比较可惜的是,虽然是开源的,也开发了这么多年,基于Gecko的浏览器并不多见,除了一些简单的改动(坑爹的X浏览器)或者是重新编译(绫川ayakawa、tete009),深度定制或者增强型外壳的还比较少见。另外就是有一些其它软件借用了Gecko内核,比如音乐管理软件SongBird。

常见的Gecko内核的浏览器

Mozilla Firefox、Mozilla SeaMonkey

Epiphany(早期版本)、Flock(早期版本)、K-Meleon3、KHTML(Linux)

KDE开发的内核,速度快捷,容错度低。这个内核可能不见得很多人知道,但是后面再看下去你就明白了。

常见的KHTML内核的浏览器:Konqueror4、WebKit(跨平台)

由KHTML发展而来,也是苹果给开源世界的一大贡献。是目前最火热的浏览器内核,火热倒不是说市场份额,而是应用的面积和势头。因为是脱胎于KHTML,所以也是具有高速的特点,同样遵循W3C标准。

常见的WebKit内核的浏览器:Apple Safari、Symbian系统浏览器

5、Chromium(跨平台)

维基百科里面并没有将Chromium从WebKit分出来,这个区分完全是基于我个人的恶趣味。记得以前看过一个大牛的博文说过,Chromium把WebKit的代码梳理得可读性提高很多,所以以前可能需要一天进行编译的代码,现在只要两个小时就能搞定。这个我自己也没有考究过,但是估计可信。这个也能解释为什么Gecko和WebKit出来了这么久,第三方编译、定制的版本并不多,但是由Chromium衍生出来的浏览器早就满坑满谷了。

常见的Chromium内核的浏览器:Chromium、Google Chrome、SRWare Iron、Comodo Dragon6、Presto(跨平台)

Opera的内核,准确地说,是Opera 7.0及以后版本的内核,Opera 3.5-6.1版本使用的内核叫做Elektra。不用说,Presto对W3C标准的支持也是很良好的。虽然我很喜欢Opera,但是我对Presto的渲染速度一直有保留态度。之前在OperaChina论坛看见有人说过,Presto优先解析文字,保证可阅读性,媒体资源的渲染放后。

常见的Presto内核的浏览器:Opera7、其它

http://zh.wikipedia.org/wiki/排版引擎

二、JavaScript引擎

说完了排版引擎,接下来说说JavaScript引擎。顾名思义,JavaScript引擎就是用来渲染JavaScript的。为什么要单独拿出来说呢?因为它涉及到跑分。经常看见很多文章在报道说哪个浏览器更快,其实大部分说的就是JavaScript的渲染速度,而不是页面的载入速度。在网速许可的情况下,其实各个浏览器的页面载入速度差别不大(Opera逊色一些)。那是不是说对比JavaScript的渲染速度其实没有意义?也不是这么说,因为现在JavaScript在页面中的比重会越来越大,越来越多的动态页面开始大量借助JavaScript,比如现在主流的SNS、邮箱、网页游戏,所以JavaScript的渲染速度也是一个很重要的指标。JavaScript的渲染速度越快,动态页面的展示也越快。Opera在JavaScript引擎的跑分上面一直都是很牛逼的,一般来说最新测试版之间PK,Opera基本都会夺冠。

1、Chakra

查克拉,IE9启用的新的JavaScript引擎。

2、SpiderMonkey/TraceMonkey/JaegerMonkey

SpiderMonkey应用在Mozilla Firefox 1.0-3.0,TraceMonkey应用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey应用在Mozilla Firefox 4.0及后续的版本。

3、V8

应用于Chrome、傲游3。

4、Nitro

应用于Safari 4及后续的版本。

5、Linear A/Linear B/Futhark/Carakan

Linear A应用于Opera 4.0-6.1版本,Linear B应用于Opera 7.0~9.2版本,Futhark应用于Opera 9.5-10.2版本,Carakan应用于Opera 10.5及后续的版本。

6、KJS

KHTML对应的JavaScript引擎。

三、几个测试

1、V8引擎

http://v8.googlecode.com/svn/data/benchmarks/v6/run.html

现在很多“双核”浏览器都用它来跑分测试JavaScript引擎,分数越高越好。

2、Acid3

http://acid3.acidtests.org/

标准支持测试,分数越高越好,满分是100分。

3、HTML5

http://?hl=zh-cn Beta在线安装包:

http://?hl=zh-CN&extra=betachannel Dev在线安装包:

http://?hl=zh-CN&extra=devchannel Canary在线安装包:

http://?hl=zh-CN&extra=canarychannel Stable离线安装包:

http://?hl=zh-CN&standalone=1 Beta离线安装包:

http://?hl=zh-CN&standalone=1&extra=betachannel

Dev离线安装包:

http://?hl=zh-CN&standalone=1&extra=devchannel

Canary离线安装包:

http://?hl=zh-CN&standalone=1&extra=canarychannel(6)Opera 官网:

http://www.teniu.cc/ 正式版:

http://www.teniu.cc/download/ 测试版:

http://snapshot.opera.com/windows/latest

第三篇:游戏引擎发展史(上)

游戏引擎(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引擎恐怕又是高端显卡的坟墓了。

[10.另一巨头的崛起―虚幻竞技场引擎Unreal]

如果要找一个能跟Id公司的Quake/DOOM游戏引擎相比肩的对手的话,那么EPIC公司的Unreal引擎无疑是最合适的。而且相比只负责3D图像处理的Quake/DOOM引擎来讲,Unreal涵盖的方面更多,涉及物理特性、动画演示、音频效果和碰撞检测等游戏的所有组件,也就是说Unreal引擎的集成度更高,通用性更强。

注:Quake/DOOM后来也一样涉及到了物理碰撞、音频处理等内容,游戏引擎的发展即是向全能向发展。

1998年5月22日,大约在《Quake II》发布后半年左右,由Epic Games开发GT Interactive发行了《Unreal 》问世,游戏中除了精致的建筑物外,还拥有许多游戏特效,比如荡漾的水波,美丽的天空,逼真的火焰、烟雾和力场,单纯从画面效果来看,《虚幻》是当之无愧的佼佼者。

最早的《虚幻》画面

虽然在彩色光照效果上被Quake II引擎抢了先,但是Unreal引擎依然拥有自己的独门秘籍。Unreal引擎在彩色光照和纹理过滤上的软件渲染性能已经接近硬件级的加速,而且Unreal引擎还支持当时CPU刚刚集成的SIMD(单指令多数据)指令,比如AMD新增的3DNOW!,Intel的MMX和SSE指令集,这让它的性能进一步增强。

Unreal问世的时候,大行其道的图形接口还是3Dfx的Glide,性能最强的显卡也是3Dfx的Voodoo 5,微软的DX规范占据主流之后,Unreal引擎又很快支持DX,而对OpenGL规范虽然也有支持,但是一直不太顺,性能也不够好,所以Unreal引擎慢慢就变成了专司DX规范了。

得益于画面精美和DX规范的通用性,Unreal很快就得到了18款游戏的支持,包括《Unreal》、《Unreal Tournament》、《哈利波特》、《Rune》、《Deus Ex》等都用Unreal引擎实现了不同的游戏效果。而且,由于Unreal引擎的通用性,除了游戏,它还广泛使用在3D建模、建筑设计、动作捕捉、电影特效等等领域。

《Deus Dex》就使用了虚幻1引擎

第四篇:星际争霸2游戏引擎技术分析

《星际争霸2》游戏引擎技术解析

摘要

作为暴雪十多年磨一剑的大作,《星际争霸II》可是包含了现在最尖端的技术和效果,无论是暴雪的质量还是技术相信都是世界顶级的水平,这样的游戏公司确实在为自己的的作品留芳百世而努力!不过,至于还要等多久,至今仍是一个谜。

就在SIGGRAPH大会刚结束之后,AMD和暴雪在AMD官方网站上放出了《星际争霸II》的官方技术文档,通过游戏引擎技术的展示让星际迷们感受到越来越多的惊喜。

着色方面,在使用原型的基础上利用3D Studio MAX让程序员对整体效果做最大的优化,反复的提炼使得整个作品就像被艺术家精心雕琢一样,配合上8000个独特的、不重复的线性着色渲染代码,使得Starcraft II与早期的游戏代码相比增加了N倍。

在游戏制作初期,暴雪就认识到GPU的强大性能,因此在设计的时候就采用了以GPU为主的优化和大幅度图像质量增加。

由于使用大量像素渲染操作,如果在游戏中当你选择了控制成百上千的zerglings或者marines等作战单位集体行动,势必造成CPU超负荷,即便是强大的GPU这也是一个考验。

大量的视觉特效(Based Effects)

包括FP16 HDR、光线散射/反射效果(Diffuse and specular for lighting)、景深效果(depth of field)、体积雾(fog volumes)、动态环境遮蔽(dynamic ambient occlusion)、智能贴图置换(smart displacement)等等,这些都是Starcraft II的“BT”之处。

然而,作为一个即时战略游戏,暴雪依然在“故事情节”的设定上下足了功夫,在游戏引擎的影响下,延迟缓冲器的深度和平均值,包括着色组建都完全为了效果而服务。而照明管道和阴影的利用也让深景效果等一些特效表现得淋漓尽致。不过,这些特效都还在讨论中。

在早期的开发过程中,图形引擎也作为一个重点中的重点进行设计:

可扩展性第一

对于游戏引擎来说,一个主要的设计目标是扩展的引擎。暴雪的游戏质量是人所共知的,不光是他们的能力,更重要的是经验,从以前的一系列游戏开发经验来说,整个游戏各种族之间能力的平衡问题非常重要,而且图像效果之间的兼容性也必须考虑到,这样也是为了各种不同平台硬件之间搭配的玩家都能体验这个游戏的魅力所在,以确保游戏有足够的竞争力,因而从ATI Radeon 9800/NVIDIA GeForce FXs系列到ATI Radeon HD 4800s和NVIDIA GeForce G200s都可以轻松的进行游戏。

相比之下,GPU的负载才是重点,像素着色单元往往会因为大量的单位同时出现而使得GPU难以承受,顶点着色单元的运用也必须合理,而先进的GPU才能体验到最大限度的特效,而对于普通的GPU只能尽量减少使用率来保证游戏的流畅度。

一个引擎,两个“世界”(Dual Nature of the Engine)

这个双重性质的引擎使得整个游戏有更完美的体验,其实就是说SC2具有两个视角模式,一个是普通的RTS视角、一个是单人模式的RPG视角,当然在这两个模式下呈现的画面效果是有所不同的。具备两个视觉模式的原因正是我们之前提到的故事模式,当切换到单人模式的RPG视角时,玩家将会体验到暴雪对于整个游戏设定的精妙之处,通过一系列互动,包括对话等手段,其实从某种感觉上来说更像是第一人称射击游戏(FPS)。暴雪还将对这些不同的设定做更为细致的讨论,这样才能让玩家体验到不同的技术效果的运用。

屏幕基础效果

作为Starcraft II的另一个设计目标,照明环境模式让游戏的互动更多,之前在魔兽争霸三中,每个单位有一个硬性限制,有多少亮度,可能会影响它在任何特定时间。出于这个原因,使用动态照明是相当微不足道的,但是在Starcraft II中每个单位有一个照明设备,当其中一个开启之后其他也会开启,这样效果非常好,但是由此带来的地图的设计和绘制,包括地图地形切片就成了相当复杂的问题。而即便是解决了这些,给GPU带来的负荷也是巨大的。

针对于此,暴雪也做了很多限定 :

◆ 颜色组成部分,并不受当地照明,如发射、环境地图和点燃前期的彩色组成部分;

◆ 深度;

◆ 每像素正常;

◆ 如果使用静止环境闭塞,出口的环境闭塞的纹理被忽略,如果屏幕空间环境闭塞启用;

◆ 亮灯的弥漫物质的颜色;

◆ 亮灯的镜面材料的颜色。

解码缓冲器

所有的缓冲器应该都使用相同的深度,不幸的是似乎这些缓冲器远远不能满足暴雪的需要,这些缓冲器以24字节每像素推动输出带宽,这样使得整个带宽明显不足,因此在安置光源的时候必须牺牲一些。

为了向MRTs提供每像素值以保证用于各种的效果,因而以下必不可少:

◆ 深度值为照明、雾卷、动态环境闭塞和智能景深,预测,边缘检测和厚度测量;

◆平均值为动态环境闭塞;

◆ 弥漫性及镜面照明。

延迟渲染

在Starcraft II中延迟渲染只适用与当前的渲染,包括灯光的点和散射出去的面都要再渲染,但是由于游戏中会出现很多的照明设备,如果都使用这样的方法渲染的话一定会造成画面过于缓慢,因此延迟缓冲器的出现也解决了这一难题。在延迟渲染和着色方程式的帮助下计算机能很快的绘制出不同形式或者更为复杂的光源,这样也为其他的计算提供了一个后处理的过程。

像素坐标重建

受益于早期的样板,暴雪在设计新的形状和色彩的时候轻松了不少,而且同时还释放了CPU。

相机原理我们都知道了,就通过这样的模式使得暴雪在视觉上更了解该如何设计。

屏幕空间环境光遮蔽

屏幕空间环境光遮蔽(Space Ambient Occlusion,简称SSAO)。如果对这个名词感到陌生,那提及到让大家记忆犹深的《Crysis》逼真的光照效果时,一切就很简单了,这就是SSAO技术的独到之处。

暴雪在这使用这方案的时候考虑到了整个空间的效果和质感,也许从某写方面上来看,没这个必要,但是基于暴雪的理念,一点点瑕疵都是不被允许的。

在任何可见的点和表面在屏幕上,采取多个样本(8至32),这些样本,表现了在三维空间中从目前的点计算,到预计回屏幕空间所需的时间和深度。

现在的目的是检查是否深入采样点,如果接近这个更远的采样点本身能获取信息的话就这么做下去,这是一个函数问题,因此需要复杂的计算。

不过在对地图的计算时不会采用这样的方法,这仅仅是为了形成一个空间的效果而已。模糊效果

前面的一切都是为了更加细致的描绘出所有的场景,但是,有时候游戏还是需要一些模糊的图形图像,如果一直使用SSAO技术的话,必然导致不真实。

对于SSAO来说,虽然是一种优势,但是高智能的判断在这时也显得尤为重要,何时需要高精度的细致图像,何时需要动态模糊效果,无论是着色还是渲染都需要大量的资源的计算才能显现这些复杂的效果。

自我闭塞

这也是一个相当复杂的效果,就像一个围绕着一个半球体产生偏移向量,这一点上在屏幕上(这意味着需要使用大量的延迟缓冲器),由一个矩阵转化每个偏移向量和正常向量来抵销矢量。

边缘处理

偏移向量在空间中并不像在屏幕空间中一样,由于镜头的不断移动使得SSAO不断变化,这样就需要在移动的过程中对镜头的边缘进行处理,以保证完美的视觉效果,但是纹处理包装上并不是一件简单的事。SSAO的表现

SSAO提供的效果是让人相当满意的,视觉图像质量的处理近乎完美,但是成本过高,而且大量使用还是会造成系统性能瓶颈,这样得不偿失,因此合理的使用这个技术也是讨论的问题之一。

SSAO和整体光线效果

从图中很明显的发现了SSAO的精妙之处,如此逼真的效果让人赞叹不已,其实更多的还是其后面的技术支撑。

我们可以把一切制约因素一起使用以下过程表示:

◆为每个像素在源的形象和存储执行一个全屏幕通过计算混乱循环结果,在Alpha通道的每边缩减一个CoC图像缓冲区的四分之一大小;

◆产生中等模糊图像通过应用的RGB高斯模糊与每个样本对源图像加权CoC;

◆产生的最大模糊图像只有缩小的RGB的图像缓冲区源图像的四分之一,每一个CoC和大型模糊缓冲器可以同时使用不同的通道;

◆最高模糊图像与RGB样本加权由缩减CoC执行,Alpha通道中载有CoC,也有模糊,但其样本不加权本身;

◆缩小和模糊一张深度地图成为一个缩减深度图像,重用深入SSAO缩减(SSAO不模糊深度);

◆然后开始最后的景深着色,有一定的形象来源,中等和大型模糊、模糊CoC的形象,非模糊深入地图和缩减深入形象的渲染。

景深渲染包括:

◇计算小模糊价值,直接使用小样本着色四近邻像素;

◇计算CoC的像素(缩减CoC将不匹配);

◇样本非模糊,使用模糊的深入比较——计算机CoC,如果是模糊的深入,比非模糊的深入更远,否则使用CoC价值样本,模糊CoC的形象;

◇计算贡献,从每一个可能的模糊图象,计算小模糊的颜色,中型和大型的图像模糊的基础上,CoC的因素;

◇小型,中型和大型模糊;

◇输出Alpha包括的源(无模糊)形象。处理透明物体渲染

透明度是一个值得深入研究的问题,当涉及到开发时暴雪的董事会认为延迟渲染技术不支持透明度的话就应该在其他地方加上这个功能,而事实证明这是一个正确的选择。

作为是典型的就是延迟绘制技术,透明度的问题还设计到树荫等一系列问题,因此必须选择一些有代表性的物体来标记之后再做探讨。光线的问题在透明度的谈论中再一次被提及,因为这是个相辅相成的东西,因此暴雪在制作这一切的时候都努力的寻找解决方案。

半透明阴影(Translucent Shadows)

这种技术能令烟雾、爆炸也能投射出阴影效果。

早期在建模的时候影子系统都是成功地利用屏幕空间信息解决跟踪问题,否则将会困难很多,但这次暴雪将显示如何延长阴影地图的每像素信息与一些额外的信息通道,可以用来容易的充实阴影,地图上实现半透明的阴影支持。

阴影地图算法是延长与第二地图的阴影信息形成半透明的阴影,大部分地图的影子仍然会包含不透明信息的阴影,此外还需要做到在颜色的缓冲区发现颜色半透明的阴影。不过,这一切都需要硬件的支持,如果硬件不支持将会有一个空的颜色,因此在考虑到深景等特效的时候暴雪依然在处理阴影效果。

首先是清理,以白色调和,然后填补渲染透明物体的阴影,就这样形成一个透明的阴影色彩缓冲区,再加上测试,处理这些透明光过滤器,最后形成需要的效果。

光过滤处理器

总结:

从上面简短的一份官方技术文档(因为AMD只放出这一部分),我们已经可以了解到暴雪在SC2这个游戏上所付出的努力和贡献了,其效果之华丽恐怕也是惊人的。作为暴雪十多年磨一剑的大作,《星际争霸II》可是包含了现在最尖端的技术和效果,无论是暴雪的质量还是技术相信都是世界顶级的水平,这样的游戏公司确实在为自己的的作品留芳百世而努力!不过,至于还要等多久,至今仍是一个谜。

第五篇:更高更快更强 游戏引擎发展漫谈

更高更快更强 游戏引擎发展漫谈

[1.导读]

游戏引擎(Game Engine)是什么?大多数人给出的解释都是基于engine的英文翻译,将游戏引擎等同于汽车中的引擎(发动机),再好一些的解释成动力,这些解释都对,但是动力只说并不全面,不能完整反映出游戏引擎在游戏中的作用与地位。

布加迪威龙之所以强大就是源自其W16发动机

先举一个简单例子,在某游戏中的一个场景中,玩家控制的角色躲藏在屋子里,敌人正在屋子外面搜索玩家。突然,玩家控制的是一个穿迷彩服的士兵,突然碰倒了桌子上的一个杯子,杯子坠地发出破碎声,敌人在听到屋子里的声音之后聚集到玩家所在位置,玩家开枪射击敌人,子弹引爆了周围的易燃物,产生爆炸效果。在这个简单而常见的过程中,游戏引擎便在后台起着作用,控制着游戏中的一举一动。

一些游戏中常见的场景都是引擎在后台起着作用

把这个过程用专业们的语言分解一下就会变成这样:首先出场的是可以行动的士兵,也就是人物模型。模型由引擎中的动画系统赋予运动能力,游戏中角色能做出什么动作便取决于动画系统有多强大。人物的真实程度则取决于3D模型渲染引擎的能力,这也是游戏引擎最重要的功能之一,游戏的画质高低便由它来决定。之后,士兵碰倒了杯子,这个过程涉及到引擎的碰撞检测,它可以决定不同的物体在接触的时候会产生什么样的结果,有的游戏能穿墙有的则不能便是不同的碰撞检测控制的。例子中设定的是把杯子碰倒了,杯子发出了破碎声。在发生某种动作的同时发出相应的声音则属于引擎中的音效处理了。杯子破碎的声音吸引了敌人的注意,这是引擎中的AI智能运算在起作用,最后双方交火引发爆炸,爆炸产生的烟雾、爆炸物飞散则是引擎中的物理效果在起作用了。

可以说,游戏引擎虽然有着“动力(Engine)”之名,但是其实际上却是行“大脑(brain)”之实,指挥控制着游戏中各种资源。游戏引擎的准确定义也是如此,“用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。”通常来讲,游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。([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中,角色与游戏中的物品的互动性进一步增强,楼梯、楼梯上的花朵以及路桥已经可升可降。游戏中的光照效果也不再单一,不同的单位也有了不同的亮度,此外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 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引擎恐怕又是高端显卡的坟墓了。

[10.另一巨头的崛起―虚幻竞技场引擎Unreal]

如果要找一个能跟Id公司的Quake/DOOM游戏引擎相比肩的对手的话,那么EPIC公司的Unreal引擎无疑是最合适的。而且相比只负责3D图像处理的Quake/DOOM引擎来讲,Unreal涵盖的方面更多,涉及物理特性、动画演示、音频效果和碰撞检测等游戏的所有组件,也就是说Unreal引擎的集成度更高,通用性更强。

注:Quake/DOOM后来也一样涉及到了物理碰撞、音频处理等内容,游戏引擎的发展即是向全能向发展。

1998年5月22日,大约在《Quake II》发布后半年左右,由Epic Games开发GT Interactive发行了《Unreal 》问世,游戏中除了精致的建筑物外,还拥有许多游戏特效,比如荡漾的水波,美丽的天空,逼真的火焰、烟雾和力场,单纯从画面效果来看,《虚幻》是当之无愧的佼佼者。

最早的《虚幻》画面

虽然在彩色光照效果上被Quake II引擎抢了先,但是Unreal引擎依然拥有自己的独门秘籍。Unreal引擎在彩色光照和纹理过滤上的软件渲染性能已经接近硬件级的加速,而且Unreal引擎还支持当时CPU刚刚集成的SIMD(单指令多数据)指令,比如AMD新增的3DNOW!,Intel的MMX和SSE指令集,这让它的性能进一步增强。

Unreal问世的时候,大行其道的图形接口还是3Dfx的Glide,性能最强的显卡也是3Dfx的Voodoo 5,微软的DX规范占据主流之后,Unreal引擎又很快支持DX,而对OpenGL规范虽然也有支持,但是一直不太顺,性能也不够好,所以Unreal引擎慢慢就变成了专司DX规范了。

得益于画面精美和DX规范的通用性,Unreal很快就得到了18款游戏的支持,包括《Unreal》、《Unreal Tournament》、《哈利波特》、《Rune》、《Deus Ex》等都用Unreal引擎实现了不同的游戏效果。而且,由于Unreal引擎的通用性,除了游戏,它还广泛使用在3D建模、建筑设计、动作捕捉、电影特效等等领域。

《Deus Dex》就使用了虚幻1引擎

[11.再接再厉―Unreal2引擎]

Unreal引擎一炮打响,EPIC又再接再厉推出了Unreal2引擎。相比第一代Unreal引擎,Unreal2的全部代码几乎重写,并集成了最新的编辑器。随着游戏开发的需要,游戏引擎的内涵也在不断扩大,Unreal2引擎拥有了更多的功能。

《Unreal 2》虚幻2的画面 当时物理加速技术已然成形,Unreal2引擎便集成了Karma 物理加速技术开发包,引擎中的物理效果得以增强,并且开始支持XBOX、PS2等主机平台。Unreal2引擎期间有过一次小幅升级,被称为UE2.5,渲染性能有了一定提高。

这张Unreal 2的看起来更漂亮一些

有了第一代引擎的铺垫,采用Unreal2及其升级型引擎的游戏数量也大幅提高,其中的知名游戏包括《汤姆•克兰西之细胞分裂2:明日潘多拉》、《部落:复仇者》、《越战英豪》、《天堂2》、《杀手13》、《彩虹六号:雅典娜之剑》、《荒野大镖客》、《虚幻竞技场2003》、《手足兄弟连》等等。

《天堂2》的画质在当时的网游中可以说是傲视群雄

[12.功成名就―Unreal3引擎]

到了DX9时代,EPIC公司的Unreal2引擎便跟不上时代了,急需一款性能更强大、灵活性更高的新时代引擎,这便是EPIC当前的主力干将―Unreal3引擎。融合了众多新技术、新特性的Unreal3也是当前使用最广泛的引擎之一,在主机、单机、网游全面开花。

虚幻竞技场3惊艳亮相

Unreal3支持64位HDRR高精度动态渲染、多种类光照和高级动态阴影特效,可以在低多边形数量(通常在5000-15000多边形)的模型实现通常数百万个多边形模型才有的高渲染精度,这样就可以用最低的计算资源做到极高画质。Unreal3引擎还提供了强大的编辑工具,让开发人员随意调用游戏对象,真正做到所见即所得。

虚幻3引擎中支持PhysX物理特效的场景

Unreal3引擎之中还集成了许多现成的游戏技术,包括PhysX物理引擎、SpeedTree植被引擎、EAX5.0音效引擎、AI引擎等,其中的PhysX物理加速技术是NVIDIA公司力推的,在PhysX游戏中会拥有更好的效果。

优秀的画质表现、适中的显卡要求、强大的自定义工具和一站式配套开发使得Unreal具备了各个平台各种游戏的适应性,所以自问世以来,已经有越来越多的游戏采用Unreal3引擎,势头直追当前的Quake/DOOM引擎。

虚幻3引擎打造的《战争机器》不论游戏还是画面都堪称大作

在采用Unreal3引擎的游戏中,《生化危机》、《Alpha Protocol》、《战争机器》、《荣誉勋章:空降神兵》、《枪神》、《质量效应》、《镜之边缘》都是知名大作,尤其是《战争机器》一度创下PC游戏的画质神话。

[13.《F.E.A.R》的核心―LithTech引擎]

整个90年代,游戏引擎的光芒似乎成了Id和EPIC的专利,其余的公司都被这两大巨头所掩盖了,其实当时仍然有不少引擎精品,Monolith公司的LithTech引擎便是一例。

《Shogo》升刚使用的便是LithTech最早的引擎

1998年,Monolith推出了新款游戏《Shogo:Mobile Armor Division》,这是一款结合了日本卡通的FPS游戏,使用的引擎便是LithTech。这款引擎耗费了Monolith公司五年的时间,花费超过700万美元,如此高的代价也迫使公司改名为LithTech,业务范围也转向LithTech引擎授权以图收回高昂的开发成本。

采用LithTech第一代引擎制作的游戏包括《血兆2》和《清醒》(Sanity)等。2000年LithTech公司推出了引擎的2.0版本和2.5版本,加入了骨骼动画和高级地形系统,LithTech 3.0则衍生出了“木星”(Jupiter)、“鹰爪”(Talon)、“深蓝”(Cobalt)和“探索”(Discovery)四大系统,其中“鹰爪”被用于开发《异形大战掠夺者2》(Alien Vs.Predator 2),“木星”将用于《无人永生2》的开发,“深蓝”用于开发PS2版《无人永生》。

《F.E.A.R》中借助LithTech引擎实现了多种游戏效果

应用LithTech引擎最出色的当属05年推出的《F.E.A.R》,改良的LithTech引擎为这款游戏带来了细致的纵深场景刻画,全屏抗锯齿、实时光影效果都表现完美,而在今年上半年推出的《F.E.A.R2:起源计划》 中,LithTech引擎又加入了HDR渲染、动态模糊、后期处理、屏幕空间环境光遮蔽(SSAO)等最新画质效果,也增强了物理和人工智能,还完善了对双核心处理器的支持。

当然,LithTech引擎也非完美,虽然引擎本身继承了Havok物理加速,但是游戏中的物理效果一般,表现比较生硬,不过瑕不掩瑜,LithTech引擎性能已经好强大,LithTech公司的服务也非常详尽,购买者可免费升级,而且授权费用仅有25万美元(现在的价格未知),很适合中小型游戏开发公司。

[14.Source引擎一战成名]

Valve公司的《Half Life》使用的是Quake/Quake II引擎,当他们开发续作《Half Life2》之时,Quake引擎已经略显老态,于是他们决定自己开发游戏引擎,这也成就了另一款知名的引擎―Source引擎。

《Half Life2》系列使用的都是Source引擎

与Unreal引擎一样,Source也不是一款简单的3D引擎,它同样包括了3D图像渲染、材质系统、AI人工智能计算、Havok物理引擎、游戏界面、游戏声效等各个组件,而且创造性地使用了模块化理念,结合Vavlve公司的Stream平台,游戏引擎的修改和升级都非常简单,这也使得Source引擎可以长盛不衰,至今依是主流引擎之一。

Valve自家的游戏大都使用的是Source引擎

Source引擎最让人惊叹的特效当属丰富的人物表情。人的面部有42块肌肉,可以做出许多不同种类的表情,喜怒哀乐愁不一而足,要想在游戏中实现拟人化的表情绝非易事。为此,Valve专门开发了一套面部肌肉模拟系统,这套系统中包含了一系列预先设定的表情脚本,能控制角色面肌肉群产生相应的面部动画,并进行相加/混合/插值运算以创建现实生活中所见的自然真实的角色表情。

同时,为了与表情配合,Valve公司还创建了一套基于文本文件的半自动声音识别系统(VRS)。Source引擎制作的游戏可以利用VRS系统在角色说话时调用事先设计好的单词口形,再配合表情系统实现精确的发音口形。

Source引擎的面部表情非常传神

Source引擎全面应用于Valve自家的游戏领域,《Half life2》三部曲,《CS:Source》、,还有现在的《Left 4 Dead》系列。自家领地之外也是遍地开花,《胜利之日:起源》、《吸血鬼》、《军团要塞2》、《SiN Episodes》等多款游戏都授权使用了Source引擎。

[15.CryENGINE引擎惊艳亮相]

在DOOM3和半条命2的同时代,育碧公司利用德国一家公司利开发的CryENGINE引擎做出了另一款画面堪称鬼神级的游戏―《FarCry》(孤岛惊魂),游戏一推出,就赢得了大片赞叹之声。

《孤岛惊魂》的画质达到了当时的巅峰

CryENGINE引擎的开发者是德国的CryTek,当时名不见经传,在游戏引擎开发上属于新生代,但是第一次出手就表现不凡。CryENGINE引擎使用了“PolyBump”特效,利用很少的多边形做出了大量多边形才能实现的游戏效果,游戏中的动态光影效果也非常出色。

CryENGINE引擎打造的画面即使现在看起来也很高

CryENGINE引擎还HDR高动态压缩、3Dc等技术,后期还通过patch补丁升级了SM3.0支持,画面又有所增强。

《孤岛惊魂》作为CryTek公司初出茅庐之作,展示技术实力的目的是达到了,但是引擎授权方面并不算成功,除了《FarCry》在主机平台的几款游戏之外,仅有NC Soft购买了授权用在自家的网游上,这款网游也正是现在火爆的《永恒之塔》(AION)。

《永恒之塔》的高画质便得益于CryENGINE引擎的超强表现

虽然第一代引擎出师不利,但是CryTek的CryENGINE2引擎在DX10时代缔造了另一个画质新高,那就是著名的显卡危机―《Crysis》(孤岛危机)。[16.DX10时代最强画质代表―CryENGINE2引擎]

06年底,随着Vista的发布,游戏进入了DX10时代,NVIDIA和AMD也都先后发布了各自的DX10显卡,新一代引擎大战也正式开始。这期间,CryTek没有抢到首发DX10游戏引擎,但CryENGINE引擎的《Crysis》夺得了最强DX10画质大旗,并保持至今。

DX10画质最强音―CryENGINE2引擎

CryENGINE2在一代基础上大幅强化,全面支持DX9中的SM2.0/3.0和DX10中的SM4.0,引擎完整涵盖了游戏开发中的3D图像、游戏音效、AI人工智能、物理效果、脚本系统、动画系统、编辑器等,可为游戏开发者提供强大的可视化开发环境,此外CryENGINE2还支持64位系统,多核心多线程处理。

MOD爱好者制作的Crysis高清MOD包

MOD爱好者制作的Crysis高清MOD包

有关《Crysis》的具体画质有多强,网上有很多相关资料,而《Crysis》的要求有多高,我们的评测栏目页有很多,迄今为止的单卡还没有能在高分辨率下的Very High级别流畅运行。也正是由于CryENGINE2引擎非常强的画质和可定制性,CryENGINE引擎现在也成了MOD玩家DIY的最佳工具。我们网站也报道过了许多高清MOD作品(连接在此:

一、二),其中的一些画面几乎可以达到以假乱真的地步。

CryENGINE2引擎相比前代的境遇要好多了,除了CryTek自家的《Crysis》、《Crysis:Warhead》使用之外,卡通风格的《布鲁克林商人》、《Forged by Chaos》(混沌试炼)、《Blue Mars》(蓝色火星)、韩国网游《The Day》等多款游戏都获得了CryENGINE2引擎授权。

成也萧何败也萧何,CryENGINE2引擎的高画质高要求使得主机平台承受不起,以致于下一代CryENGINE3引擎不得不降低要求以适应主机平台(当然,CryTek公司是不会承认这一点的,他们只是在优化而已),还好CryTek保证PC平台的画质会再创新高,至于CryENGINE3引擎的到底能否再次让我们经历一次显卡危机,也许要等到2010年或2011年游戏上市正式才能揭晓了。

CryENGINE 3引擎或许会再一次上演显卡危机

[17.其他优秀引擎简介]

上面着重介绍的都是最为知名的几款游戏引擎,尤以Id、EPIC、Valve、CryTek这几家的Id Tech、Unreal、Source、CryENGINE为主。当然,在这几家巨头之外,不少游戏公司推出的引擎虽不一定能四处开花,但是在各自的领域也是十分的精彩。

另一款强调痛快杀戮的《Serious sam》(《英雄萨姆》)所采用的Serious引擎非常值得一提。《英雄萨姆》游戏拥有极大的地图视野,即是你面对蜂拥而至的千军万马也丝毫没有迟滞感,这与其他游戏在大场景处理中表现不足形成强烈的反差。Serious引擎随着《英雄萨姆》系列游戏也在不断演进,最近的Serious Engine3支持多核心HDR渲染,支持全面的像素光照效果和阴影技术(包括阴影缓冲),同时带有多线程设计的物理引擎,可以在多核心系统上提供更好性能,并且提供真实的互动效果,宣称整体效果可与虚幻3相媲美。

Serious Engine3引擎效果一览

《Max Payne》(《马克思佩恩》)的MAX-FX引擎来头更大,之所以这么说,是因为早期的3Dmark测试软件所用的引擎就是Max-FX,直到3Dmark03中才由Futuremark自己开发测试内核t替代了MAX-FX引擎。MAX-FX是第一款支持辐射光渲染(Radiosity Lighting)技术的游戏引擎,可以根据物体的属性准确计算出每个点的折射和反射率,光线传播更符合真实情况,所营造的游戏效果也更自然。引擎的另一个特色则是子弹时间(Bulet Time),玩家可以在游戏中再现黑客帝国中躲避子弹的场景了。

《马克思佩恩》系列的MAX-FX引擎

《超级房车赛:GRID》在去年大出风头,影响甚至超过了《极品飞车12》,它所使用的正是EGO引擎。这款引擎是由CODEMASTERS和SCE使用SONY的PHYREENGINE跨平台图像引擎共同开发的,最早出现于于《科林迈克拉林:DIRT》中,现在使用的EGO是改良过的。EGO引擎主要使用在赛车类游戏中,除了《GRID》之外,《F1 2009》《科林迈克拉林:DIRT2》都使用EGO引擎,《闪电行动2》的加入则说明这款引擎在其他领域开疆辟土。

去年火热的赛车游戏《GRID》使用的就是EGO引擎

《S.T.A.L.K.E.R:切尔诺贝利的阴影》使用的是X-Ray引擎。这款一再跳票的游戏开发了六年,而引擎开发周期更是长达八年,期间X-Ray的技术从先进到落后再到领先,最新版的X-ray引擎终于实现了DX10/SM4的shader渲染,最终的画面效果也达到了一流水准。

潜行者的游戏画面

[18.一心一意的专业引擎]

前文对引擎的分类中已经提到,游戏引擎的概念很广,简单来分也有通用的和专一性的,前面介绍的这些游戏引擎几乎都是通用性,涵盖了游戏设计中的3D图像、音效处理、AI运算、碰撞检测等等,而此处要说的则是一些功能单一但是专业高效的引擎,比如物理引擎、声效引擎、植被引擎等。

物理引擎中首推Havok,其次则是NVIDIA力推的PhysX,前者是基于CPU运算的(现在也开始支持GPU运算),后者是基于GPU运算的,Havok资历老、支持者众,在PC、XBOX360、PS2/3等多平台有着广泛的应用,使用Havok物理引擎的游戏已有100多款。除了游戏领域外,Havok引擎还广泛使用在电影特效中,《黑客帝国》、《哈利波特》、《特洛伊木马》等多部电影中都使用了Havok引擎以营造真实的物理运动效果。

万众瞩目的大菠萝3就会支持Havok物理效果

PhysX物理加速最早由Ageia公司研发,并以物理加速卡的方式加以推广。后来Ageia公司被NVIDIA公司收购,PhysX技术被NVIDIA应用在自家的显卡之上。凭借着GeForce显卡的销量和NVIDIA的影响力,PhysX也逐渐得到了各大游戏公司的支持,越来越多的游戏也开始支持PhysX物理加速引擎。

NVIDIA的PhysX物理加速技术也开始发力

SpeedTree作为一种单一的游戏引擎并不为人所熟知,但是正是这种专一性让它在适宜的场合能够做到全功能引擎做不到的事情。

SpeedTree是业内最专门的植物渲染引擎,可以实现树木、植被的建模、动态刮风、平滑细部和多样灯光效果,可为游带来逼真的树木、草地等效果。

《虚幻3》中的SpeedTree引擎营造的参天大树

《上古卷轴4》中的SpeedTree渲染出的草地效果 当然,SpeedTree也不只是应用在游戏领域,SpeedTree也是商业上常用的建模工具,更有美国国防部利用SpeedTree进行真实战争场景模拟来进行军事训练。

[19.总结及其他]

除了最初的图形渲染功能之外,现在的游戏引擎已经是一个包含3D建模、动画设计、光影特效、AI运算、碰撞检测、声效处理等等多个子系统在内的全功能引擎,全功能、模块化、按需订购的设计使得这类游戏引擎成为市场上的主流,更能满足游戏厂商的需求,而一些特殊而专业的引擎如物理引擎、植被引擎都集成在通用型游戏引擎里,如虚幻3引擎集成的PhysX和SpeedTree引擎,Source引擎集成的Havok物理引擎等。

游戏引擎已经脱离了游戏开发副产物的角色走上前台,随着游戏技术的提高,游戏引擎的研发时间和成本也在直线上升,像90年代Id公司那样一样更新一代游戏引擎已经不可能,如今一款开发一款优秀的游戏引擎没有三五年的功夫是下不来的,而且还要冒资金和技术上的风险,既要资金不断流也要技术不落后,没有一定的技术实力还真不敢揽这瓷器活。

几年前的LithTech引擎就耗费了开发公司五年时间和700万美元

不过,一旦开发成功,收益也是非常大的,就如虚幻引擎的开发商EPIC那样,只靠虚幻3引擎的授权,这家公司就可以活得很滋润,这样的先例也鼓舞着越来越多的公司仿效Id、EPIC瞄准引擎授权市场,这个领域中的竞争也日趋激烈,这在一定程度上可以促进引擎技术的发展,但是也希望游戏开发商不要忘记一点:一款游戏成功的关键不在于引擎的好坏,画质的高低,游戏本身好玩与否才是决定性的。马里奥、俄罗斯方块历经二十多年而不衰,有些高画质游戏可能两三年就无人问津,也许这个比较并不恰当,但是其中的含义还是很明了,决定游戏生死的永远是游戏本身是否好玩,这是最简单的道理,恐怕也是最难把握的道理。

引擎不是决定游戏好坏的唯一

LUNA_游戏引擎介绍
TOP