美文网首页游戏设计&游戏开发Unity技术分享Unity3D游戏开发
Unity 2017与Unreal 4.x 详细对比——选择适合

Unity 2017与Unreal 4.x 详细对比——选择适合

作者: heibe | 来源:发表于2017-08-21 16:35 被阅读1390次

前言

Unity 今年正式推出了2017的新版本,Unreal 也已发布到了4.17,Unity持续保持着极高的市场占有量的同时,也有越来越多的国内开发团队选择Unreal进行开发。传统来讲,Unity对移动平台的支持优秀,而Unreal更适合制作3A大作。但是随着引擎的几次重大更新,Unity同样支持了很多优秀效果,随着手机性能的增强,同时有很多大团队选择Unreal开发了优秀的移动平台作品。故在此尽量详细记录引擎间的对比,以帮助各位更好的选择适合自己的开发引擎。(文章中出现的特性有不了解的可以在评论里询问)

功能性

我先从功能性谈起,这部分会包括引擎实际支持的特性和功能。

图形渲染

PBR 基于物理的光照模型

两种引擎都支持。

GI全局光照

都支持

SSS材质 次表面散射

Unreal支持,Unity需要自己写Shader

延迟渲染

Unity 可选择正向或延迟,Unreal官方文档写固定为延迟渲染,未验证

GPU粒子

Unreal支持,Unity不支持,可以插件或者调用原生API实现(官方文档未发现GPU的介绍,百度到默认是不支持)

后处理特效

Unreal支持很多种,Unity可导入相机特效脚本,支持基本的,可以自己写

体积雾&体积光

Unreal在近期版本添加支持,Unity不支持,可以使用插件

阴影

Unreal做了很多阴影优化,Unity没有,但是性能较好,效果较差

HDR

都支持

总结

两个引擎对当今基本成熟的渲染技术基本上都支持,区别在Unreal仍然原生支持了很多效果拔群但是消耗同样恐怖的特性,Unity则未做原生支持,可以用插件的形式实现。但是插件的代码质量良莠不齐,好的插件正版又很昂贵,基本不会去在项目中选择。

物理引擎

Unity与Unreal底层的物理引擎都使用了Nvidia 的 Physx ,Unity是3.3版本,Unreal是3.4版本,但是Unity的Physx只集成了核心内容,下面列出其中不支持的功能:

APEX 可破坏物

Unreal支持部分APEX可破坏资源的导入,Unity完全不支持(相关插件也没找到)

Flex流体

Unreal可以通过合并Nvidia的分支支持,Unity可以购买插件

载具支持

Unreal原生支持载具制作,Unity只具备WheelCollider,需要自己拼装或使用插件

物理资源

Unreal提供PhAT的物理资源编辑器

布料模拟、射线投射、物理粒子、复杂碰撞、物理步长等

都具备

总结

在物理引擎上两个引擎相差还是比较大的,次世代游戏吸引人的高自由度破坏和真实的流体物理Unity都不支持,如果有相关需求还是建议不要重新研究算法,直接使用完整的Physx。

动画

混合动画

都支持

骨骼动画

都支持

IK反向动力学

Unreal原生支持,Unity需插件

布娃娃系统

都支持

总结

在动画模块两种引擎支持基本一致,除了IK的功能,IK在游戏开发中是个很重要的功能,但是Unity也提供了优化IK的插件

地形

Unreal的地形系统比Unity强大很多,主要表现在可支持分层材质、分层物理材质、最大精度为8192x8192的高度图、LOD插值、LOD灯光、程序化植被,可以说Unity的地形系统完全是个简单版,同时Unreal原生支持流关卡,如果想做开放世界或者大地图的话,Unreal可以比Unity少付出很多劳动力

CG制作及相机动画

Unity2017开始支持、Unreal支持

框架

多线程支持

Unity只支持非MONO类的多线程,Unreal支持。各有优势,Unreal线程不好管理,Unity有很多费时操作无法放到多线程。

模块化

都采用了ECS的模块化

使用性

这一模块集中关注开发者使用引擎的难易

开发语言

Unity使用C#(请忽略js),Unreal使用C++(同样请忽略蓝图),开发者可选择自己熟悉的语言,个人感觉C#使用时更加直观且面向对象,C++开发难度相当大

Shader

Unity使用CG语言编写Shader,Unreal多用蓝图完成Shader编写,Unity也可食用ShaderForge等插件,各有优势

编辑器使用

Unity精简,Unreal复杂但详细

说一说蓝图

这个东西可以方便策划和美术对一些行为树脚本、模型参数进行修改,如果用来写逻辑的话不好追踪也不好优化维护,请程序员拒绝他。

使用环境

选择Unreal的话请确保你的显卡、硬盘、内存、CPU都为高水准设备,且有稳定的翻墙手段

结论

与Unity相比,Unreal具备很多很酷的效果,但是使用难度同样倍增,包括教程少,问题解决经验少等等。如果没有游戏开发经验的话,建议从Unity开始学起。同样如果你的项目中不需要使用上文列举的特性的话,建议使用Unity。现在有很多团队已使用Unreal为噱头,但实际上并没有使用到Unreal优势的特性,这是舍本逐末的。另外一些团队认为Unity的插件足够支撑起更多强大的功能,这也是不正确的。首先第三方代码涉及版权问题。而且如果插件不开源的话,无法追踪代码分析和优化性能。且使用插件性能总归是不如原生代码支持的。

相关文章

网友评论

  • Unity云中客:还可以从平台适应性方面和产品制作流程角度在比较一下。
    灵魂被征用:不错 挺全面的
    heibe: @Unity云中客 嗯嗯,有时间我会再写下

本文标题:Unity 2017与Unreal 4.x 详细对比——选择适合

本文链接:https://www.haomeiwen.com/subject/kdyfdxtx.html