目前游戏行业内部主要几款游戏引擎的技术对比

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目前游戏行业内部主要几款游戏引擎的技术对比相关的知识,希望对你有一定的参考价值。

如果只有客户端的话,可以考虑用gamebryo,技术好一点,用ogre也可以,如果规模不大,用unity3d,如果很有钱,要效果很好的,用unreal3,bigworld是带服务器的,如果能力不够,最好不要自己写。

 

如果使用Ogre需要投入较多的人力和物力,因为Ogre是开源的,工具不齐全,使用其他流行的引擎需要购买授权,可以在Ogre的基础上做东西,并且可以宣称是自主研发的,没有人会追究,如果是小型游戏可以采用Unity3D,选择什么引擎具体要考虑项目想怎么做,准备投入多少钱,计划多长时间

Ogre引擎的技术特征分析和横向对比

作者:赵占夕

邮箱:[email protected]

日期2010-12-4

目录

第一部分目前行业内的主流游戏引擎... 1

第二部分每款引擎的市场资料对比... 2

第三部分每款引擎的技术资料对比... 3

3.1 Ogre. 3

3.2 Unreal6

3.3 Unity. 7

3.4 Gamebryo. 8

3.5 Bigworld. 10

3.6引擎综合评测表... 11

第四部分总结... 14

第一部分 目前行业内的主流游戏引擎

免费的

收费的

Ogre

Unreal

Unity

Gamebryo

Bigworld

3D游戏引擎有很多,以上只列出了小部分主流的游戏引擎

参考资料:3D游戏引擎网http://www.gamengines.com/

 

第二部分 每款引擎的市场资料对比

引擎名称

开发成功的游戏

图表显示

Ogre

搜狐畅游:《天龙八部》、《鹿鼎记》;

麒麟网:《成吉思汗》。

目前国内使用Ogre开发的大型3D网游相当的多,Ogre在国外同样很流行。

技术分享图片

Unreal

细胞分裂》、《明日潘多拉、《天堂II》、《杀手13XIII)》、《虚幻竞技场》、《American Army》等游戏都是基于Unreal 引擎进行的开发。

技术分享图片

Unity

《捉迷藏OL》、《蒸汽之城》

技术分享图片

Gamebryo

腾讯:《御龙在天》、《轩辕传奇》、《QQ飞车》;

盛大:《星辰变》;上海烛龙:《古剑奇谭》;久游:《宠物森林》;金酷游戏:《魔界2》;成都梦工厂:《侠义道III》。(还有很多http://baike.baidu.com/view/1355419.htm

技术分享图片

Bigworld

网易:《天下贰 》、《创世西游》;

游趣:《鬼吹灯OL》;

宇峻奥汀:《三国群英传OL2》;

锦游:《侠客列传》。

暴雪: 《魔兽世界》

技术分享图片

 

 

 

技术分享图片

注:市场占有率的统计方法:占有率 = 使用该款引擎已开发成功的游戏数量/已开发成功的游戏数量

       数据来源互联网

第三部分 每款引擎的技术资料对比

3.1 Ogre

 

 技术分享图片

技术特征

1.         *全面并同等的支持OpenGLDirect3D

2.         *全面支持WindowsLinux以及Mac OS X平台

3.         *简单并可扩展的对象框架,能方便的插入到已存在的应用程序框架中

4.         *自动处理渲染状态和空间剪裁

5.         *强大且成熟的材质管理和脚本系统,可以不动一行代码去进行材质维护

6.         *支持所有纹理混合和绑定技术,同时支持对GPU编程技术,支持汇编语言和所有高级语言形式的各种着色语言,其中高级语言包括:CgHLSLGLSL

7.         *支持多种纹理图片格式,包括:PNGTGADDSTIFGIFJPG,同时支持特殊格式的纹理,其中包括:一维纹理(1D),容积纹理(Volumetric textures),体积纹理(Cubemaps)和压缩的纹理格式如:DXTC

8.         *全面支持渲染到纹理(Render-to-Texture)技术和投影纹理(贴花,Projective Texturing-decals)。

9.         *全面支持材质LoD(细节层次,mipmapping)技术

10.     *优化的二进制模型文件格式,同时支持手动和自动LoD生成

11.     *同时拥有多种从商业或者开源3D模型软件导出到Ogre模型格式和动画格式的插件,其中包括官方以及用户提供的版本。

12.     *全面支对顶点和索引缓存(vertex and index buffers)、顶点声明(vertex declarations)以及贴图缓存(buffer mappings

13.     *全面支持骨骼动画和姿态动画(pose动画,顶点动画的一种),每个顶点可以混合任意数目的骨骼权重

14.     *支持软件和硬件加速蒙皮

15.     *支持静态几何体批次(static geometry batching

16.     *支持二次贝塞尔曲面(biquadric Bezier patches

17.     *给出以插件方式链接不同场景结构的接口,允许你使用适合自己应用程序的场景体系( 基本的八叉树“octree”场景管理做为一个例子出现在插件中)

18.     *高级可屏蔽场景查询系统(Advanced maskable scene-querying system

19.     *全面支持多种阴影技术,包括模版阴影(stencil),纹理阴影(texture),叠加阴影(additive),调制阴影(modulative),并且全部支持硬件加速

20.     *高级插件[来源:GameRes.com]方式的粒子系统,可扩展的发射器(emitters),效果器(affectors),渲染器(renderers)(ParticleFX作为插件的例子被包含在工程里面)

21.     *全面支持并且方便使用的天空盒(skyboxes),天空面(skyplanes),以及穹顶(skydomes

22.     *以精灵效果为基础(sprite-based)并得到渲染优化的公告栏(Billboarding)技术

23.     *以单一队列为基础的渲染管理,允许全面操作渲染执行顺序

24.     *自动管理透明对象

25.     *成熟且可扩展的资源管理和载入系统,文件系统支持的文件包括zippk3格式

 

参考资料:《PRO OGRE 3D PROGRAMMING》作者:Gregory   Juker   者:邸锐、李旭东

 

开发者评语

(注:以下内容来自开发者论坛http://bbs.gameres.com/showthread.asp?threadid=72106)

OGRE 鸡肋,用了不爽,不用可惜,唉

——网友:侦察兵

Ogre现在国外很火,虽然Ogre本身不是商业的,但余生出很多商业的项目,比如那个oFusion的套件和Paging Scene Manager场景管理插件,因为Ogre的开放性,所波及的范围也越来越大。当然我不敢说能比什么虚幻3或者Doom3好的引擎好,但考虑一下价格,Ogre性价比应该还不错,毕竟现在特效都是在着色语言那里,基本上虚幻3能有的效果,Ogre也能实现。有时间可以到Ogre官网上看看那些商业项目(有一些非商业项目也做得不错)。

——网友:免费打工仔

1.   要修改和扩展的地方太多(特别渲染部分,几乎不能用)

2.   周边太少

3.   虚幻3或者Doom3 有编辑器

——网友:侦察兵

1.  似乎是否需要扩展视项目而定,我这里比较简单只是拿来用就好了,对渲染部分我个人也没有什么太多的了解。是否几乎不能用我就不清楚了,只是对于我来说还足够用(比我需要的要好)。

   

2.  可能因为语言的关系,其实Ogre周边并不少,在下面我列举一些:
官方工具:
导出工具 Blender,SoftimagelXSI,Discreet 3D Studio Max,MilkShape 3D
命令行工具:OgreXMLConverter,MeshUpgrader,MaterialUpgrader,
开源社区及第三方工具:
导出工具:AliaslWaverfrontMaya(6,6.5,7)oFusion for 3D Studio Max, Google SketchUp,
场景构造以及察看工具:Particle Editor,MeshViewer,ATI RenderMonker Exporter
Ogre
插件:COLLADA,Paging SceneManager
物理库:OgreODE,NxOgre,OgreNewt,
脚本绑定:pyOgre,OgreDotNet
某些使用Ogre的工程:Ogre4J(通过java调用Ogre,Yake(一个真正的游戏引擎,不是图形引擎)

  

3.  另外还有众多Ogre崔生出来的工程,比如OIS为了弥补Ogre输入的先天不足,CEGUIOgre也有良好的互生关系。

另,开源社区的发展日益壮大,有众多公司维护不同的工具以及插件,说实话,我并没有接触过太多商业引擎,但是我还真是希望有一个能和Ogre比较一下周边的多少,我都一直以为开源届的周边比较多。

Ogre也有自己的编辑器,被称为oFusion ,不过作为一个图形引擎来说只是针对场景而言,并不如虚幻一样是游戏编辑器(游戏逻辑)。Q3的管卡编辑器似乎也只针对场景,Doom3没接触过,不敢断言。

从来没有人说Ogre一定能胜过虚幻3或者Doom3,但别忘了也包括价钱。

 

4.我个人认为这个世界上不会只存在一种引擎,而是会有很多不同特性的供使用者选择,Ogre首先廉价,易于扩展。并且不限于3D游戏,对于其他三维仿真同样适用,但是这样是通过付出诸如楼上所提到的一些代价而得到的,没有人说一定要用Ogre不可,但Ogre一定是一个不得不考虑的选择,相对于国内自主开发的诸多引擎而言。

——网友:免费打工仔

我是学经济的,所以对我来说除了收益来说同样计较成本,Ogre总会有其价值,我正在用其做商业项目以及应用,当然是一个很不起眼的小东西,也不知道能不能成功,但对于我们的项目来说Ogre本身0成本, 那带来1元的收益我们就是盈利了。

我记得Unreal 2的买断价是$750000,我没打错!或者$350000(大概)买下开发权"

虚幻3估计授权价格是75万至150万美元左右.一般公司承受不起的.

——网友:免费打工仔

国外用ogre引擎做的游戏多的是  国内也很多
我们公司的项目也在用 没发现什么不可以实现 并在ogre基础上制作了周边工具
我发现ogre相当的完美 效率很好

——网友:免费打工仔

 

3.2 Unreal

 

 技术分享图片

技术特征

 

1.操作系统:只支持Windows XP

2.处理器:奔腾4 3GHz以上或对应的AMD处理器;内存:1GB声卡:兼容DirectX 9.0c显卡:128MB显存,支持DirectX 9.0c,支持SM 3.0育碧特别给出了官方支持的显卡列表,其中包括ATIRadeon X1600/1800/1900系列、NvidiaGeForce 6600GT6800GeForce 7300/7600/7800/7900

3. 完整优秀的编辑工具,包括地形,材质,动画,声音,模型等等。

4. 强大的渲染引擎,采用多线程渲染技术,支持64位的渲染管线。

5. 艺术级的动画系统,使用用户体验到流畅,平滑的动画,骨骼动画支持4个骨节应用于一个顶点。

6. 强大的脚本系统,unrealScript 是一种简单高级的编程语言,通过Unreal kismet为游戏添加新的元素

7. 真实的模拟物理系统,采用nvidiaPhysics

8. 更加真实的光影效果,以及最新的渲染技术,包括光线追踪,体积光,着像素光照等等

9. Unreal提供成熟的工具来编辑超的游戏中的电影效果,

10Unreal具有优秀的地形渲染效果,支持多层材质混合,真实的侵蚀和风化效果,

 

参考资料:

百度百科http://baike.baidu.com/view/4208356.htm

Unreal官方网站http://www.udk.com/features

 

用户评价

 

 

 

3.3 Unity技术分享图片

 

技术特征

开发者: Unity Technologies
支持平台: PC, Mac, iPhone, Wii
浏览器支持: Yes
价格: $199 (Indie), $1499 (Pro), $399+ (iPhone), $15,000 (WiiWare, per title), $30,000 (Wii, per title)

综合编辑

  通过Unity简单的用户界面,你可以完成任何工作。这些为你节省了大量的时间。

图形动力

  UnityDirectXOpenGL拥有高度优化的图形渲染管道。

资源导入

  Unity支持所有主要文件格式,并能和大部分相关应用程序协同工作。

一键部署

  Unity可以让你的作品在多平台呈现。

Wii的发布

Unity让业界最流行的游戏平台软件更容易开发。

iPhone发布

  Unity让革命性的游戏开发降临革命性的设备。

着色器

  Unity的着色器系统整合了易用性、灵活性和高性能。

地形

  低端硬件亦可流畅运行广阔茂盛的植被景观。

联网

  从单人游戏到全实时多人游戏。

物理特效

  Unity内置的NVIDIA®PhysX®物理引擎带给你生活的互动。

音频和视频

  实时三维图形混合音频流、视频流。

脚本 Unity支持3种脚本语言:javascriptC#Boo

Unity资源服务器 Unity资源服务器是一个附加的包括版本控制的产品。

光影 Unity提供了具有柔和阴影与烘焙lightmaps的高度完善的光影渲染系统。

文档

  Unity为你提供逐步的指导、文档和实例方案。

 

参考资料:

百度百科http://baike.baidu.com/view/2299410.htm

3D游戏引擎网http://www.gamengines.com/article-55.html

 

用户评价:

 

 

 

 

3.4 Gamebryo技术分享图片

 

技术特征

1.         Gamebryo是一款便捷且易上手的开放式跨平台游戏开发引擎

2.      Gamebryo为当今主要的DCC工具(MAXMayaXSI),它都提供了游戏所需资源的导出插件。这些导出插件的用户界面简单、方便且易使用。美术人员可轻而易举地设置导出环境。导出游戏所需的数据:
? NIF文件包含与几何模型有关的数据;
? KF
文件包含动画数据;
? KFM
文件包含定义一个角色所需的NIFKF以及动画序列间的默认转换方式

3.      Gamebryo所提供的三个主要工具:
? 资源观察器(AssetViewer
  这个工具可直接从DCC工具中启动。美术人员可以在导出数据前用它对DCC中的导出物件、人物设置、场景效果等进行观察以便在导出前进行修改。当然也可用来对已经导出的NIF进行观察。
? 动画工具(Animation Tool
  此工具可以设置导出的动画序列之间的转换,建立多层动画组合。它所产生KFM文件定义了一个完整的角色。
? 场景编辑器(Scene Designer
  顾名思义此工具是美术和策划用来创建游戏场景的。2.5版增加的地形编辑功能使得场景编辑器更上一层楼。从DCC工具中导出的物件、人物可以通过此编辑器加到场景中。也可方便地设置场景中的灯光、相机等。使用者也可以通过写插件的方式拓展编辑器的功能。场景编辑器产生的GSA文件是XML格式,可被直接加载到游戏中。
  上述三个主要工具的使用在Gamebryo文档中都有详细的描述,参考网站:www.gamebryo101.com可以通过看录像的方式了解如何使用Gamebryo DCC插件以及如何使用Gamebryo所带的三个主要工具。

4.      Gamebryo的主要技术特点

场景图结构(Scene Graph
  Gamebryo的场景图是一张从场景的根节点起单向非循环的层级结构图表。

渲染系统(Frame Rendering

Gamebryo渲染系统的建立与管理更为方便灵活。使用者可以根据渲染的需要来安排Render StepRender ClickRender View的顺序。同时,NiRenderFrameNiRenderStepNiRenderClick都可以靠设置Callback来完成渲染前以及渲染后使用者需要做的事情。

材质系统(Material/Shader/Texture
Gamebryo的材质系统是一种机制。这种机制有效地为基于参与渲染的几何模型状态的着色器(Shader)提供服务。在这样的机制下,美术人员可在DCC工具中轻松地设置材质即可。而Gamebryo的材质系统会产生所需的Shader,并储存在缓冲存储器中。Gamebryo有自己的Shader文件格式(即NSF格式),同时也支持其它格式(如FX)。在Gamebryo中,对于在高端机器上运行的游戏,一般会采用标准材质(Standard Material)。而对低端机器来讲,会用到固定管线(fix-pipeline)。

多线程管理系统(Floodgate
Floodgate系统是一个跨平台的多线程管理系统(也可说是一个数据流处理器管理系统)。在Gamebryo中,几何模型的变形、粒子系统的模拟计算、人物模型的蒙皮计算等都由Floodgate系统来完成。图05显示Floodgate在系统中的工作流程。其中一片云的部分就是Floodgate系统。主线程把任务交给Floodgate系统,它完成之后再返回主线程。

几何模型系统(NiMesh

新的几何系统(NiMesh)是由数据流组成的。上面讲到几何模型的计算是由NiMeshModifier通过Floodgate系统来完成的。图06显示了几何系统与Floodgate系统之间的关系。NiMeshModifier会把任务交给Floodgate系统,并等待它完成任务返回。对这方面的编程方法感兴趣的朋友可以参照Gamebryo所带的例子MeshCreation

动画系统(Animation
? Gamebryo
不仅支持人物模型的细节等级,也支持骨的细节等级。等级之间的切换由游戏系统的逻辑来完成。这部分逻辑是要由游戏开发者自己来写的。
?
支持骨动画、面部动画、层级动画(Layered Animation
?
支持动画序列与动画序列,动画与物理模拟结果的混合。动画序列之间的混和方式可由动画工具(Animation Tool)来设定。
?
支持动画序列之间的同步处理。
?
支持人物根节点的动画累加。
?
具有响应动画驱动事件的功能。

物理系统(Physics
Gamebryo中,物理系统使用的是NVidia公司的PhysX系统。Emergent已经完整地把PhysX系统整合到Gamebryo中了。使用者要做的只是拿到NVidia公司的PhysX SDK及其DCC工具的插件。导出带有物理属性的物体或人物并加载到游戏中。在游戏程序中,首先对物理系统初始,再在更新过程中使Gamebryo系统和物理系统能顺利地交换数据。这个交换过程是这样完成的,首先由Gamebryo系统向物理系统传递数据,物理系统完成模拟计算后再把结果返还给Gamebryo系统。

开发者评语

内容来自一篇论坛文章,以下只摘录开篇部分

http://lenshuang.blogbus.com/logs/53035468.html%09

今日腾讯嘉年华压轴戏,X-GAME-《御龙在天》的发布,日渐让笔者感到Gamebryo引擎正成为国内研发公司开发大型3D游戏的首选。

历数近期Gamebryo的作品,盛大《星辰变》,腾讯《御龙在天》、《轩辕传奇》无不是各大厂商投重金打造的自主研发大作。Gamebryo引擎的优势,其实就一句话总结:灵活性、多平台、画面效果、负载能力。而之前例如NCSONY已获得授权,EA的《战锤OL》,次世代大作《辐射3》、《波斯王子》、《上谷卷轴》等都证明了Gamebryo引擎性价比较高的能力。由于受到国内公司的欢迎,Gamebryo的所有方Emergent近期刚刚在重庆开启了认证培训项目,可谓是风生水起。(国内代理winking估计最近要笑趴了)

 

3.5 Bigworld技术分享图片

 

技术特征

BigWorld为大型多人在线游戏 (MMOG) 开发商提供成熟的中间件平台,这一中间件平台正迅速成为行业标准。

 

BigWorld MMO Technology Suite是一套完整的技术解决方案,这一方案无缝集成了专为快速高效开发MMOG而设计的高性能服务器应用软件、工具集、高级3D客户端和应用编程接口(APIs)。BigWorld MMO Technology Suite使游戏开发项目避免了未知、昂贵和耗时的软件研发风险,从而使授权客户能够专注于游戏制作这一核心事务。

 

通过降低研发风险、研发成本和缩短上市时间,BigWorld为授权客户提供了领先于自行开发商的巨大竞争优势。

 

BW其他网游引擎不同,它不是针对地图为单元,将地图为单元分担到独立进程中去管理的。它是以人群数量去进行划分的,从理论上来说BW是支持无限大的游戏世界,而且它完全的支持无缝,因为它完全没有从物理地图区域进行分割。


    BW
是使用C++开发的,使用的服务器是Linux,只支持RedHat,而且核心代码,即动态均衡负载代码是不提供源码的。


    BW
中大量使用了多重继承,从汇编级去读其代码结构,难度很大。
    BW
Python脚本使用起来非常方便,Server间的跨进程通讯被隐藏的很好,对开发者使用提供了很多的方便,但由于隐藏很多细节,也出现了修改上的难度和局限性。

 

参考资料:

百度百科http://baike.baidu.com/view/2587250.htm

百度hihttp://hi.baidu.com/freedomknightduzhi/blog/item/e1316da90df739f31f17a232.html

 

用户评价

《魔兽世界》的成功让bigworld名声大噪,《魔兽世界》的成功曾让国内游戏开发商对BigWorld(BW)趋之若鹜。

——网友:flask

bigworld 是代码开放的一款引擎也就是说可以不用花太多的授权费用而对引擎进行自己所需求的改动
[::
艾泽拉斯国家地理 BBS.NGACN.CC::]

据了解国内有部分网游用的bigworld另外 来自USUnreal E3 授权1000W刀如果不需要全部的功能可以减少授权费用,售后技术支持另算

 

同时来自德国的孤岛危机的CryTex Sandbox引擎则要便宜很多,这也是很多韩国游戏喜欢使用的引擎,比如AION就是使用的这样一款引擎

所以不要把引擎的好坏来权衡游戏,另外 史可威尔艾尼克斯的新rpg 最后的神迹使用Unreal3,但是不见得把这款引擎吃透了多少

再另外,Unreal3 是目前唯一一款支持带色彩高光贴图的引擎,新版本的 Crytex 引擎还没有研究过,所以不知道是不是也可以支持

 


——网友:黯

 

3.6引擎综合评测表

 

引擎名称

Ogre

Unreal

Unity

Gamebryo

Bigworld

作者

Steve streeting

Epic Games

Unity technology

Emegent game technology

Big World

图形API

OpenGL

DirecX

OpenGL

DirectX

Software

DirectX

OpenGL

DirectX

OpengGL

DirectX

OpenGL

操作系统

Windows

Linux

MacOS

Windows

Linux

MacOS

Xbox

PlayStation

GameCube

Windows

Linux

PlayStation

iPhone

Wii

Windows

MaxOS

Xbox360

PS3

Windows

支持64位操作系统

开发语言

C/C++

C/C++

C/C++

C/C++

C/C++

开源与否

公开

不公开

不公开

不公开

部分源代码开源

文档状况

充份

充份

提供逐步的指导、文档和实例方案

 

充份

充份

特征概貌

面向对象的设计

插件式结构

可存/取系统

面向对象的存取

插件式结构

可存取系统

面向对象设计

面向对象设计

开放式跨平台游戏引擎

插件式结构

可存取系统

面向对象的存取

插件式结构

可存取系统

支持脚本语言

脚本材质语言

允许代码外进行材质属性的设置

支持脚本控制的多遍渲染

 

内嵌的Unreal-Script语言

以及C++支持的所有形象华文本,支持非程序员编译器

 

Unity支持3种脚本语言:JavaScriptC#Boo

 

LUA脚本

Python脚本

 

内嵌编辑器

不支持

UnrealED:基于结构几何表示的实时设计工具,对光源、纹理、和几何体进行所见即所得的操作

脚本配置方式的编辑

完整优秀的编辑工具,包括地形,材质,动画,声音,模型等等

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net











以上是关于目前游戏行业内部主要几款游戏引擎的技术对比的主要内容,如果未能解决你的问题,请参考以下文章

开源游戏引擎哪家强?八款知名引擎资料够你忙

不止想做游戏,老牌引擎 Cocos 带着新的Flag出发了

目前最好的游戏引擎排名 !

5G+云计算打开发展空间,游戏引擎技术破壁工业场景

游戏引擎的问题

为什么3A游戏都用虚幻引擎?它的编程开发绝了!