有人对比过CocosCreator3D、laya、egret这几个引擎吗?

新项目想做3D的游戏,对CocosCreator3D、laya、egret没有比较全的了解,看社区大家也都有用。
想问下有没有人做过具体的对比?

或者说大家选cocos的主要原因是什么呢?可以讨论下吗

3d就选laya,2d就随便了,3家都差不多

2d方面
2d小游戏 cocoscreator 集成式开发优势大,开发效率高。
2d大型游戏用laya或者egret,cocoscreator编辑器跑不动太多文件资源,超过5000个文件基本跑不动卡死,不适合做。

3d方面
laya目前3d游戏名声在外,用的企业比较多,比较稳定,因为是和u3d结合开发的,api几乎参照着u3d写,对u3d程序员很友好,很多u3d程序转h5都选择laya,缺点是没有自己的3d编辑器,u3d编辑导出的资源无法挂载自定义脚本,只能导到laya后通过代码挂载,开发效率不高。

egret 现在很久没有在3d方面有什么消息了,都是旧的东西,文档也没更新,社区一片死水,怕用了遇到问题找不到帮助,还是不用了。

creator3d 出的时间比较短,问题还挺多,稳定性还不足,基本是走十步遇一坑,还有很长的路走,不过潜力比laya和egret好。有自己的3d编辑器,可以像u3d一样摆放物体和挂脚本,开发效率高

3赞

短期内3d还是laya吧,cocos的3dbug还很多,不适用于商用目前,如果项目离开发还早可以研究一下,说不定过完年就更新稳定版本了(狗头)

想问下工作流方面,laya 3d是不是需要同unity强绑定,比如导出资源这些?

大佬觉得3d选laya是出于什么考虑啊 想了解下对比cocoscreator3d来说 有什么特别大的优势

大的优势就是出的久,多人用,cocos3d现在才出,坑还没被填完

laybox 3D比较成熟适合做大型3d项目

cocos3d 目前做大型项目等死吧, 但是做一些轻量级的小项目还是可以的

95%的3d小游戏都是laya,这还不够吗

只用过ccc和laya,laya刚用不久,我说下我觉得laya的优缺点吧。

优点的话主要是在3D方面,比较成熟稳定,除了从unity导出资源功能受限制,文档也比较全面。
引擎方面内置了很多功能, 有用的比如事件、滤镜这些,打包后的自动合图,包体优化。

缺点划重点,也是我觉得很奇葩的。
1、2D的很多组件设计的很奇葩和想当然,比如什么button、tab各种乱七八糟的,看着应有尽有,能用的基本没有。大多需要自己封装。
2、API方面功能强大,但是tween和timer也就是定时器用起来限制很大,举个简单的例子就是无法对同一个回调进行多个定时器。
3、预览的过程其实就是个打包的过程,打包生成的bin目录一言难尽,可以理解为creator的library,但是bin目录不能直接删除,并不会随你的下一次预览再生成。还有莫名其妙的导出大小写问题。
4、编辑器也存在很多问题,结构不合理、默认节点的宽高显示Auto、某些操作引起的莫名其妙卡死、编辑器里可用的滤镜setter运行时不支持,需要自己在main里映射等等…UI界面不如用FairyGUI做。
5、laya的生态和creator没得比,进creator论坛就像回家一样。

总结就是2D项目和creator比确实很差强人意,也可能我creator先入为主。3D项目目前我用laya做着挺舒服,但是由于上述的不喜欢,非常想用c3d。

2赞

laya的UI系统是拿以前flash的某个开源的UI系统做的,叫做MornUI。UI是针对页游做的,不用考虑到什么自适配问题。但是移植到laya后,laya要面对的是不同平台和不同平台适配,这套ui系统就不适合了,而且每个UI组件是默认以左上角为坐标原点,编辑ui时非常不直观,用着很难受。

laya的组件也有类似u3d组件的生命周期,但是onAwake,是创建组件出来马上执行,不管有没有激活。unity的Awake和creator的onLoad是组件必须被激活才会执行,也就是activeInHierarchy为true。

还有laya组件的active设置为false居然不是隐藏对象,而是只是屏蔽掉物体脚本的生命周期,物体还是看得见,在消耗渲染。要隐藏只能设置visible为false,但是visible隐藏只是屏蔽渲染,但是脚本还在运行,要想彻底停止渲染和脚本,只有destroy这条路,很坑爹。

既然都分析出了 visible控制渲染,active控制脚本,那么两个都设置false不就完事了吗

laya的UI系统用的是页游时代比较成熟的UI系统,至于你说的奇葩,只是你不会用,或者别的用多了而已,UI系统那么多,有的喜欢用fgui,这都是个人喜好和习惯,我从flash转过来的用这个UI系统也是非常顺手呢,文档都不用看,这都是习惯而已。
论坛活跃确实没得比,这个比较认同

我这样用过,添加了一个函数
setActive()
{
this.owner.active = false;
this.owner.visible = false;
}
但是总感觉不自在,也不知它还有没有继续耗cpu,官方也没给解答。但是最少可以确定的是drawcall还是存在,问官方也没用。最彻底的方式还是destroy

本来就是按照flash那套搞的你肯定觉得习惯啊,我本来就是以creato先入为主的角度说的。而且抛开个人因素,我觉得很多东西设计的本来就有驳常理。

总之 creator 不适合做 大项目 适合做 小中 型 项目

Laya、Egret 完全不能和 Creator比较,工作流都不完善,怎么能称作引擎呢,顶多就是一个渲染框架附带点乱七八糟的工具。laya、egret 能做大型游戏 也不是因为编辑器强,而是简单,也就是说改造起来方便,大部分还是要自己开发。再说,你要换成pixi.js 然后自己去开发编辑器等东西,性能比这3个都强。

laya 的ui让人很不爽的地方就是不destroy就无法消除drawcall,设置active = false; 和 visible = false; 都没用

我接手过用fgui也UI的项目,那个用气来我感觉更痛苦,这都是习惯问题