个人感觉egret(白鹭)不如cocos creator好,大家跳坑看清楚啊

如题,只谈论2d产品,本人搞了一年cocoscreator(从无到有的一款中重度游戏上线),由于项目需要转而搞egret(中途加入)。
刚开始的时候感觉各种不适还有点浮躁,一边安慰自己可能是自己对cocos先入为主了等熟悉就好了,一边沉下心来研究对比。
过了一段时间之后,慢慢了解了白鹭的各种设计风格,可能当时不是特别深,基本感觉还行,能用,而且稳定性也不错,毕竟官方出了好几个更新版本,都可以一键升级过去,也没什么大毛病。稳定性确实比cocos要强不止一点半点。
再后来随着对egret更加深入的研究,发现又到了最初接触egret的感觉:不适应!!!底层框架设计的毫无章法可言,ui系统就有两套api,如eui.Image,egret.Bitmap,关键是同样功能的东西名字还不一样。资源管理同样是两套,RES.load ,AssetsManager.load。还有内部函数命名风格,现在IDE这么发达,风格这种小事我就不多说了。再就是引擎内部各种class的继承关系,复杂的一批,不像cocos干净利落。还很多,比如锚点方式、龙骨动画(虽然是他自己的产品,但是还是有得喷)等等等等,有空再聊。
这一切症结我想可能就能三个字来说明:不重构!不重构得来的稳定。打补丁打出来的稳定。到最后的结局就是:这个引擎补丁打不动了,只能放弃掉,然后新研引擎,这个是够重构跟新研没有区别了。。。egret离这一步越来越近了。很多必要的功能都没有跟上,比如:没有图文混排的富文本、没有小米快游戏的小包模式(支持远程资源服务器)、没有组件式开发、没有专业IDE、看似灵活实则是复杂与偷懒的编译管线等等。
连资源打包都要写代码来处理,啥都要配置一番,没有体验到打开设置面板√选项的感觉,定了太多非标准规则就尽量用一个友好的UI皮封起来给用户,程序员很累。。。
这一点我很赞同cocoscreator的做法,跟着大厂U3D的样子做,起码大家在IDE上差不多,这是经过了时间的验证,站在巨人的肩膀上有什么不好的。对程序员来说是友好的,是照顾的,省得程序员受罪。就说prefab这东西,还有onStart、OnUpdate。。。不管是cocos转unity还是反过来,一看就是知道是啥都能继承点东西过去。。。没有标新立异,挺好的。但是稳定性太差了,我之前用的的2.0.5改了很多底层才稳定下来
当然,白鹭也有好的方面,稳定!UI布局友好等等。
以上都是个人观点,有错误或者不对的请指出。共同探讨!
都是国产引擎,没有故意踩谁捧谁,客观的交流,指出问题,希望都越来越好。造福全球开发者。
至于为何发在cocos论坛,因为这里热闹。。。

3赞

我是egret 和 creator 的重度用户。我给你分析分析吧:

楼主还是对egret包的结构不了解啊。

「ui系统就有两套api」:知道为什么吗?一种是纯的egret.Bitmap,有点像原生对象,还有一种是带有更多功能的,主要体现在 ui 约束上的 eui包下,也是egret.Bitmap的父类,主要功能是包含了eui对象的接口。

算了,不多解释了,我觉得我也不是一二句能说的清楚的。需要你慢慢理解。

总而言之:egret 是面向对象设计,creator 是面向组件设计,这是最大的差异。

我也更喜欢creator 这种。:smile:

听说Egret他们公司搞区块链币被抓了,怕是要蹲进去了,所以Egret肯定是凉了

既然有人争论egret 和cocos creator哪个好,这就说明两个东西都有待进步。

2赞

因为发在别的论坛立刻就被封号。不像 Cocos 还能黑两句,只要别太过分

cocos前段时间不是也弄了个cocos币吗?恁们悠着点啊~~

creator难道就不能面向对象么?同样可以

我是难受,cocos转了web前端,公司有个egret项目让我维护。问题这也没人懂

其实就是先入为主,最开始用哪个引擎就对哪个引擎有好感,特别是用得久后,这种感觉就更强烈,因为新接触,很浮躁,特别是还要赶进度做东西的时候,其实是没有弄懂别人那套设计,新手说遇到坑大部分是因为自己的原因,因为用上一个引擎的经验和设计在另外一个引擎写代码不一定适用,随着对引擎的熟悉,就会越来越觉得别扭,所以要有平常心,及时的重构自己的代码来适应自己对新引擎的理解。
目前三个引擎都还存活在,就说明各有各的用户群体,没有谁是有大优势的,所以对于自己的项目喜欢哪个就用哪个,对于公司项目就只能自己平静心的去适应了,千万不要抱着敌对心态,那样你会越来越抱怨,越来越不喜欢这个引擎。

一个引擎如果提供N套不同方案,不是设计水平低就是管理水平低,例如白鹭的ui,我们研究了一周才搞清怎么玩,做个ui各种复杂操作就放弃了。

laya更甚,内嵌、分离、文件仨模式,还要混进个半成品组件系统,最后四不像也没分清哪种更好,每一个新用户都得花时间分析这几种的优劣再选一个…导致内部几个项目组用不同模式,没法沟通。laya最傻的还不是这,它的sprite不能叠加颜色,要是做个彩色方块游戏一个色出一个图… 遂弃之。

作为对比,unity的两套ui定位合理,你上来就学ugui就完事了。自带的GUI紧急情况玩一玩。

作为从cocos第一个版本就跟进的僵尸用户,起码cocos没有什么硬伤,也没什么乱78遭的设计让人头疼。就是一些api的技术债要还。

实践出真知,当你都用过几家你才会发现,最好的选择是,别做游戏。:upside_down_face:

6赞

道理是这么说,但引擎作为工具,程序员摸引擎比摸妹子还多,总是能分出优劣的。油管或外网就很喜欢对比引擎,也许是他们更重视少加班增寿命吧。引擎的因素就很大了。

至于用户群体,先不说腊鸭/白鹭服务的那群被淘汰的as3程序员,我见识了不少码农混了游戏圈4、5年没了解过unity,有的以为腊鸭的编辑器就是引擎该有的样子,甚至不太知道vscode…

因为没对比,在他们眼里各种设计的槽点都能忍受,这类用户支撑了这两家不少份额。

大多数码农还是有见识的,但是,大部分做公司项目的明知道引擎烂、代码框架烂,还是会继续用到下一个项目,因为懒得改,也懒得学习,更懒得对比引擎优劣。刚开始可能是自己没搞懂引擎,当搞懂了发现坑,他们宁愿跟老板讲这是客观原因,只能“尽量优化”。这种态度,苦的是码农们啊…

所以引擎不好不合适就及时掉头吧,就像Erlang写的服务器、unity里乱78遭的lua框架,你花了大精力天天加班还是用得不爽,还不如换一套罢了。。。做几个页面的h5小游戏,还有人用erlang做后台你们信吗。

egret确实是麻烦 他把flash那套缺点都继承过来了 我用过一阵子 太麻烦 ide也不好用
laya是flash的进化版 那四个模式 很简单 就是分离ui的布局代码 开发速度非常快

放心,引用老板的回复

3赞

用creator面向对象简直太怪蛋了。

用creator开发,竟然用第三方的UI编辑器,比如FairyGUI,真简直是看不起Creator,这么强大的UI编辑器都不用**

(重点是放弃了核心的组件开发)

**,
还不如用白鹭、腊鸭。

:grinning: 我也很喜欢 cocos 的社区

躺枪。如果你说UI制作层面来说,我们的要求是策划、美术也能拼UI,能将UI制作流程完全独立出来,所以什么组件式的不关心,也没有需要用到代码的地方;如果是说UI使用层面来说,这和组件式开发完全没有冲突,任何代码模式都可以使用。FairyGUI在creator,egret,laya,unity都有大量用户,并没有看不起creator。只是不是所有游戏都是h5游戏,而且很多公司现在都会出现各个引擎都试试的心态,一套UI降低了他们的迁移成本。

我也质疑过我是否先入为主,然而随着时间的推移发现并不是。用个引擎而已,谈不上敌对,但是会有比较,就跟前男友和现男友一样,总有个长短对比的。我从unity3d转到搞creator的时候,也没觉得creator在设计上有什么大问题,只是感觉不稳定而已。

哈哈,兄弟推荐下做什么。

这点确实有点牛逼。

但是用Cocos Creator 开发,放弃了面向组件式开发(说通俗点,就是任何结点上可以挂载脚本,脚本属于结点的某一个组建),真是有点大材小用了,不过的确,从程序设计角度,无所谓了,都能面向对象也都能上。

补充一点: Creator 不仅仅只是h5

国内有什么好的unity论坛吗?