unreal引擎占用内存多少 android unreal游戏引擎_游戏


碰到游戏开发,一定会要面临在这3个引擎里面的选择。网上一搜,不管中英文,找到的比较文章浮于表面,不触及雷区,根本无法帮助开发者进行选择。

所以,自己亲自使用了3个引擎后,来帮大家扫雷,少走弯路。

 

先说结论:Unnreal最方便,最完善,已经成为超越Unity的全平台首选。包括腾讯,网易在内,越来越多的公司选择用unreal开发手游,Unity最近有被大公司逐步淘汰的趋势。

 

游戏引擎的需求,一般来说有如下几个:平台支持,渲染效果,编辑器易用性,文档完善程度,编程难度,第三方包数量,引擎收费方式。

我们一个个来看。

 

1. 平台

unity和unreal如今都是全平台,包括手机。在手机上,unreal效果还比unity好。

cryEngine目前还是不支持手机,但从官方论坛看,似乎正在开发对手机的支持。

 

2. 渲染效果

Unity从v5.x开始,支持GI(全局光照),到2018,把GI+PBR提升到了标准流程。

 

从GI的实现方式看,Unity和Unreal采用了一模一样的方式:用非实时的光线追踪渲染器,花长时间,对场景进行GI渲染,并把GI进行bake,保存下来。这样,实时游戏时,不再计算,直接用bake好的。

 

所以,我们看到的Unity和Unreal的GI效果,其实是光线追踪渲染器,花长时间渲染出来的照片级效果。再有游戏主播说游戏画面多么好的时候,你可以去笑话他了,因为这画面根本就不是实时渲染的。

 

这种方式,只能用于静态物体,静态光源,也就是,物体和光源不能动。那动态物体怎么办?

方法是:在bake的时候,把空间每个点,不管有没有物体,每个点的光照信息,也都bake到数据结构中。动态物体,实际上不能反射GI,但是能接收这些保存过的GI,从而达到还算不错的效果。

 

unity和unreal采用了完全一样的GI实现方式,于是,也就有了完全一样的GI渲染效果。

 

unity只提供bake的这一种方式,而unreal还提供无需bake的实时GI。但是,unreal的实时GI,效果非常差,绝对不会有人去用,所以不提也罢。

 

CryEngine则非常猛,它不是bake,而是真的实时GI。它不需要bake,真正做到了所见即所得。它的GI,叫做Voxel-Based GI,和这两年,NVIDIA到处宣传、演示的实时GI,是一样的实现方式,都是基于同样的论文实现的。这在2018年底的今天来看,也是真正的次世代引擎。

 

视觉效果上,VB GI也有局限,和Baked GI一样,VB GI只计算静态物体,动态物体不反射GI,但接受GI。所以画面效果上,它和Unreal,Unity3D的效果,其实是一模一样的。

 

VB GI的好处是,它不需要bake,开发者永远不用面对bake后效果不如意,反复调整,反复bake的尴尬局面。这种尴尬,在unity和unreal很常见。

 

也就是说,VB GI效果其实并没有提升,但是制作效率得到提高。

 

对玩家来说,VB GI有2个短板:

 - 对电脑性能要求更高。

 - 当镜头从一处,不移动,直接跳到另一处时,光线可能要花约2秒重新计算才能达到准确。现象是,镜头跳过去瞬间,画面全亮,约2秒内逐渐回到正常亮度。

 

而手机平台上,GI是不用想了,手机性能跟不上。不过,GI还是可以bake到贴图上的。在这种情况下,Unreal的渲染效果,明显比unity好得多,这是众多公司改用unreal开发手机游戏的一个重要原因。

 

 

3. 编辑器易用性

Unreal完胜,近乎碾压级别的胜利。最能一眼看出区别的,就是材质系统。

 

Unreal拥有最直观,最方便,最强大的节点式材质,其材质选项,也完全基于PBR(基于物理的渲染)。不管是设计人员,还是开发者,都能很舒服的上手,很舒服的使用和调整。

unreal引擎占用内存多少 android unreal游戏引擎_渲染效果_02

 

Unity则简陋的让人意外,尤其是作为一个热门游戏引擎。整个材质体系都给人感觉是业余的设计。尤其是对于用过3dmax, maya, c4d的3D人士来说,Unity的材质体系,有点看不下去。

unreal引擎占用内存多少 android unreal游戏引擎_c#_03

 

功能强大方面,Unreal提供了你能想到的几乎所有功能。而Unity自身,很多功能都是缺失的,但是都能在市场买到,如果你有预算的话。这个部分,可以往后看“第三方包”的环节了解详情。

 

CryEngine难用的让人吐血。因为它所有的资产/素材,都没有预览图,只有文件名列表。当点选到某个资产时,是有预览窗口的,也就是说,你要一个个去点选,看哪个素材是你要的,而不能从预览图列表一眼看出来。

 

这种强大和便利方面的差异,体现在3个引擎的各处。

 

Unreal的编辑器易用性,也是越来越多公司选择unreal做手游,而不选择unity的一个重要原因。

 

4. 文档完善程度

unreal和unity的文档完善程度,可以说不分上下,都很完善,不管是跟着向导走的新手,还是老手速查,都没有任何困难。

 

在新手引导方面,unity做的更好一点。因为unreal一上来,就以大型游戏的需求举例,提供的入门项目,也比unity的入门项目,更复杂一些。

 

而CryEngine的文档,可以用严重不足来形容。cryEngine做出了次世代的引擎,却因为没有文档,没人会用,公司直接破产了一次,你敢信。幸好亚马逊把它买了,不然它就消失了。

 

cryEngine的文档存在2个问题:

(1)文档版本跟不上软件版本:

    cryEngine 在v5开始,编辑器经历推倒重写,现在是v5.5,重写基本完成,文档手册跟上了,但教程还没跟上

    现在,官网教程 和 最新版编辑器对不上。而最新版的视频教程,其实放在官方youtube里,却没放在官网上

    所以,对于不知道的人,会觉得CryEngine上手好难,教程和自己软件上看到的,根本不是一回事

(2)编程文档极度匮乏:

    cryEngine的大部分文档,都是 编辑器 和 无代码的节点式编程 的。而C#/C++文档,极度匮乏。教你怎么新建脚本,怎么编译之后,直接就是API手册!

    获得常用api的唯一方法,是查看官方提供的游戏模板项目的源码。

 

5. 编程难度

unreal只支持C++;unity主用C#;CryEngine从v5之后,C#和C++是同等待遇。

 

在游戏编程方面,C++其实并不比C#复杂多少,但是,unreal的C++ 代码,却总是给人一种不太易读的感觉。对比后,发现差异在于api和变量命名。Unity的api命名更加简洁,而unreal的,不管是api还是示例代码,变量命名都特别长。

 

这种过长的命名,以及C++本身复杂性的名声在外,吓住了不少其实应该选择Unreal的用户。

 

所以,有时候不太理解,unreal为什么不像CryEngine那样,官方支持C#。就算unreal一直在说,它的C++其实并不复杂,但C++险恶的名声,不是Unreal能改变的。

 

6. 第三方包

unity压倒性的多,其他两个都不能比。

 

但unreal编辑器压倒性的强大,做游戏的大部分功能,unreal都想到并提供了。

 

比如,流式地图加载(玩家边跑边加载地图,从而能无缝体验无限大的地图),unreal本身就提供了,unity本身没有,但市场有卖,价格50美金。

这样看,或许unreal包不如unity多,但是游戏需要的功能,unreal编辑器一般都提供了,于是反而省了不少钱。

 

CryEngine包就很少了,不过,官方很舍得给免费素材。一上来,就先给你4G免费素材库。然后,应用商店,再来一堆免费素材库。基本上,制作野外地图,你不再需要另找任何素材。但是,城市场景,它就没多少素材了。

 

7. 引擎收费

unity是收软件月费/年费,成本有上限。

unreal是收5%的游戏利润。

CryEngine有段时间是靠随意捐款,现在也改成了收5%的游戏利润。

 

结论:

CryEngine完全出局,文档不全、且不支持手机,找不到任何使用的理由。

 

Unreal在强大、性能、编辑器易用等方面,都是超过unity的,平台支持两者一样。越来越多的公司已经在抛弃Unity,换用Unreal。

 

但是,近期,依然有些公司在比较Unreal和Unity后,毅然选择Unity。主要是产品、系列已经固定的小公司。原因在于:

  • 系列产品已经固定,已经明确知道下一个产品收入也不会高,不舍得被unreal抽成
  • C++的开发人员工资,比C#要贵。

 

基本上,如今要在unreal和unity做选择的小公司里,有个趋势:越是觉得自己收入少的公司,越是会选择unity。而越是觉得自己收入高的公司,越是会选择unreal。

 

比如,网络游戏更愿意选择unreal;单机+内购+DLC的游戏,更愿意选择unity。手机和PC平台都是这样。因为,网络游戏运营更久,开发商会预计自己收入更高。

 

背后的逻辑是,如果开发商挣钱多,被引擎抽5%也能承受;如果开发商本来就挣钱不多,还被抽5%,或许就很难接受了。