在现代游戏和虚拟现实开发中,使用游戏引擎创建游戏已变得越来越普遍。如今,大量的游戏引擎可供选择。但是,目前有两个最受欢迎的选项——Unity和Unreal Engine。今天,我们将研究两者的优缺点,以帮助确定哪种引擎最适合您。
在我们开始之前,让我们先将几件事弄清楚。这决不是要确定哪个更好的竞赛,它们是两个截然不同的非常好的引擎,各有优缺点。哪个更合适通常取决于您的个人喜好或所创建的游戏类型或程序需求。
此外,Unity和Unreal绝不是唯一的选择,它们只是最受欢迎的两个。
Unity于2005年开始作为商业产品投入使用。它对我和当时的大多数人都没有特别的关系,坦白地说,因为那是当时的Mac专有产品。但是,在2007年,Unity被带到Windows平台,此后真正开始发展。第二年,Apple App Store上市,随之而来的手机游戏也吸引了淘金者。
从一开始进行设计,就使游戏开发更加平易近人,将其开放给更广泛的受众,我认为很少有人可以说他们在这方面取得了成功。在此过程中,他们还启动了非常成功的广告平台,并创建了所有引擎的单一开发商市场。
从那时起,他们继续添加功能,也许更重要的是针对平台,以至于Unity可以针对您在此之前听说过的几乎每个平台。近年来,人们一直在关注引擎带来更好的性能和渲染技术,从而使Unity成为真正的AAA引擎。诸如DOTS和可编写脚本的渲染管道之类的功能已极大地改善了视觉质量。
Unreal Engine的历史更为传统,它是专为游戏引擎提供动力的。它于1998年发布。当时,有两家公司将其引擎技术授权给其他开发人员(NetImmerse、Renderware、LithTech、idTech)。就idTech而言,已获得了用于创建ID软件游戏(例如Quake / Doom)的代码和工具。另一方面,Epic Games将更多的资源集中在具有完善工具和支持的引擎“产品化”上。要记住的另一件事是,在那些日子里,许可游戏引擎需要支付6至7位数的许可费用。在这一点上,Epic成为一家游戏和游戏技术公司,这种结构一直持续到今天。
如果您逐渐了解使用各种版本的Unreal Engine制作的游戏,那将是游戏界的佼佼者。诸如虚幻竞技场,Deus Ex,生化奇兵1/2/3,分裂细胞,蝙蝠侠阿卡姆游戏,无主之地系列,战争机器系列,质量效应,真人快打,PubG,Fortnite以及山羊模拟器等游戏!在未使用内部技术构建的大型预算游戏中,Unreal Engine很容易成为游戏之王。但是,您会发现缺少的是移动主题。直到Infinity Blade出现之前,虚幻技术在移动方面还是一个相对陌生的领域,但是随着时间的推移,虚幻技术日渐完善,Fortnite的巨大成功真正将他们的精力集中在改善移动支持上。他们开始使用Unreal Engine3制作独立版本,但是随着Unreal Engine4的发布,许可系统发生了很大变化。Unreal Engine4不需要像UDK 3那样需要数十万美元的预付款,而是改为最初小的订阅+版税结构,然后最终使用了直接的版本。
程序体验
每个游戏引擎在开发人员(特别是编码人员)与每个引擎工作时的方式都大不相同。一个主要区别是,Unreal Engine的源代码可在GitHub上使用(尽管不是技术上开放的源代码),这意味着您可以自己更改引擎的任何方面,包括从头开始构建整个组件的能力。另一方面,Unity是封闭源代码的,除非您为源代码许可支付大量现金(传闻中有6位数字)。但是,它们正在缓慢地发行越来越多的东西,许多软件包都是开源的,而Unity的某些部分仅作为参考开放(您仍然不能自己编译引擎,也不能修复bug)。
在游戏编程方面,有两种主要的虚幻引擎编程方法:C ++和Blueprints。C ++在其下面构建了一个完整的垃圾收集系统,并具有一个现在由Live ++支持的实时重载系统,这使C ++感觉很像一种脚本语言。Blueprints是基于可视化图形的编程系统,可能是最佳的可视化编程选项。它还能够被编译为C ++代码,从而降低了使用它的性能成本。Unreal Engine中的生成时间不是很好。
在Unity中,曾经有几种受支持的脚本语言,C#,Boo(类似于Python)和UnityScript(类似于JavaScript / ECMAScript)。近年来,Boo和UnityScript的支持都被放弃了,而C#成为开发游戏的主要方式。从好的方面来说,由于Mono是免费提供的,因此Unity现在拥有C#的当前实现,而不是将其滞后于语言开发近十年。Unity当前正在向DOTS或面向数据的技术堆栈过渡,该组合是C#,ECS或实体组件系统的高性能子集和以Jobs系统为中心的并行计算的结合,有望实现本机C ++级别的性能。Unity中的生成时间非常快。
特征
在这一点上,我通常会对每个游戏引擎之间的可用功能进行巨大的清单比较。事实是,这可能是对时间的完全浪费。如果启动了新平台,则两个引擎将在一个发行版中支持该平台。这两个引擎都绝对装有工具和功能……动画工具,剖析器,DCC导入工具,地形,物理,音频,VR,过场动画,版本控制集成……它们都具备。就功能规格而言,Unity和Unreal很容易成为功能丰富的游戏引擎不相上下。
Unity在两个方面胜过Unreal——2D和Web。在最新版本中,Unreal中的HTML平台被分解为一个社区项目。在2D方面,Unity在这方面的更突出。Unreal具有Paper2D,但几年前这里的开发似乎已停止。2D可以在任何一个引擎中完成,但是在这方面,Unity似乎是更好的选择。Unreal似乎仍然具有优势的领域是视觉质量……目前,它在渲染AAA质量图形方面具有更好的性能。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上运行虚幻编辑器。
请注意,使用任何一个游戏引擎,您仍然需要拥有有效的控制台(Microsoft,Sony,Nintendo)开发者许可协议,然后才能为这些平台中的任何一个进行开发。
社区
Unity和Unreal都有一个充满活力的社区,并且所有书籍,教程和其他材料都与大型社区一起存在。也就是说,Unity的社区要大得多,可用的出版书籍可能多出3-4倍,以及大量的社区驱动的教程。但是,这两种引擎在提供学习材料方面都做得很好,因此学习任何一种引擎在寻找良好资源方面都不会有太大问题。这两个社区都足够大,因此通常有回答技术问题,使经验丰富的Unity开发人员比Unreal开发人员更容易得多。
社区的另一个方面是可用的开发人员市场。Unity应用商店几乎是该概念的先驱,它是免费和商业脚本、模型、关卡、图形等的巨大资源。Unreal也有一个开发人员商店,但它只是Unity市场的一小部分。也就是说,Unreal使开发人员在每个月的第一天就放弃市场内容,从而随着时间的推移为开发人员提供了大量的高质量免费资产。
发行游戏
两种游戏引擎都有大量已发布的商业案例。Unreal在预算庞大的AAA空间中占据主导地位,并且正试图越来越多地进入独立和移动空间。相反,Unity已发布了大量的移动游戏,并成为中小型开发人员的首选引擎,尤其是一些知名的专业KickStarter游戏。
Unreal:
堡垒之夜
真人快打系列(UE3衍生引擎)
王牌实战7
方舟:生存进化
蝙蝠侠:阿卡姆城/庇护
战争机器4/5
王国之心3
PUBG
盗贼之海
街头霸王V
无主之地3
染血:夜晚的仪式
Unity:
炉石传说
杯头
永恒之柱1和2
火警
暗影奔跑(多个)
战技
奥里和盲人森林
喀布尔太空计划
复核
城市:天际线
可以肯定地说,发布的Unity比Unreal的还要多,但是Unreal在大众市场AAA标题方面处于领先地位。
价钱
Unity和Unreal Engine都采用了完全不同的货币化方法,每种方法根据您游戏的最终尺寸,范围和总销售额而各有利弊。
我们将从Unreal的定价方案开始,因为这是最直接的方法。在获得一定收入后,Unreal将采用直接的版税计划:UE4是免费使用的,在每个日历季度每款游戏来自商业产品的首个产品收入达到3,000美元后,就可以按产品总收入的5%收取版税。如果您希望您的游戏能够发行绝对数量的副本,那么您还可以与Epic协商统一费率的前期许可费用。
Unity具有更传统的按座位订购的方法,通常有多种计划可用于开发人员的收入水平。Unity刚刚在2020年1月1 日提价,并摆脱了年度计划的定价。 对于收入或资金每年不超过10万美元的开发人员,可以使用个人或免费服务。接下来是PLUS等级,每月40美元。此层为您提供了附加功能,例如访问其高级学习,分析,云托管等的功能。最大的不同是,使用此许可,您每年可以赚取20万美元以上。然后是专业级别,每个开发人员每月150美元。同样,它附带了许多附加功能,但完全消除了收入限制。最后,可以选择与Unity协商源代码许可,其条款不是公开的。
利弊
以下是每个引擎的主要优点和缺点的简要概述:
Unity ——优点
支持每个主要平台
庞大的社区和支持网络(书籍教程等)
迄今为止最大的开发商市场
最容易租用,易于获得的认证和培训课程
对2D游戏开发的更好支持
可以很好地适应策略标题,RPG等
更快的开发周期,更快的构建时间
广告网络…Unity广告对于移动开发人员而言意义重大
开放且快速的开发迭代,对于常规的alpha和beta版本非常透明
引擎的模块化重新设计应能加快发布速度
Unity ——缺点
开箱即用的视觉效果不如虚幻效果
无法从源代码构建或修复错误
没有主要的AAA头衔指向
视觉脚本支持才刚刚开始
模块化的开发方法使项目更容易破解,依赖关系越来越严重
新的编程模型(DOTS / ECS)将要求现有开发人员进行主要的重新学习过程,并且目前比GameObject / MonoBehaviour工作流程复杂得多
C#…C#或C#,要使用C#吗?
Unreal——优点
支持每个主要平台
提供源代码,完全公开的开发周期
更现代的编辑器,更少的遗留问题
出色的性能,开箱即用
数百种专业标题,种类繁多,风格多样
每月赠送免费资产
如果游戏在Epic Game商店上发布,则可以免费使用明智的许可
Unreal——缺点
2D几乎被遗弃了
引擎的设计非常注重第3 和第1 人称
对HTML平台的可疑未来承诺
极慢的构建时间
资产导入可能会非常缓慢
买卖双方的资产交易市场较小
不支持C#
较小的开发人员社区,很难找到经验丰富的开发人员
结论
Unreal和Unity是两种产品,随着迭代更新,它们在许多方面变得越来越相似,而不是不同。最大的区别在于他们的起点。Unity开始了针对业余爱好者市场的生活,并在那里取得了巨大的成功。现在,围绕Unity的许多开发都围绕着将其扩展到AAA级的工作。支持更大的项目,更高保真度的图形以及更严格的性能控制。但是,从Unreal开始运行的第一天起,Unreal首先就是AAA游戏引擎,其重点是高性能和图形保真度。随着Unreal4的发布,人们将极大的精力放在使它更易于使用,文档更完善,更易于访问上。有了每个新功能,您几乎可以像发条一样期待其他引擎效仿。他们俩背后都有巨额资金,而且两家公司破产的风险很小甚至没有。两者都以惊人的速度添加了功能,尽管通常这些功能可能还需要几年的时间才能稳定到足以在生产环境中工作。两者也都在大力推向服务市场。当前,Unity提供的一项主要功能是虚幻引擎,它不是一项广告货币化服务,该服务在移动领域非常庞大,而在台式机和控制台平台上则不那么重要。根据几年前进行的这项调查,Unity 3D当然是最受欢迎的产品。