Unity 与 Unreal,你是哪种游戏开发工程师?

Blog
Author:
Asaf EldadAsaf Eldad
Published On:
1月 30, 2023
Estimated reading time:
1 minutes

目录

最近几年来,游戏引擎格局发生了很大的变化。2005 年,Unity 问世,向大众推出了其产品。2014 年,Epic Games 发布了 Unreal Engine 4,采用一种新的订阅模式,用户每月只需支付 19 美元。随后,它又变为免费使用,用户只需支付总收入的 5% 作为特许权使用费即可。最近,其定价再次修改,用户在赚得 100 万美元收入前,均可免费使用(100 万美元的收费门槛设定,毫无疑问会改变 Unreal 在市场中所占的份额)。随着 Unity 对游戏引擎市场的渗透以及 Unreal 定价模式的改变,Unity 和 Unreal 及其优缺点也引发了网络热议,甚至延伸到线下领域。

低价(或免费)模式敲开了奇妙游戏引擎世界的大门,让所有人都有机会窥见一斑。许多小型独立游戏开发者终于可以涉足其中(坊间流行的说法是“Unity 是小型独立、移动游戏开发的游戏引擎”),甚至许多大型游戏公司都抛弃了原先的引擎,转而投向 Unity 或 Unreal 的怀抱。熟练掌握 Unity 或 Unreal 已然成为游戏开发应聘者的一项必备技能。招聘公司也不得不考虑这种流行趋势;否则,选择复杂难懂或自研游戏引擎,可能会导致公司无法招募到适合其团队的游戏开发人员。

统计数据清晰地说明了这一点。这两种引擎目前在游戏引擎行业中均处于领先地位。Unity 的市场占有率为 48%,而 Unreal Engine 则占有 13% 的市场份额,二者的实力都不可小觑。

基本上,Unity 与 Unreal 之间的对比显而易见,但在此,我们还是粗浅比较一番。到底要选择 Unity 还是 Unreal,这可能是游戏开发者或艺术家一直在思索的问题。我猜你可能已经做出了选择,但这并不意味着你就不会再纠结了。也许你即将启动新的项目并考虑更换游戏引擎,或者你只是想了解更多信息——无论你的原因是什么,通过此次深入比较,我们都会为你提供一些助益。

什么是 Unity

Unity 为 Unity Technologies 研发出品,提供了一系列最有效、最简单的游戏开发工具。各种技能水平的开发人员,几乎都能轻松使用 Unity。

Unity 是一种 2D 和 3D 视频游戏引擎,自 2005 年以来,一直帮助开发人员实现其游戏愿景。自此之后,Unity 的能力不断演变发展,为开发者提供市场上最顶尖的游戏开发工具和技术。

现在,随着实时 3D 游戏的发展,游戏引擎已经成为可供当今游戏开发人员使用的一种最强大、最受欢迎的视频游戏引擎。

什么是 Unreal

Unreal Engine (UE) 是一款游戏开发工具,专注于帮助开发者在同一个平台上构建模拟,编辑音视频,渲染动画。

软件由 Epic Games 创建,在世界各地使用,可用帮助各种技能水平的开发人员构建各种游戏。这些游戏在当今市场上获得了良好表现。

为什么选择 Unity?没有套路

为什么 Unity 能够成为游戏引擎市场的领导者?为什么如此多的游戏开发人员和艺术家自豪于使用 Unity?其中涉及许多原因。

首先,我已经提到过,Unity 完全免费,而 Unreal 需要满足一定条件才能免费使用。姑且先不谈价格。在我们开始之前,我们来听听 Unity 首席执行官 John Riccitello 在 GamesIndustry.biz 中发表的观点: 不必付费,没有套路。的确……

也许 Unity 最突出的优点是简单易用。这也是为何如此多的初学者选择 Unity 作为其首选引擎。Unity 采用简单的 C# 语言,界面清晰直观,架构一目了然(只有对象和组件)。此外,截至 2020 7 月,Unity 的所有计划中均内置了 Bolt 可视化脚本工具,且不收取任何额外费用。这让 Unity 变得更加简单易用。借助此工具,基本上,Unity 用户可以尽可能避免编码。如果你想快速构建原型并投入市场,那么 Unity 可能是必选工具。这就是用户选择 Unity 的另一个原因是——快。Unity 以“迭代周期快”而闻名(迭代就是王道,不是吗?),其中部分原因就是它能够最大限度地减少代码的使用。

当然还有其它原因。Unity 实现了真正的跨平台(有人说是移植?),它拥有十分丰富的资源(感觉像糖果店里的孩子),而且建立的社区也更大……等等。

用户首选 Unity 的另一个原因可能就是:它在 2D 游戏开发中的表现超级出色。我有一些开发工程师朋友,即便他们是最忠诚的 UE4 粉丝,他们也承认这一点。

Unity 最适合谁?

Unity 非常适合才刚刚开始游戏开发之旅的独立开发人员。它以其“用户友好界面”闻名,非常适合那些希望使用相对简单(且免费)的软件来探索游戏开发的初学者。

为什么选择 Unreal?图形、人物、图像!

是的,新的价格变化会吸引许多小型独立开发者,不过 Unreal 仍然被视为 AAA 级游戏引擎,代表的是那些打造真正精美游戏(Gears 5、Days Gone、XCom-2 等)的制作公司。其中的一些游戏以逼真的特效闻名。

所以,Unreal 的核心亮点就是其图形质量(光影纹理等)。这也是许多用户成为 Unreal Engine 忠实拥趸的主要原因。不要小看这一点,整个游戏世界的发展方向就是逼真的图形效果。当然,在 Unity 中你也可以创作精良的图形,但这可能需要花费更长的时间,并且还可能无法达到相同的画质效果。

从易用性来看,虽然 Unity 更简单易用(是一款适用于初学者的引擎),但 Unreal 的蓝图 (Blueprints) 也可以让编码变得更简单。不过,无法否认的是,Unreal 更复杂;架构也不同,采用的是 C++ 语言,而 C++ 并不是世界上最简单的编程语言。

用户也会因为其它原因选择 Unreal,如社区、资源库和文档等,虽然相较而言,Unity 的社区更大、资源更丰富、文档也更多。尽管如此,从这方面来看,这两种引擎都很成熟。

Unity Unreal:主要区别

图形

据说,程序员更喜欢 Unity,而艺术家更喜欢 Unreal。在与许多使用 Unreal 的游戏开发人员见面聊过之后,我发现,虽然我不认为事实如此,但我确实明白了为什么艺术家会更喜欢 Unreal。有了 Unreal Engine 4,你可以更快捷地制作更精良的视觉效果。Unreal Engine 4 中有许多图形功能(如 体积雾后期处理)可以开箱即用,但在 Unity 中,类似功能虽然是免费的,但都需要单独安装。

Unreal Engine 中可用的工具(如 材质编辑器)非常方便好用,可以媲美 Maya 和 Blender 等 3D 建模软件中的节点编辑器。而 Unity 材质编辑器的 API 还不够丰富。

总的来说,从这方面来看,Unity 和 Unreal 的差距不大。使用 Unity,你仍然可以实现 AAA 级效果,只是花费的时间可能更长。

视觉效果 (VFX)

两种引擎都可以制作超精良的 VFX,不过 UE 可以达到的视觉效果略优于 Unity。UE 可以制作逼真的视觉特效,让玩家真正沉浸在为他们创造的世界中,探索新的领域,不必自行想象。

渲染

渲染可以加快游戏开发项目的后处理速度,因此在选择游戏引擎时,渲染也是一个关键考虑要素。从这方面来看,UE 的渲染速度比 Unity 更快,因此前者是更优的选择。

动画

不论是在 Unity 还是 UE 中,用户都可以创建具有强大动画效果的游戏。但其中的关键区别是,Unity 工具的深度往往不够,更适合经验稍浅的游戏开发人员。相反,UE 的工具主要面向开发团队内的专业游戏开发人员,因此工具通常更为复杂。

脚本

构建游戏必须选择正确的编码和脚本语言,如此用户才能真正实现其预想,而无需使用复杂冗长的代码。UE 采用的是 C++ 语言,而 Unity 使用的是 C#。通常 C# 的编译和迭代时间更快;不过,除非你已经准备好挑战困难模式,否则选择游戏引擎时,最好还是选择你习惯使用的脚本语言。

功能

如果从功能方面比较 Unity 和 Unreal,这两种引擎都极具竞争力,但是有一些功能我想单独聊一聊。

首先就是 AI 及其在 Unreal Engine 4 中的实现情况。在 UE4 中,你可以利用内置的行为树系统,制作炫酷的效果。使用黑板和行为树编辑器,你可以轻松搭建各种复杂场景。

我还要说的另一个功能就是 2D:要制作 2D 游戏,有些开发人员可能会建议你选择 Unity。在开发 2D 平台时,使用精灵编辑器、动画工具……所有这些功能会让你的工作变得更轻松。不过,Unreal 搭配 Paper2D 插件,效果同样不错,这一点也需要考虑。

最后一个功能就是网络支持。Unity 基本上没有,你需要使用第三方库。而在 Unreal 中,复制功能开箱即用,你可以用 C++ 和蓝图构建各种多人游戏。

目标受众

之前我已经提到了,Unity 在小型独立开发者中非常受欢迎。而 Unreal 公认适合 AAA 级大型游戏制作公司,不过其也在逐步(但同样也是坚定地)争取小型独立开发者的份额。其中的表现不仅仅是 Unreal 的价格变化。 Unreal Marketplace 中包含各种丰富的原型设计资源,以及额外插件(查看 Incredibuild 插件),而且社区也在快速成长中。这些已经足以满足小型独立开发者所需,不过 AAA 游戏公司呢?

对 AAA 游戏公司来说,除了出色的图像画质,Unreal 的扩展性能也比 Unity 更优越。AAA 级游戏的特点往往就是宏观的游戏世界以及大规模的项目,而这正是 Unity 的薄弱处。

大型开发者选择 UE4 的另一个原因就是其开源特点。你可以利用此引擎实现你想要的功能,也可以将引擎完全分解开来。在《星球大战》的战场上,Dice 就是利用 Unreal Engine 3.5 这样操作的。

编码

两种引擎都有可视化代码编辑器(Unreal Engine 4 中的 Blueprint 以及 Unity 中的 Prefab)。不过,它们也有一些区别:Unreal 的 Blueprint 是一段利用 UE4 codegen 编译的代码,可以生成有效的 C++ 类。Unity 的 Prefab 只是一种 UI 工具,帮助你将不同的脚本衔接在一起。在 UE4 中,只使用蓝图,你就可以构建游戏,因为它们都是有效的代码段。此时,我们需要了解一个新的东西——Bolt,它更类似 Prefab。它的效果非常好,以至于 Unity 免费将其纳入到所有版本中。不过,它仍然只是一种 UI 工具,可以帮助你将组件整合在一起。不像 Unreal,其蓝图本身就是生成的有效 C++ 类。

从代码来看,Unity 采用 C# 语言,而 UE4 使用 C++。在我看来,C++ 的学习曲线比 C# 更陡峭,而且,正是因为 Unity 采用 C# 语言,相比熟练的 UE4 开发人员,在市场上似乎更容易找到经验丰富的 Unity 开发人员。

社区

从游戏开发场景来看,这两种引擎的表现更极为亮眼,因此,二者的社区都十分庞大,这一点都不足为奇。让我们来看看它们在 Reddit 平台上的粉丝量,Unity 有 23.8 万粉丝,Unreal Eninge 有 11.1 万粉丝。我知道,这些数字并不能说明太多问题。但它仍然清晰地说明了一点:Unity 社区的人数是 Unreal Engine 的两倍。这意味着 Unity 社区内会有更多的问题提出,同时,更重要的是,也会有更多的答案。当然,还有更丰富的知识库。

性能

这两种引擎的性能很难比较。需要考虑许多变量:纹理质量、游戏内所含对象的数量、世界的规模大小等……所有这些变量都取决于开发者。这两种引擎都有自己的 SDK,因此,C++ 和 C# 基准在这里 并不奏效。而且,例如,Epic 就大力倡导开发人员使用其内存管理框架。

不过,Unreal Engine 优化了绘制调用,随着游戏世界的规模不断扩大,这种优化的作用就愈加突出:Unity 会按比例逐渐增加执行时间,而 Unreal Engine 却不会。游戏场景越复杂,其性能优势就越明显

另一方面就是分布式编译。Incredibuild 集成 Unreal Engine,可以大大加快代码构建和着色器编译速度。Epic 就在其项目内部使用了 Incredibuild。Unity 却不支持这种集成,从这一点来看,UE4 更好。

支持力度

Unity 和 UE 的网站上都有专门的帮助页面,其中都包含各种资源和常见问题,供用户查询并解决问题。Unity 还以拥有庞大的用户社区而闻名,因此使用 Unity 能够获得大量的在线支持。不过,UE 提供了演示项目,可供用户下载、试用,以便熟悉如何使用部分工具。二者似乎都不错,如何选择,就要看你自己了。

Capterra 评分

在 Capterra 网站上,满分 5 分,Unity 的总体评分是 4.7 分,其中在功能和性价比方面的平均评分为 4.6 分,客户服务方面的评分为 4.4 分,而易用性评分为 4.2 分。相比之下,UE 得分略高一点,平均评分为 4.8 分,具体来看,功能评分为 4.8 分,性价比评分为 4.7 分,客户服务评分为 4.4 分,易用性评分为 4.1 分。

G2 评价

在 G2 评价平台上,75% 的用户为 Unity 打了五星,另外 20% 的用户打了四星,只有 3% 的用户打了三星。UE 的评价较少,但反馈也不差:69% 的用户为 UE 打了五星,26% 的用户打了四星,4%的用户打了三星。

价格

UE 完全免费使用,不过收益超过 100 万美元之后,会收取 5% 的特许权使用费。Unity 也是免费的,此外它还为专业人员提供了 Unity Pro 付费版,后者的功能更广泛、更强大。如果要将 Unity 3D 游戏升级到 Unity Pro,那么你需要支付 1,500 美元(或每月 75 美元)的费用。

Unity Unreal 对比表

Unity Unreal
图形 基于物理的渲染、全局光照、体积光(需安装插件)、后处理 基于物理的渲染(点击虚幻引擎渲染了解更多信息),全局光照、体积光(即开即用)、后处理、材质编辑器
独特功能 丰富的 2D 支持 人工智能、网络支持
目标受众 大多数为小型游戏开发者、程序员 AAA 级游戏制作公司、小型游戏开发者、艺术家
编码 C#、Prefab、Bolt C++、蓝图
社区 Reddit 官方账号粉丝超过 20 万 Reddit 官方账号粉丝约为 10 万
性能 不像 Unreal Engine,扩展性不足 支持分布式执行 (Incredibuild)

结论

那么,该得出结论了……Unity 与 Unreal,到底哪个更好?

首先,我要声明一下,我个人更偏向 Unreal。部分原因就是Unreal 可以集成 Incredibuild,除此之外,还有其它原因。我是图像控,而图形正是 Unreal 最擅长的。同时,Unreal 最近推出了 MetaHuman Creator,可以将实时的数字人类创作时间从数周甚至数月缩短至不到一小时。我感觉 Unreal 确实在大力投入,以提升性能。而这已经体现出来了。Unreal Engine 5 即将面世,希望可以为我们带来更多惊喜,做出更多改进。

不过,Unity 也有很多优点:2D 平台、学习曲线、简单易用、社区、资源库,等等。是的,Unity 能够达到如今的市场占有率,也是有其原因的。

归根结底,如何选择,要取决于你自身以及自身需要。你是小型独立开发者吗?你是大型游戏制作开发者吗?你想开发 2D 游戏吗?(或许)你正在寻求最精良的图形吗?回答完这些问题,你就知道如何选择了。对了,如果你选择的是 Unreal,千万别忘了搭配 Incredibuild 使用哦。

常见问题

2023 年,Unity Unreal,哪个游戏引擎更好?

具体取决于你的工作、目的和用途。大多数程序员更喜欢 Unity,不过大部分艺术家更偏向 Unreal。Unreal 一般能制作更精良的视觉效果,是公认的“大型游戏公司的大型引擎”。而 Unity 在小型独立开发者中更受欢迎。

Unity 游戏引擎的优点是什么?

Unity 是免费的,且简单易用。对于初学者来说,Unity 是一个很好的选择,因为它采用的是 C# 语言,人们普遍认为这种语言比较简单。因此,如果你想要快速构建原型,Unity 就很不错。

Unreal 游戏引擎的优点是什么?

相比 Unity,Unreal 可能更复杂,不过它的图形效果更好,可以在更短的时间内,生成更逼真、更精良的图形。Unreal 被视为 AAA 级游戏引擎,代表的是那些打造精美游戏的大型制作公司,并以其逼真的画质而闻名。

为什么 Unity Unreal 更受欢迎?

Unity 比 Unreal 更简单易用,或许这就是它越来越受欢迎的原因。这款软件用途广泛,各种技术水平的开发人员都可以利用其创作游戏。此外,Unity 采用 C# 语言编写,而 UE 使用的是 C++,前者也更容易学习。

作为初学者,我应该使用 Unity 还是 UE?

Unity 就是专为初学者设计的软件,因此,对于初学者来说,Unity 会比 UE 更容易上手。Unity 套件中有大量工具,可以帮助开发人员学习游戏开发的基础知识,同时,也提供了各种构建复杂沉浸式游戏的能力。

我可以在 Unity 中使用 UE 资源吗?

一般来说,可以在 Unity 软件中使用 UE 资源。根据 Unity 资源库说明,用户可以将资源作为“电子游戏和数字媒体的嵌入式组件”使用。