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的发展历史感兴趣,可以看看这篇文章。
https://web.wpi.edu/Pubs/E-project/Available/E-project-030614-143124/unrestricted/Haas_IQP_Final.pdf
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,它们目前正处于测试中。
Unity平台:
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没有的主要功能是广告货币化服务,该功能在移动领域很重要,但在桌面和控制台平台上不太重要。