Unity vs Unreal,游戏开发该如何选择?

Blog
Author:
Asaf EldadAsaf Eldad
Published On:
4月 25, 2021
Estimated reading time:
1 minute

近年来,游戏引擎行业风云诡谲,变化莫测。2005 年,Unity 加入阵营,公开发布了自己的产品。2014 年,Epic Games 发布了一款新的订阅模式引擎 Unreal Engine 4,用户每月只需支付 19 美元。后来,UE 逐渐发展为免费使用,但需要交付总收入的 5%,作为版税。最近,其定价再次变更,首个百万美元免费。定价的变化,自然也会影响其市场份额。Unity 布阵游戏引擎市场, Unreal 定价模式频繁变动,关于两个引擎及其利弊的讨论也不绝于耳,这些热点话题还不止局限于线上。

由于价格低廉(或者说完全免费),这个神奇的游戏引擎世界向所有人敞开了大门。许多独立游戏开发商终于有机会使用,按照大众的说法是,Unity 是独立游戏和移动游戏开发的专属引擎。 不仅于此,连大型游戏工作室也放弃了旧引擎,转而使用 Unity 或 Unreal。精通 Unity 或 Unreal 成为游戏开发人才市场的重要标准,招聘公司也不得不受这些流行引擎的影响。选择一些名不见经传或自制的游戏引擎,也就意味着可能找不到合适的开发人员。

在数据上,这种流行现象也很明显,两个引擎目前都是游戏引擎行业的先锋产品, Unity 拥有 48% 的市场份额,Unreal  占 13%,这两股势头不容忽视。

总的来说,对比 Unity 和 Unreal,两者的区别太过明显,但我们还是可以理一理。作为一个游戏开发人员或设计师,你可能一直在纠结到底选择 Unity 还是 Unreal。你大概已经做出了选择,但这并不意味着问题不存在。可能你马上要开始一个新的项目,并考虑换一个引擎,或者你只是想补充一些阅读量——无论你的原因是什么,我们都将认真地对比两个引擎。

unity-screenshot

为什么选择 Unity?省心省力

是什么让 Unity 成为游戏引擎的行业领导者?为什么这么多游戏开发者和设计师都为使用 Unity引以为豪?原因似乎多种多样。

首先,Unity 是免费的,但在某种程度上 Unreal 也是。所以,让我们把价格问题搁置一下。但在此之前,Unity 首席执行官 John Riccitello 曾在 GamesIndustry.biz  提到:“没有版税,也没有其他,省心省力”。的确是这样…

Unity 最大好处在于其易用性。这就是这么多初学者选择 Unity 的原因。Unity  的开发语言为 C 语言,这也让使用变得简单。此外,Unity 界面直观,架构非常简单(包括对象和组件)。截至 2020 年 7 月,Unity 的所有开发计划中都包含了 Bolt 可视化脚本工具,用户无需额外付费,这让 Unity 更加容易操作。因此,Unity 用户可以尽量减少编码。如果你想为一个项目快速创建一个原型,Unity 绝对是最佳选择。Unity 另外一个优势是速度。Unity 以迭代周期快速而闻名(迭代就是一切,不是吗?),其部分原因也是因为能够最大限度地减少代码使用。

当然,原因有很多。比如 Unity 是真正的跨平台(或移植?)产品,有让人眼花缭乱的资产商店(就像孩子进了糖果店),一个庞大的社区…优势清单还可以继续列举。

Unity 作为开发引擎的第一选择的另一个原因,是其在二维游戏开发中做得尤其出色。这一点,我的一些 UE 4 忠实粉丝朋友也不得不承认。

 

为什么选择 Unreal?图像第一!

当然,价格的优势吸引了很多独立开发者。但 Unreal 仍然是 AAA 游戏引擎,游戏工作室利用它创造了许多的优质的游戏,如《战争机器 5》、《往日不再》、《幽浮 2》等。其中不乏一些因高清真实质感而备受追捧的产品。

你看,Unreal 的立足之本是其高清的图像质量(灯光,阴影,纹理等)。这就是很多人忠于Unreal 的原因。图像的质量并非小事,整个游戏行业正朝着照片级真实感图像的方向发展。当然,你也可以用 Unity 创建精美的图像,但耗时更长,而且质量不足。

至于易用性,虽然 Unity 更容易使用(是适合初学者的引擎),但 Unreal 的入门 Blueprint 也让编码变得更为简单。不过,不得不承认,相较之下,Unreal 还是复杂。Unreal 架构不同,使用的是 C++,显然 C++ 也不是世界上最简单的编程语言。

另外,Unreal 社区、资产存储和文档等其他方面也不错。尽管 Unity 社区资源更多,资产存储及相关文档也很丰富。总的来说,这两款引擎在这些方面的配置都很好。

Unity vs Unreal: 主要区别

ue4-screenshot

大家都说码农喜欢 Unity,而设计师喜欢 Unreal。在见了许多 Unreal 的游戏开发商后,不得不说现实确实如此,但我也明白为什么设计师会偏爱 Unreal。使用 UE 4,我们明显可以更好、更快地获得最佳的视觉效果。许多图像功能(如体积雾后处理),都可以在 UE 4 随手使用。但在 Unity,这些是免费资产,需要单独安装。

在 UE 使用工具非常方便,如材质编辑器,与 Maya 和 Blender 等 3D 建模软件中的节点编辑器旗鼓相当。对比之下,Unity  材质编辑器的 API 还不太丰富。

总的来说,Unity 并不比 Unreal 落后太多。你仍然可以达到 AAA 质量,但需要更多时间。

功能

对比 Unity 和 Unreal 的功能集,两个引擎都相当强大,但是有一些功能我想单独提一下。

第一个是人工智能,以及 UE 4 中的具体实现情况。在 UE 4 中,行为树(Behavior Tree)系统让人眼前一亮。 使用 UE 4 黑板(Blackboard)和行为树编辑器,我们可以轻松创建复杂场景。

另一个是 2D:如果你想做 2D 游戏,一些开发者会建议你使用 Unity。精灵编辑器(Sprite Editors)、动画工具…如果你正在开发 2D 平台,所有这些都能让游戏开发大为省心。不过,Unreal 也有 Paper2D 插件,所以这也是需要考虑的一点。

最后还有网络支持。Unity 基本上没有这些功能,用户需要使用第三方库。另一方面,在 Unreal中,复制是现成的,你可以在 C++ 和 Blueprint 构建多人游戏。

目标用户

我之前提到过,Unity 深受独立开发者的青睐。另一方面,尽管 Unreal 是大型工作室(AAA 级巨头)偏爱的引擎,但它正在缓慢(但肯定)蚕食独立开发者的份额。这不仅仅是因为 Unreal 的价格变低了。Unreal 交易平台中有很多可用于原型制作的资产,以及其他插件资源(请查看 Incredibuild 插件),这个社区正在快速发展。所以对独立开发者来说,已经远超期待,但对于 AAA 级工作室呢?

对于 AAA 游戏工作室来说,除了对图像质量的要求,还有扩展性。在这一点上,Unreal 的扩展性能远超 Unity。AAA 游戏的特点往往是大世界、大项目,但这也正是 Unity 的瓶颈。

大型开发人员选择 UE 4 的另一个原因,是其开源性。你可以改进引擎,以实现或增强所需功能,甚至完全脱离引擎。这就是 Dice 在《星球大战:前线》中使用 UE 3.5 进行的操作。

编码

两个引擎都有可视化代码编辑器(UE 4 中的 Blueprint 和 Unity 中的 Prefab)。不过两者是有所区别的,Unreal 的 Blueprint 是由 UE 4 Codegen 编译的一段代码,生成有效的 C++ 类。Unity 的 Prefab 只是一个 UI 工具,可以连接不同脚本。在 UE 4 中,你可以只使用 Blueprint 构建游戏,因为它们是有效的代码片段。还有一种新的工具叫做 Bolt ,这就像加强版的 Prefab。这个工具很实用,Unity 免费提供了所有版本。不过,它仍然只是一个帮助您将组件组装在一起的 UI 工具。与 Unreal 不同的地方,Bluprint 生成有效的 C++ 类。

作为代码本身,Unity 的主要编程语言是 C 语言,而 UE 4 是 C++。在我看来,C++ 比 C 语言更难掌握,所以 UE 4 开发者一般都经验丰富,可能是由于 C 语言的缘故。

社区

这两个引擎在游戏开发领域都是泰山级别的产品,自然而然地也都形成了大型的社区。让我们看看它们在 Reddit 上的粉丝数:Unity 有 23.8 万粉丝,而 UE 有 11.1 万。我知道,这些数字说明不了什么。但这仍然是一个有效的对比数据:Unity 社区的人数多出一倍。当然,这意味着更多的问题,同时也是更多的答案,这些问答同时组成了还有更大的知识库。

性能

很难直接比较引擎的性能,因为需要考虑的变量很多,如纹理的质量,游戏中对象的数量,游戏世界的大小……所有这些都取决于开发者。C++ 和 C 的基准测试在这里帮不上忙,因为两个引擎都有自己的 SDK。例如,Epic 高度鼓励开发人员使用它的内存管理框架。

然而,Unreal 引擎优化了 draw 的调用,并且随着游戏世界的增长,这种优化的好处也开始显现:Unity 执行时间稳定增长,而 Unreal 引擎却没有。游戏场景复杂度越大,其性能优势越明显。

另一件事是分布式编译。Incredibuld 与 Unreal 引擎集成,显著加快代码构建和着色器编译。Epic 在项目中内部使用它。Unity 则没有这样的整合,所以 UE 4 的优势也出来了。

Gaming_trends_1200x360-003

Unity vs Unreal 对比表

  Unity Unreal
图像 物理渲染,全局光照,安装插件后可进行体积光效,后处理 物理渲染,全局光照,体积光效开箱即用,后处理,材质编辑器
独特功能 强大的2D  游戏开发功能 人工智能, 网络支持
目标用户 大部分为独立开发者,程序员 AAA 游戏工作室,独立开发者,设计师
编码 C#, Prefab, Bolt C++, Blueprints
社区 Reddit 官方账号中有超过 20 万粉丝 Reddit  官方账号中有超过 10 万粉丝
性能 扩展功能一般,不如  UE 支持分布执行 (Incredibuild)

 

总结

最后,要得出结论,Unity  和 Unreal 哪个更好?

免责声明——我个人更喜欢 Unreal。部分原因是 Unreal 与 Incredibuild 集成,但并不只是这样。我偏爱高清图像,而这正是 Unreal 最擅长的地方。此外,最近的 MetaHuman Creator 将实时数字人类的创造时间从几周、几个月减少为不到一个小时,我觉得 Unreal 在性能方面投入了很多,表现也的确很好。UE 5 即将面世,所以我期待着更多的惊喜和改进。

然而,我想说的是,Unity 也有它的优点:适合开发 2D 游戏、易学易用、大量社区和资产商店资源等等。所以,这也难怪 Unity 拥有这么大的市场份额。

最后,这取决于你的团队是怎样的?你需要什么?你是独立开发者,还是大型工作室?你要开发2D 游戏吗? 你是否要求最佳的图像质量? 回答完这些问题,你就知道该选哪个了。如果你选择了  Unreal,别忘了带上Incredibuild?。