UnReal与Unity游戏引擎对比分析

       游戏引擎的主要功能包括图形模块、AI模块、物理模块、寻路模块、输入模块、网络模块、UI模块、渲染模块、声音模块、编辑器模块等。Unity和UnReal两款开发引擎的功能和性能对比如表所示。

功能性能

Unity

UnReal

优劣

多线程渲染

支持但是一些Android设备不稳定有概率崩溃,多线释不彻底多核利用率低

更完善

Unreal

渲染管线

正向、延迟、可定制

正向、延迟、可定制

相似

Shader

以UberShader的方式提供shader变种管理,也可以通过插件实现ShaderTree

使用蓝图完成shader的编译,也可自己实现,一般会项目自己优化

各有优劣

各种渲染效果例如:后处理体积零,体积光阴影等

支持基本的,可以自己或通过插件实现

官方支持更多,但性能还不稳定

Unreal容易实现但需要优化

面部表情,换装

需要自己实现

需要自己实现

Unreal更容易实现

PBR、GI

官方支持

官方支持,但性能还不稳定

相似

SSS材质、次表面散射

插件或自己实现

官方支持,但性能还不稳定

Unreal更容易实现

动画:混合动画,骨骼动画,IK、布娃娃等

官方支持,使用简单旧性能不高扩展较难

官方支持,但相对复杂性能不确定

Unreal更容易深度优化和扩展

大规模地图世界分层管理

支持较弱,需要自己实现

强大的大世界支持和LOD管理

Unreal

地形

支持但功能很弱优化也弱

强大

Unreal

天气

需要自己实现

需要自己实现但更容易

Unreal更容易实现

特效

Shuriken简单易用

功能更强大,支持GPU粒子

Unreal

植被

第三方插件

强大的官方支持

Unreal

CG制作及相机动画

Timeline

Matinee,蓝图

相似

UI

UGUI上手简单,优化比较难

编辑器比较难用

Unity

性能

多线程部分性能较弱,因为架构以及C#语言和C++通信,C#语言本身,GC等问题,整体性能有一定折扣。

引擎本身非常庞大,拥有非常多的组件不进行深度优化的话性能也不强。但是优化好的情况DC比Unity可以提升一倍左右适合多人同屏(Android目前还有较大的化)问题,比IOS差一个量级)

Unreal(需要深度优化)

物理

集成Physx3.3但只包含核心功能,布料模拟、射线投射、物理粒子、复杂碰撞,物理步长等都支持。但是 APEX可破坏物,Flex流体,载具不支持(只有 WheelCollider)较难扩展。

集成Physx3.4,支持更好更全面,更容易扩展,提供 PhAT的物理资源编辑器

Unreal

声音

生成FMOD,但一般开发都会选择FMODStudio或者 wwise

生成FMOD,但一般开发都会选择FMODStudio或者 wwise

相似,一般会选用第三方组件

Al

引擎本身很弱但是有丰富的AI插件,可以根据项目自己定制

引擎自身集成BehaviorTree

相似,一般 MMO会定制

寻路

NavMesb

NavMeshBoundsVolume

相似,一般 MMO会定制

网络

提供UNet但一般很少人用

提供强大的网络解决方案,但是更适台FPS,一般 MMO不会使用

相似,一般 MMO会定制

跨平台和适配性

非常强大简便的跨平台和适配性

移动平台兼容性更差,显示效果差异和问题较多。目前Android版本适配和优化较差还在开发中

Unity

热更脚本系统

第三方集成xlua等

UE4去掉了uScript,蓝图性能可能有问题,不合适复杂逻辑。一般也需要集成lua

相似,一般会项目组定制

编辑器

编错器非常精简但是使用简单属于扩展,并且有现成资源和积累

编辑器更复杂功能强大,但学习门槛会高一些,开发 MMO需要定制

Unity

场景管理

容易实现但动态加载支持较差,容易卡顿

天然支持,成熟完善,比Unity强大很多

Unreal

插件

在移动端更占优势,插件更全面

Unity

开发效率

C#开发效率高,不容易崩溃

C++需要编译,开发难度高

Unity

学习和时间成本

学习成本低,资料比较完善

上手较难,开发C++逻辑要求更高,对美术和策划要求更高

Unity

人员招聘

容易

Unity

在高端渲染效果和渲染技术上Unreal更有优势,性能更佳,画面效果完全达到3A游戏水准,光照和物理渲染即便在缩水的状况下也足以秒杀Unity,但是相对低端设备的兼容性会略差,特别是Android设备。Unity要实现相同的效果需要项目开发团队自己做很多开发工作。

Unity更容易上手,前期开发更快速,更容易做出适配更广的游戏,但一些次时代技术需要自己实现。而Unreal学习成本较高,开发效率较低,但是更容易做出顶尖效果的游戏,更适合开放世界,大型项目。

如果开发超高画质超高品质、开放世界的3A级游戏,在项目周期和成本比较宽裕的情况下,如果图形技术积累较弱,建议采用Unreal引擎;开发周期较短,或者有着深厚的图形技术积累和技术支持,建议使用Unity引擎。

猜你喜欢

转载自blog.csdn.net/weixin_41580032/article/details/127471080