UE4(即虚幻4)
是一套为开发实时技术而存在的引擎工具。目前广泛应用于3D建模渲染、游戏开发中。它完善的工具套件以及简易的工作流程能够使开发者快速修改或查看成果,对于代码的依赖性很低。而完整公开的源代码则能让使用者自由修改和扩展引擎功能。
Unity
是面向开发人员的 3D/2D 游戏引擎和强大的跨平台 IDE。作为一个游戏引擎,Unity 能够提供许多使游戏正常运行的最重要的内置功能。这意味着诸如物理、3D 渲染和碰撞检测之类的东西。
UE4和Unity的区别-他俩是竞争对手(个人体验-勿喷)
unity基于的是相对比较开放的原则,ue4基于的是相对比较封闭的原则,也就是说,一般意义上,不修改源代码的情况下,unity可以自定义的自由度比ue4高,ue4相对封闭,很多东西都提供了完善的工具,但是并不太提供自定义和修改。其实很难说哪个更好,举个例子,unity的character controller基本需要自己写或者通过plugin完善,类似的例子还有很多,比如behavior tree,unity也没有提供官方的解决方案目前,网上大多数的plugin确实是好事,但是大部分也是看上去能用,要真的打磨到production level也需要不少精力。ue4呢?很多工具都已经做到很不错的质量,能够实现的功能一般都比unity的第三方插件好,但是也是有那个问题,需要做一些修改的时候如果不改代码就很难,虽然封装的很不错但是有点“强迫你follow它的架构的意思”。资料和文档还有视频和社区,unity其实已经非常非常成熟了,经历了这么多年的迭代,有全球最大的社区,最多的资料和视频,非常非常多的人使用unity,可以这么说,一个新游戏需要踩的坑基本全世界肯定有人踩过了,这对团队来说是极大的优势,但是有一个很严重的问题,一般的开发团队没有源代码,真正遇到坑之后,基本没有太好的办法去解决,这对一个成熟的团队来说是很致命的,所以现在很多使用unity的成熟团队都购买了源代码。ue4我记得的时候我也研究过一段时间,当时的感觉真的是,资料非常少,但是过了这么多年,再转头重新研究,发现真的是完全改善了,这也得益于epic大量的投入和开发者越来越庞大,一般的问题基本都能找到答案,但是还有一个天然的优势,就是源代码的开放,就算你不修改,阅读源代码也比很多文档直接好用很多,同时这也是一把双刃剑,对于不熟悉c++的团队来说这反而成了一种阻碍,大体来说还是unity的支持更好一点点,但是也差不太多,特别是这两年epic的急剧发展。最后稍微介绍一下gameplay framework方面的对比,unity采用gameobject和component的架构,ue4也采取了类似的架构,但是更加hybrid一点,无论是历史遗留原因还是其他原因,ue4有很冗长的继承结构,actor也能有component,但是很多例子也有直接使用actor自身的,不完全依赖component。unity采用的是prefab,ue4相应的功能有blueprint,这个结合我自身的经验,ue4的robust程度和方便程度远远大于unity,他的每一个模块的自定义editor真的比unity的方便太多,特别是setup方面的。从引擎内定的editor来比较ue4的迭代效率比unity高很多,特别是中大型项目的迭代速度。另外个人感觉如果比较熟悉的话小团队制作一些游戏prototype速度也不会比unity慢。Cocos
是由厦门雅基软件有限公司推出的数字内容开发一站式解决方案,具备开源、免费、轻量、高性能等特点,服务了2D和3D游戏开发、智能座舱、在线教育、XR、数字人、数字文创等领域开发者 ,Cocos在全球203个国家和地区,拥有150万开发者,覆盖全球超过16亿终端用户。
Cocos整合了Cocos Creator、Cocos 2d-x、Cocos Studio、Cocos Code IDE等框架及工具,为开发者提供了全套的游戏开发解决方案。后续还会开放接入更多的第三方工具和服务,简单易用、使用流畅。
Cocos Creator 编辑器
Cocos Creator 是一款轻量、高效、免费开源的跨平台游戏引擎,同时也是实时3D内容创作平台,不仅支持2D、3D的游戏开发,同时在HMI、IoT、XR、虚拟人偶等前沿领域,均可提供一套完善的行业解决方案。Cocos Creator具备了易于上手的内容生产工作流,以及开发者工具套件,可用于实现游戏逻辑和高性能游戏效果。
Cocos 2d-X 引擎框架
Cocos2d-x是一套成熟的开源跨平台游戏开发框架。框架提供了图形渲染、GUI、音视频、网络、物理、用户输入等丰富功能,被广泛应用于游戏开发及互动应用的构建。
Cocos ICE 互动课件编辑器
Cocos ICE是Cocos Creator之上的一套扩展插件,旨在让老师无需写代码也可以快速制作跨平台的互动课件,可为在线教育公司降低内容生产的成本。
Cocos Runtime
Cocos Runtime是一套提供了安全运行环境、可做内容多开的成熟商业化SDK中间件,运用于小游戏/快游戏、在线教育、智能硬件IoT等需要呈现「点开即玩」型数字互动内容的诸多领域。
Cocos Creator XR
通过可视化工作流、组件化功能和跨平台发布能力,帮助AR内容开发者,降低开发周期和成本,用户能在所见即所得的可视化界面中构建全新的XR项目,或是将已有项目工程转变为XR版本,并一键打包发布到硬件平台,不用担心不同SDK的设备差异。
Cocos和Unity的区别(个人体验-勿喷)
开发2D游戏:
Cocos Creator免费,Unity收费;
Cocos Creator包体小, Unity包体大;
Cocos Creator 能发native平台外,还能发各大H5小游戏平台如抖音,微信,华为oppo, vivo,Unity开发H5平台的小游戏技术没有Cocos Creator成熟;
Unity 开发PC游戏的效果会比Cocos Creator好;所以如果你是做2D游戏,偏移动端,建议选Cocos Creator,能发更多的平台;
如果你做2D游戏,偏PC端,建议使用Unity。
开发3D游戏:
Cocos Creator免费,Unity收费;
Cocos Creator 做重度游戏的渲染效果不如Unity, 3D性能比Unity差些。
Cocos Creator与Unity 做中小型3D游戏技术成熟。
Cocos Creator 可以发布到h5平台(微信,抖音,小游戏),Unity发布h5平台不成熟
Unity做PC端游戏比Cocos Creator成熟。
如果是做重度的3D游戏,建议选Unity, 如果是做中小型3D游戏,可以选Cocos,能发布到各大小游戏平台。如果是做PC端游戏,建议选Unity。
LayaAir简称Laya
是Layabox旗下第二代HTML5开源引擎,是全球性能最高的HTML5引擎之一。LayaAir突破性的将2D、3D、AR、VR和页游、Native手游、HTML5游戏等诸多需求通过一个引擎得以统一。引擎已被腾讯、Forgame、37玩、仙海、胡莱、蝴蝶互动等200多家知名厂商采用。
其实Laya air的路子和cocos creator差不多,都是基于electron开发的一套js技术栈的东西。Laya air现在也比较成熟了,Laya air 1.0是从falsh游戏引擎发展过来的,可能我们这种从App游戏过来的人会很不习惯,但是从页游过来的人可能比较习惯,Laya公司以前也是搞页游的。编辑器方面也已经往Unity靠了,支持组件什么的。但是手感,比如缩放居然不是以鼠标位置作为缩放中心,稍微麻烦,但是还是能用的。然后编辑器主要差的是不支持插件开发,这个可能你不一定用到,但是你想用而不支持就很麻烦。动画编辑器也是差点,并且是在1.0的基础上开发的,有些历史包袱,2d方面的很多概念是自成体系的,和现代通用的方式不太一致,比如动画动效模板什么的,搞了一堆堆,其实cocos那边就是animation而已。然后Laya有个问题是居然不支持图片调色,想改变图片颜色必须用一个Filter,这个东西本质上是在FS里面用一个矩阵对每个片段的颜色进行变换。这个功能当然有用,毕竟可以实现很多效果。但是最常用的还是在顶点属性里面加入color,然后在VS里面对输出的顶点色进行调色,在FS里面再乘以texture色,这样性能好很多,因为这是常用的需求而且量可能很大,没必要浪费性能。2d给我的感觉就是能用,遇到坑就想办法绕,改引擎我觉得还得费点功夫,编译工作流还需要研究研究。而我们之所以使用Laya最主要还是因为要做3D。不过Laya最大的优势其实是可以把Unity当编辑器使用,然后用自己的unity插件,将Unity的场景和模型导出,并且还原度还不错。说实话这简直是大杀器,我们再结合Unity的插件功能,自己开发一些Unity插件然后导出数据文件,就把Unity变成了一个Laya场景编辑器,当然坑仍然是有的,比如拖尾效果不能回收到池里面复用,因为复用时会记住以前的位置导致一个很长的拖尾,再如unity的粒子修改器很多不支持,有的是部分支持,导出后在Laya这边看效果完全不对,再如H5看上去OK的效果到了微信小游戏那边就不正常了,但是还是能用的,可以拿Unity当3d场景编辑器啊。
egret-白鹭
是白鹭时代推出的一款使用TypeScript语言构建的开源bai免费的移动游戏引擎。通过白鹭引擎,开发者可以快速地创建可以运行在手机App的WebView或者浏览器中的HTML5移动游戏,也可以编译输出成基于Android、iOS、Windows、Phone的跨平台原生移动游戏。应用Egret引擎开发HTML5移动游戏,不但能让H5游戏具备牛逼的性能表现,并且效率很高。
简单总结一下
Cocos
优:Cocos这么多年的市场地位在那里摆着,Cocos的技术底子在那里,所以Cocos还是非常值得信赖的。 Cocos Creator是一个非常好的产品,可以参考Unity ,至于为什么还是请参考Unity
劣:尺有所长必有所短,往往自己的长处也就是自己的短处 Cocos IDE、Cocos Studio让开发者对于Cocos Creator 非常怀疑(万一哪天被干掉了,虽然@王哲说不会干掉,但是狼来了) Cocos布局H5算是非常早了,但是太早了(懂的人自然懂),后来遇到挫折一度搁浅,错过了发展的黄金时期,现在成熟度和Egret有些距离 。
Egret
优:正是由于Cocos当初H5推进的一度搁浅让白鹭能够出现《围住神经猫》这个爆款。至于各个公司发的PR什么引擎适合小游戏,什么引擎适合重度游戏,都是忽悠不懂技术的人。引擎成熟到一定程度,基本上所有引擎的性能差别微乎其微,大家比的都是服务。不展开了,这是产品理念。 上边说了爆款,后边H5市场上最成功的几个H5游戏基本都是Egret开发的,比如挂机类《愚公移山》、传奇类《传奇世界》《决战沙城》、模拟经营类《猫来了》《猪来了》、回合制《梦道》、年度爆款《传奇来了》自然选择了Egret。 与此同时白鹭的H5工作流也越来越完善,目前来看依然是最成熟的H5引擎
劣:上边说了Egret占据了非常好的时间点切入H5引擎市场,但是转眼间Egret引擎已经三岁了,而H5技术这三年的变化是非常大的,你需要预判技术的发展走向,是选择as、js还是ts,你选择DOM、Canvas还是WebGL等等,没有谁是先知,你可能做对了99件事,但是一件事错了就需要弥补。比如2.5那次版本升级,从GUI转向EUI,很多开发者不解,但是需要做,而这些事Egret、Cocos已经经历了很多次。
Laya
优: Laya的优势也非常明显,等Laya切入进来的时候H5市场已经非常明朗,先做Canvas然后准备WebGL 没有历史包袱,LayaAir满打满算还没有一年,按照前边Cocos和Egret走过的路快速走一遍,最重要的就是时间。Laya刚刚切入市场的时候推出了LayaBox,这个也是没有经验做了一个非常错误的决定,但是正是因为没有市场份额,所以去年中的时候直接砍掉了LayaBox也没有人会说什么,甚至大家都以为LayaAir就是LayaBox其实是完全不同的引擎。
劣: 时间太短,Cocos和Egret经过的路他没有走过,所以犯了推出LayaBox又砍掉的错误,还没有经历过Egret GUI转向EUI那种问题,因为LayaAir还不到一年,所以成熟度有待商榷。 工作流不完善,需要使用第三方工具自己去组建工作流 最大的劣势就是Cocos有原生行业霸主地位背书,Egret有H5最成功的商业项目背书,而Laya目前没有一个成功的商业项目(月流水1000w以上)。