深度分析 | Unity和Unreal的比较

558 阅读12分钟

1、2020年的Unity或Unreal

在当下游戏开发中,使用游戏引擎来创建游戏或者AR、VR应用已变得越来越普遍。如今,有大量的游戏引擎可供开发人员选择,但目前有两个最受欢迎的两个游戏引擎,非Unity和Unreal莫属了。今天,我们将着眼于两者的优缺点进行讨论,以帮助大家确定哪一个最适合你。

在开始之前,我需要声明,我们并不是非要比出哪个更好,因为这是两个截然不同的非常好的引擎,它们各有千秋。哪个更合适通常取决于你的个人喜好或所创建的游戏类型。此外,Unity和Unreal绝不是唯一的选择,它们只是最受欢迎的两个。

2、两个引擎的简单概述

Unity Engine

Unity于2005年第一次作为一种商业产品开始销售。当时,它与我们大多数人并没有什么特别的关系……因为那是当时的Mac独有的产品。但在2007年,Unity被带到了Windows平台,并真正开始发展起来。第二年,苹果应用商店(Apple App Store)和随之而来的手机游戏《淘金热》(goldrush)问世。

Unity一开始的定位就是:让游戏开发更易于上手,并向更广泛的受众开放。毋庸置疑他们是成功的。随后,他们还推出了一个非常成功的广告平台(Unity Ads),打造了一个面向Unity,iOS和Android开发人员的获利平台。

从那以后,Unity继续添加了许多新功能,更重要的是,Unity几乎可以面向你听过的任意一个平台发布游戏。最近几年,Unity更多地聚焦于提升引擎的性能和渲染技术,这使Unity成为一个真正的3A引擎。DOTS和可脚本化渲染管道之类的功能极大地提高了视觉质量。

如果大家对Unity的发展历史感兴趣,可以看看这篇文章。

web.wpi.edu/Pubs/E-proj…

Unreal Engine

Unreal的历史要古老得多——它早在1998年就发布了。在当时,有几家公司将他们的引擎技术许可给其他开发人员(如NetInvent、Renderware、LithTech,尤其是idTech)。在id Tech引擎中,开发者可以获得代码和工具,用来创建像id software公司的《雷神之锤》/《毁灭战士》之类的游戏。与id Tech不同,Epic Games将更多资源放在在“产品化”他们的引擎上,并提供完善的工具和支持。值得注意的是,在当时,游戏引擎的许可费用是6-7位数。至此,Epic成为了一家游戏和游戏技术公司,一直到现在还是这样。

如果你看看二十几年来用各种版本的Unral引擎制作的游戏,就知道谁是游戏宗师了。诸如《虚幻竞技场》,《杀出重围》,《生化奇兵1/2/3》,《细胞分裂》,《蝙蝠侠》阿甘系列,《无主之地》系列,《战争机器》系列,《质量效应》,《真人格斗》,《绝地求生》,《堡垒之夜》,当然还有《山羊模拟》等!这些大预算游戏没有使用内部技术来创建,这让Unreal轻松成为A-AAA游戏之王。然而你会注意到这其中少有手机游戏。直到《无限刀锋》,Unreal在移动端还是一个相对未知的领域,但随着时间的推移这种情况正在改善,《堡垒之夜》的巨大成功更是让他们专注于改善Unreal对移动端的支持。

随着Unreal4的发布,Unreal的许可制度发生了很大变化。不像UDK 3(虚幻3引擎开发工具包)那样需要几十万美元的前期投入,Unreal4改变了最初的小订阅+版税的结构,最终进入了直接版税制。

3、来自程序员的经验

两个游戏引擎对开发者(特别是程序员)来说有不同的使用方法。一个主要的区别是Unreal的源代码可以在GitHub上获得(虽然在技术上不是开源的),这意味着你可以自己改变引擎的任何方面,包括从头开始构建整个东西。另一方面,Unity是封闭源码的,除非你为源码许可证支付巨额现金(听说是6位数)。之后,Unity慢慢地发布越来越多的东西,许多包是开源的,但是大部分只是为了参考而开放的(你仍然不能自己编译引擎,也不能修复错误)

在游戏编程方面,Unreal有两种主要的编程语言:C++和Blueprints。C++有一个完整的垃圾收集系统,现在有一个由Live++支持的实时重装系统,这使得C++很像一种脚本语言。Blueprints是一个基于图形的可视化编程系统,它可能是最好的可视化编程选项。它还能够编译成C++代码,从而降低使用它的性能成本。Unreal的build时间不算太好。

在Unity中,曾经有几种支持的脚本语言,C#,Boo(类似Python),UnityScript(类似JavaScript/ECMAScript)。最近几年Boo和UnityScript支持都不怎么用了,剩下C#作为开发主要语言。从好的方面来看,自从Mono免费以来,Unity现在有了C#的当前实现,而不是落后于语言开发近十年。Unity目前正在向DOTS或面向数据的技术堆栈迁移,这是C#、ECS或 Entity Component System的高性能子集与并行计算的结合,侧重于Jobs系统,有望实现C++级别的性能。Unity中的Build时间非常快。

这两个游戏引擎都有应用商店,为第三方提供额外的游戏编程方式。

4、特点

在特点上,人们通常会做一个巨大的清单来罗列各自的特点,从而比较每个游戏引擎之间可用的功能。事实是,对Unity和Unreal来说,这可能完全是浪费时间。如果一个新的平台推出,两个引擎都将在一个版本中支持它。两个引擎都包含了各种工具和功能…动画工具,profilers,DCC导入工具,地形,物理,音频,VR,过场动画,版本控制集成等。就功能规格而言,Unity和Unreal无疑是目前功能最丰富和第二丰富的游戏引擎。

然而,有两个方面Unity比Unreal强——2D和Web。在上一个版本中,Unreal中的HTML平台被剥离出来,成为一个社区项目。就2D而言,Unity在这方面投入了很多关注。Unreal有Paper2D,但Paper2D的发展似乎在几年前就停止了。2D制作可以在任何一个引擎中完成,但在这方面Unity似乎是更好的选择。

Unreal最有优势的特点仍然是视觉质量……它目前在渲染3A质量的图形方面具有更好的性能。Unity正试图迅速缩小这一差距,如转向DOTS和引入可编程的高画质渲染管线HDRP,它们目前正处于测试中。

Unreal平台:

Unreal4让开发者可以将项目部署到Windows PC,PlayStation 4,Xbox One,Mac OS X,iOS,Android,AR,VR,Linux,SteamOS和HTML5。我们可以在Windows,OS X和Linux上运行Unreal编辑器。

5、社区

Unity和Unreal都有充满活力的社区,除此之外,社区了还有大量的书籍、教程和其他资源。此外,Unity的社区要大得多,可能会有3-4倍的出版书籍,以及大量的社区内的各种教程。然而,这两个引擎在提供学习材料方面都做得很好,所以学习任何一个引擎都不会有太大的问题。这两个社区都足够大,一般来说,我们可以很容易地找到一个技术问题的解答,尽管雇佣一个有经验的Unity开发人员比雇佣一个Uneral开发人员更容易。

社区的另一个方面是可用的开发商市场。Unity应用商店是这一概念的先驱,拥有免费或商用的脚本、模型、级别、图形等的巨大资源。Unreal也有一个开发人员商店,但它的规模只有Unity的一小部分。此外,Unreal会在每个月的第一天赠送商店的东西给开发者,给开发者提供大量高质量的免费资产。

6、发行游戏

两种游戏引擎都有大量已发布的游戏。虚幻引擎主导着大预算的3A领域,并试图越来越多地进军独立和移动领域。Unity则相反,发布了大量的手机游戏,是中小型开发者的首选引擎,尤其是几个备受瞩目的专业KickStarter游戏。

有名的Unreal游戏:

• 堡垒之夜

• 真人快打系列(UE3衍生引擎)

• 王牌实战7

• 方舟:生存进化

• 蝙蝠侠:阿卡姆城/庇护

• 战争机器4/5

• 王国之心3

• PUBG

• 盗贼之海

• 街头霸王V

• 无主之地3

• 染血:夜晚的仪式

有名的Unity游戏:

• 炉石传说

• 杯头

• 永恒之柱1和2

• 火警

• 暗影奔跑

• 战技

• 奥里和盲人森林

• 喀布尔太空计划

• 复核

• 城市:天际线

可以肯定地说,发布的Unity游戏比Unreal游戏要多,但是Unreal在大预算大市场3A游戏方面处于领先地位。

7、价格

Unity和Unreal采用了非常不同的方法来赚钱,每种方法都有优势和劣势,这取决于游戏的最终规模、范围和总销售额。

Unreal

我们将从Unreal的定价方案开始,因为它是最直接的。在你获得一定的收入后,Unreal的作品采用了直接的版税方案:

UE4是免费使用的,在每个季度每场游戏从商业产品中获得首笔3000美元收入后,才需要支付收入中的 5% 版权费用给 Epic Games。如果你预计你的游戏会有绝对惊人的销量,你也可以和Epic协商固定的前期许可费。

Unity

Unity有一种更传统的订阅的方法,有多种计划可供选择。Unity刚刚在2020年1月1日提价,并取消了年度计划定价。

对于年收入或资金不超过10万美元的开发商来说,有个人或免费层。接下来是PLUS层,每月40美元。这一层为用户提供了额外的功能,如访问他们的高级学习、分析、云托管等。最大的不同是你可以用这个许可证每年赚20万以上。

然后是专业层,每个开发人员每月150美元。同样,这款产品附带了许多附加功能,但完全消除了收入限制。

最后,还有一个选项是与Unity协商源代码许可证,其条款不公开。

8、利弊

以下是每个引擎的主要优点和缺点的简要概述:

Unity –优点

• 支持每个主要平台

• 庞大的社区和支持网络(书籍教程等)

• 迄今为止最大的开发商市场

• 最容易找工作,且易于获得的认证和培训课程

• 更好地支持2D游戏开发

• 与引擎无关的类型,非常适合策略类游戏,RPG等。

• 更快的开发周期,更快的构建时间

• 广告网络,Unity广告对于移动开发人员而言意义重大。

• 开放且快速的开发迭代,对于常规的alpha和beta版本非常透明

• 引擎的模块化重新设计加快了发行新版本的速度

Unity–缺点

• 视觉效果不如Unreal

• 性能问题

• 无法从源代码构建或修复错误

• 没有用Unity制作的代表性的3A游戏证明“我们可以做到!”

• 刚开始支持可视化脚本

• 模块化的开发方法使项目更容易遭到破坏

• 引擎还处于中间状态……新的UI慢慢推出,新的代码架构慢慢推出,一些新功能取决于尚不可用的其他新功能。

• 新的编程架构(DOTS / ECS)将需要现有开发人员重新学习,并且目前比GameObject / MonoBehaviour工作流程复杂得多

• C#…C#或C#。想使用C#吗hhh?

Unreal–优点

• 支持每个主要平台

• 提供源代码,完全公开的开发周期

• 极佳的图形渲染效果

• 更现代的编辑器,更少的遗留问题

• 出色的性能,经常开箱即用

• 非凡的战绩。事实上,已经有数百种专业游戏使用虚幻引擎在各种流派和风格中发布。

• 每月赠送免费资产

• 如果游戏在Epic Game商店上发布,则可以免费使用

虚幻引擎–缺点

• 2D已几乎被遗弃

• 引擎的设计非常关注第三人称和第一人称的游戏。

• 极慢的构建时间

• 资产导入可能会非常缓慢

• 买卖双方的资产交易市场较小

• 不支持C#

• 较小的开发人员社区,很难找到经验丰富的开发人员

9、结论

Unreal和Unity是两种产品,随着时间的推移,它们在许多方面变得越来越相似,而不是越来越不同。两者最大的区别是它们的起点。Unity最初针对业余爱好者市场的生活,并在那里取得了巨大的成功。现在,围绕Unity的许多发展都是围绕着将其升级到3A级别进行的。比如支持更大的项目、更高的图形保真度和更严格的性能控制。

然而,Unreal从它启动的第一天起,就是一个3A游戏引擎,专注于高性能和图形保真度。随着Unreal4的发布,人们更关注让它更易于使用、更好地记录和更容易上手。

每当一个新功能发布出来,你可以很快看到另一个引擎也紧跟着发布。他们背后都有巨额资金支持,而且两家公司都不太可能倒闭。两者都在以惊人的速度增加功能,尽管这些功能通常还需要几年才能稳定到足以在生产环境中工作。两家公司都在大举进军服务市场。目前,Unity提供的一个Unreal没有的主要功能是广告货币化服务,该功能在移动领域很重要,但在桌面和控制台平台上不太重要。