目前游戏行业内部主要几款游戏引擎的技术对比
如果只有客户端的话,可以考虑用gamebryo,技术好一点,用ogre也可以,如果规模不大,用unity3d,如果很有钱,要效果很好的,用unreal3,bigworld是带服务器的,如果能力不够,最好不要自己写。
如果使用Ogre需要投入较多的人力和物力,因为Ogre是开源的,工具不齐全,使用其他流行的引擎需要购买授权,可以在Ogre的基础上做东西,并且可以宣称是自主研发的,没有人会追究,如果是小型游戏可以采用Unity3D,选择什么引擎具体要考虑项目想怎么做,准备投入多少钱,计划多长时间
Ogre引擎的技术特征分析和横向对比
作者:赵占夕
日期:2010-12-4
目录
第一部分 目前行业内的主流游戏引擎
免费的 |
收费的 |
Ogre |
Unreal Unity Gamebryo Bigworld |
3D游戏引擎有很多,以上只列出了一小部分主流的游戏引擎
参考资料:3D游戏引擎网http://www.gamengines.com/
第二部分 每款引擎的市场资料对比
引擎名称 |
开发成功的游戏 |
图表显示 |
Ogre |
搜狐畅游:《天龙八部》、《鹿鼎记》; 麒麟网:《成吉思汗》。 目前国内使用Ogre开发的大型3D网游相当的多,Ogre在国外同样很流行。 |
|
Unreal |
《细胞分裂》、《明日潘多拉》、《天堂II》、《杀手13(XIII)》、《虚幻竞技场》、《American Army》等游戏都是基于Unreal 引擎进行的开发。 |
|
Unity |
《捉迷藏OL》、《蒸汽之城》 |
|
Gamebryo |
腾讯:《御龙在天》、《轩辕传奇》、《QQ飞车》; 盛大:《星辰变》;上海烛龙:《古剑奇谭》;久游:《宠物森林》;金酷游戏:《魔界2》;成都梦工厂:《侠义道III》。(还有很多http://baike.baidu.com/view/1355419.htm) |
|
Bigworld |
网易:《天下贰 》、《创世西游》; 游趣:《鬼吹灯OL》; 宇峻奥汀:《三国群英传OL2》; 锦游:《侠客列传》。 暴雪: 《魔兽世界》 |
注:市场占有率的统计方法:占有率 = 使用该款引擎已开发成功的游戏数量/已开发成功的游戏数量
数据来源互联网
第三部分 每款引擎的技术资料对比
3.1 Ogre
技术特征 |
1. *全面并同等的支持OpenGL和Direct3D 2. *全面支持Windows,Linux以及Mac OS X平台 3. *简单并可扩展的对象框架,能方便的插入到已存在的应用程序框架中 4. *自动处理渲染状态和空间剪裁 5. *强大且成熟的材质管理和脚本系统,可以不动一行代码去进行材质维护 6. *支持所有纹理混合和绑定技术,同时支持对GPU编程技术,支持汇编语言和所有高级语言形式的各种着色语言,其中高级语言包括:Cg,HLSL和GLSL 7. *支持多种纹理图片格式,包括:PNG,TGA,DDS,TIF,GIF,JPG,同时支持特殊格式的纹理,其中包括:一维纹理(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. *高级插件来源:方式的粒子系统,可扩展的发射器(emitters),效果器(affectors),渲染器(renderers)(ParticleFX作为插件的例子被包含在工程里面) 21. *全面支持并且方便使用的天空盒(skyboxes),天空面(skyplanes),以及穹顶(skydomes) 22. *以精灵效果为基础(sprite-based)并得到渲染优化的公告栏(Billboarding)技术 23. *以单一队列为基础的渲染管理,允许全面操作渲染执行顺序 24. *自动管理透明对象 25. *成熟且可扩展的资源管理和载入系统,文件系统支持的文件包括zip,pk3格式
参考资料:《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周边并不少,在下面我列举一些:
3. 另外还有众多Ogre崔生出来的工程,比如OIS为了弥补Ogre输入的先天不足,CEGUI和Ogre也有良好的互生关系。 另,开源社区的发展日益壮大,有众多公司维护不同的工具以及插件,说实话,我并没有接触过太多商业引擎,但是我还真是希望有一个能和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引擎做的游戏多的是 国内也很多 ——网友:免费打工仔 |
3.2 Unreal
技术特征
|
1.操作系统:只支持Windows XP; 2.处理器:奔腾4 3GHz以上或对应的AMD处理器; 内存:1GB; 声卡:兼容DirectX 9.0c;显卡:128MB显存,支持DirectX 9.0c,支持SM 3.0。 育碧特别给出了官方支持的显卡列表,其中包括ATI的Radeon X1600/1800/1900系列、Nvidia的GeForce 6600GT、6800和GeForce 7300/7600/7800/7900。 3. 完整优秀的编辑工具,包括地形,材质,动画,声音,模型等等。 4. 强大的渲染引擎,采用多线程渲染技术,支持64位的渲染管线。 5. 艺术级的动画系统,使用用户体验到流畅,平滑的动画,骨骼动画支持4个骨节应用于一个顶点。 6. 强大的脚本系统,unrealScript 是一种简单高级的编程语言,通过Unreal kismet为游戏添加新的元素 7. 真实的模拟物理系统,采用nvidia的Physics。 8. 更加真实的光影效果,以及最新的渲染技术,包括光线追踪,体积光,着像素光照等等 9. Unreal提供成熟的工具来编辑超炫的游戏中的电影效果, 10.Unreal具有优秀的地形渲染效果,支持多层材质混合,真实的侵蚀和风化效果,
参考资料: 百度百科http://baike.baidu.com/view/4208356.htm Unreal官方网站http://www.udk.com/features
|
用户评价 |
|
|
3.3 Unity
技术特征 |
开发者: Unity Technologies 综合编辑 通过Unity简单的用户界面,你可以完成任何工作。这些为你节省了大量的时间。 图形动力 Unity对DirectX和OpenGL拥有高度优化的图形渲染管道。 资源导入 Unity支持所有主要文件格式,并能和大部分相关应用程序协同工作。 一键部署 Unity可以让你的作品在多平台呈现。 Wii的发布 Unity让业界最流行的游戏平台软件更容易开发。 iPhone发布 Unity让革命性的游戏开发降临革命性的设备。 着色器 Unity的着色器系统整合了易用性、灵活性和高性能。 地形 低端硬件亦可流畅运行广阔茂盛的植被景观。 联网 从单人游戏到全实时多人游戏。 物理特效 Unity内置的NVIDIA®PhysX®物理引擎带给你生活的互动。 音频和视频 实时三维图形混合音频流、视频流。 脚本 Unity支持3种脚本语言:JavaScript,C#,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工具(MAX、Maya、XSI),它都提供了游戏所需资源的导出插件。这些导出插件的用户界面简单、方便且易使用。美术人员可轻而易举地设置导出环境。导出游戏所需的数据: 3. Gamebryo所提供的三个主要工具: 4. Gamebryo的主要技术特点 场景图结构(Scene Graph) 渲染系统(Frame Rendering) Gamebryo渲染系统的建立与管理更为方便灵活。使用者可以根据渲染的需要来安排Render Step、Render Click和Render View的顺序。同时,NiRenderFrame、NiRenderStep、NiRenderClick都可以靠设置Callback来完成渲染前以及渲染后使用者需要做的事情。 材质系统(Material/Shader/Texture) 多线程管理系统(Floodgate) 几何模型系统(NiMesh) 新的几何系统(NiMesh)是由数据流组成的。上面讲到几何模型的计算是由NiMeshModifier通过Floodgate系统来完成的。图06显示了几何系统与Floodgate系统之间的关系。NiMeshModifier会把任务交给Floodgate系统,并等待它完成任务返回。对这方面的编程方法感兴趣的朋友可以参照Gamebryo所带的例子MeshCreation。 动画系统(Animation) 物理系统(Physics) |
开发者评语 |
内容来自一篇论坛文章,以下只摘录开篇部分 http://lenshuang.blogbus.com/logs/53035468.html%09 今日腾讯嘉年华压轴戏,X-GAME-《御龙在天》的发布,日渐让笔者感到Gamebryo引擎正成为国内研发公司开发大型3D游戏的首选。 历数近期的Gamebryo的作品,盛大《星辰变》,腾讯《御龙在天》、《轩辕传奇》无不是各大厂商投重金打造的自主研发大作。Gamebryo引擎的优势,其实就一句话总结:灵活性、多平台、画面效果、负载能力。而之前例如NC、SONY已获得授权,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是支持无限大的游戏世界,而且它完全的支持无缝,因为它完全没有从物理地图区域进行分割。
参考资料: 百度百科http://baike.baidu.com/view/2587250.htm 百度hi吧http://hi.baidu.com/freedomknightduzhi/blog/item/e1316da90df739f31f17a232.html
|
用户评价 |
《魔兽世界》的成功让bigworld名声大噪,《魔兽世界》的成功曾让国内游戏开发商对BigWorld(BW)趋之若鹜。 ——网友:flask |
bigworld 是代码开放的一款引擎也就是说可以不用花太多的授权费用而对引擎进行自己所需求的改动艾泽拉斯国家地理
同时来自德国的孤岛危机的CryTex Sandbox引擎则要便宜很多,这也是很多韩国游戏喜欢使用的引擎,比如AION就是使用的这样一款引擎
|
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种脚本语言:JavaScript,C#,Boo
|
LUA脚本 |
Python脚本
|
内嵌编辑器 |
不支持 |
UnrealED:基于结构几何表示的实时设计工具,对光源、纹理、和几何体进行所见即所得的操作 脚本配置方式的编辑 |
完整优秀的编辑工具,包括地形,材质,动画,声音,模型等等 |
为当今主要的DCC工具(MAX、Maya、XSI),它都提供了游戏所需资源的导出插件 提供的三个主要工具: 场景编辑器 |
附带有强大易用的内置编辑器 |
物理系统 |
支持基本物理系统 碰撞检测和刚体 |
支持基本物理学 碰撞检测 刚体 车辆物理学 |
内置的PhysX物理引擎 |
完整地把PhysX系统整合到Gamebryo中
|
简单的物理系统 |
光源系统 |
着顶点per-vertex 着像素per-pixel 光照映射
|
着顶点 着像素 光照映射 |
提供了具有柔和阴影与烘焙lightmaps的高度完善的光影渲染系统 |
着顶点 着像素 |
着顶点 着像素 |
阴影系统 |
支持阴影映射和投影体 |
支持阴影映射 |
支持阴影映射 |
支持阴影映射 |
支持动态软阴影 |
纹理系统 |
基本纹理 多重纹理 凹凸映射 投影纹理 体纹理 |
基本纹理 多重纹理 投影纹理 |
基本纹理 多重纹理
|
基本纹理 动态纹理 |
基本纹理 多重纹理 |
着色器 |
顶点像素着色和高级着色 |
不支持 |
支持像素着色和高级着色 |
支持像素着色和高级着色 |
支持像素着色和高级着色 |
场景管理 |
普通方式 BSP 遮挡剔除 LOD Octree |
普通方式 BSP 基于入口的可见性判别 遮挡剔除物 PVS LOD技术 |
普通方式 BSP LOD 遮挡剔除 PVS |
多线程管理系统(Floodgate) PVS |
四叉树 支持室内室外环境的无缝链接 |
动画系统 |
逆向运动学IK 骨骼动画Skeletal-Ani 动画混合Blending |
关键帧动画 骨骼动画 动画混合 |
支持DCC等开发工具导出生成的动画 脚本控制动画播放 |
骨胳动画 面部动画 层级动画 动画序列与动画序列, 动画与物理模拟结果的混合 动画序列之间的混和 |
支持四骨以上的复杂骨骼动画 |
网格 |
网格读取 蒙皮 递进网格
|
网格读取 蒙皮 |
网格读取 蒙皮 |
新的几何系统(NiMesh) 几何模型的计算由NiMeshModifier通过Floodgate系统来完成 蒙皮 网格读取
|
网格读取 蒙皮 |
特效系统 |
环境映射 镜头光斑 公告板 粒子系统 运动模糊 天空 水 雾 |
镜头光斑 公告板 粒子系统 天空 水 爆炸效果 贴花 雾 镜头特效 |
粒子系统 曲面fessellation技术 凹凸纹理贴图 多边形曲面光照效果 环境光效果 水
|
粒子系统 HDR DOF 常见特效 |
支持大量特效 景深局部对比增益 爆炸 烟雾 |
地形系统 |
地形渲染支持 插件式地形管理器 |
地形渲染 CLOD技术 |
低端硬件亦可流畅运行广阔茂盛的植被景观 |
目前支持4层贴图,无限地形,动态装载和卸载,地形缝合 |
支持无限大的无缝地形 独立进程管理地形单元 |
人工智能系统 |
不支持 |
寻径 决策 有限状态机 脚本 |
不支持,需要编写脚本AI |
支持 利用xaitmentAI中间件提供人工智能技术 |
支持 |
音效 |
不支持 |
2D,3D音效 |
实时三维图形混合音频流、视频流 |
使用Audiokinetic开发的Wwise音频中间件 |
基于多普勒效应的音频处理 |
网络 |
不支持 |
支持CS模式 |
从单人游戏到全实时多人游戏 |
支持模块化和可扩展的网络库 |
支持CS模式 服务器使用RedHat版的Linux |
渲染 |
固定渲染通道 渲染到纹理 字体 图形用户界面 |
固定渲染管道 可编程渲染 字体 图形用户界面 |
固定渲染 可编程渲染 字体 图形用户界面 |
固定渲染 可编程渲染 字体 图形用户界面 |
固定渲染 可编程渲染 字体 图形用户界面 |
图形性能 |
四星半 |
四星半
|
四星 | 四星
|
四星
|
易用性 |
四星 |
四星 |
四星半
|
四星
|
四星半 |
成熟度 |
四星 |
四星半 |
四星
|
四星
|
四星 |
技术支持 |
四星 |
四星 |
四星
|
四星
|
四星半
|
3D行业应用普及度 |
三星半 |
四星半 |
四星半
|
四星半
|
四星半
|
第四部分 总结
从上述比较中可以看到,专业级游戏引擎Unreal 、Gamebyro等的各项指标均处于领先地位,不过,Ogre作为开源引擎也非常不错,特别
实在包含光照,阴影,纹理,动画和粒子系统的图形性能上,体现出来的尖端图形学性能甚至超过专业级商业引擎,并且支持对底层和高层的
着色器。同时,比较详实的文档和用户手册,对快速学习和掌握引擎的架构以及开发方法极为有力
然而,我们不得不承认,从严格意义上讲,Ogre只能称得上是游戏引擎的图形渲染子系统,因为它对物理,音频,人工智能等这些现代游戏
引擎不可或缺的元素的支持还远远不够。
但是,在开源社区的努力下,开源引擎一定会变得越来越美丽!