吐槽一下,Cocos越来越臃肿,包体越来越大

本人是做Playable素材开发的,素材对于包体的要求是很高的,有html2.5M的,zip3.5M的,所以一直对于包体大小比较敏感,用Cocos开发,每次有新版本都会更新,但这个Cocos每一个新版本都会增大包体,相同的功能,不同的版本,那差别是相当大,今天特意来吐槽一下,反正官方爱管不管,3.6.3估计是我最后一个版本了。
我用了3.5.2,3.6.3,3.7.0三个版本来对比,3.5以下的包体更小,但我没有下载,有兴趣的可以自己下载测试一下。功能裁剪内容相同,构建web-mobile的大小对比如下:

版本 大小
3.5.2 731K
3.63 1,478K
3.7 2,225K

项目资源:(因为文件超过4M上传不了,我把build,library,temp都删除了)
Empty3.52.zip (3.2 MB)
Empty3.63.zip (25.1 KB)
Empty3.70.zip (23.1 KB)

3.5.2

功能裁剪开关截图

Web-mobile默认打包大小731K:

3.6.3

功能裁剪开关截图

Web-mobile默认打包大小1,478K:

3.7.0

功能裁剪开关截图


Web-mobile默认打包大小2,225K:

2赞

这里补充一下,从3.6开始,会多了这么一个文件,因为我是主包合并依赖,所以只有这一个文件,我猜这个文件应该都是材质与shader内容,从3.6以后,应该是从cc.js里面剥离出来了,所以cc.js变小了,但这个文件我相信多了很多不必要的字段,应该是可以好好压缩一下的。

image

在3.7.0版本,会多一个effect.bin文件,但我发现这个东西在web运行时竟然不加载,那这个文件打出来的意义是?是不是3.7.0发得太匆忙了,工作还没有做完?
image

感觉我就是给引擎组打脸呀。

2赞

就微信小游戏构建后,

1.2.0版本是1.92M,

3.7.0保留音频,基础动画功能,骨骼动画,基础3D功能,粒子系统,基础几何体,基础2D功能,用户界面,weboscket,其他剔除。大小是3.25M,是有点大的。

3.6.3配置同3.7.0,大小也是3.25M,

微信小游戏,3.6.3 打包出来就有了,500多KB,并且还有个天空盒的纹理800多KB

官方快来看看!!

mark一下

谢谢大家反馈,这些问题我们会在 3.7.x 跟进解决。
包体问题官方肯定会管。目前我们所有版本都会人工进行空包、2D 项目的包体检查,并且包含 4 个平台。之后需要进行自动化改造,把包体的检查覆盖到所有模块,才能确保不会反复出现同类问题。

3赞

希望早点解决吧,包体大小,是大多数人的痛点了吧,也不能每次更新一个版本号,就开发者去重新看一遍底层那里需要自定义删减吧 :sweat_smile:

什么东西 500 多?
800 多的是哪个天空盒?我们自带的天空盒目前应该没有 800 多的。

这里的,不知道是不是打包方式不对哈。一个json和俩个天空盒图片。俩天空盒总共800多KB。天空盒可以去掉,但是那个json,应该是引入的其他未裁剪模块,有点大。
1675054204(1) 1675054242(1) 1675054253(1)

功能裁剪3D部分,粒子系统占了400KB

那个json里看着都是材质类数据?贴图是你没有删干净吧,根节点取消勾选了吗?

1赞

天空盒贴图删除了,裁剪根节点取消勾选了。现在asset大约260KB,打包出来3.09MB,也就是空包差不多2.7MB。裁剪部分,保留运行状态统计,音频,webview,基础动画功能,骨骼动画,基础3D功能,粒子系统,基础几何体,基础2D功能,用户界面,websocket。目前打算做小游戏,需要战斗特效,UI界面,还有骨骼动画,所以保留了这些。没打算上CDN。

经过测试,目前构建后容易导出多余的默认天空盒,原因如下。

目前这个交互上有个很隐晦的地方,USE HDR 和 LDR 使用的是不同的天空盒图片,并且界面同时只会显示一个槽位,因而你需要分别点两次 “Use HDR“ 去移除这个天空盒才能移除干净

  1. 禁用 HDR,删除 Envmap
    image
  2. 启用 HDR,再次删除 Envmap
    image

抱歉带来困扰,确实比较反人类,后续我们会进行优化。

3赞

这地方,我记得当时我3.5来着,进行功能裁剪,明明没用到天空盒,还报错,当时还找了好久。
真是个大坑 :sweat_smile:

我有点好奇测试出这个bug的过程 :14:

就是检查构建后的资源的时候发现的

这个回复相当有诚意了,不错不错

:+1:,厉害了。

这个问题在scrollview组件上一样的道理,存在一样的问题,在切换horizon和vertical时的scrollbar是不同的