美术素材比游戏包还大?分包加远程存储全记录

美术素材比游戏包还大?分包加远程存储全记录
青萍叙事前言
这是小游戏开发系列的第六篇。
上一篇把素材出齐了,深海关卡的背景和六只生物都进了游戏。
真准备提审才发现,体积的账过不去。
主包只有 4MB,引擎自己就占掉 2.5MB,第三篇算过这笔账。
二十多张全彩素材导出来一共 6MB 出头,比主包还大一半。
主包里能用的就一点五兆,怎么摆都摆不下。
官方给了两条路,分包和把资源放到远程服务器。
大图走远程,关卡资源进分包,主包只留首屏要用的东西。
托管我用青萍图床,传完直接给 CDN 外链,不用自己搭服务器。
先看限制
小游戏官方对包大小的规定写得很清楚。
主包不超过 4M,整个小游戏主包加分包不超过 30M。
单个普通分包不限制大小,单个独立分包不超过 4M。
这组数字决定了策略,主包是稀缺资源,能往外挪的都往外挪。
什么进分包
分包是把一部分代码和资源拆出去,需要时再下载。
首屏必须的留主包,棋盘、棋子、主界面,一个都不能少。
关卡地图、剧情、图鉴进普通分包,玩家进关时再拉。
独立分包适合整套独立玩法,它不依赖主包,进来自成一套。
这次我选的是普通分包,配置简单,加载时机也好控。
Cocos Creator 3.8 里分包有现成配置,把资源勾成分包,构建时自动拆出去。
拆完记得回归试玩,分包边界画错,首屏会报资源缺失。
分包下载有进度回调,加载条照着进度走,玩家看到的不是白屏。
大图走远程
背景图这类资源,一张就几百 KB,全塞包里主包必爆。
这类图放到远程服务器,用的时候下载。
在 Cocos 里就是打一个远程包,构建时填上远程地址,和分包一个思路,只是位置换到了图床。
有两件事必须做对。
一是域名,服务器域名只支持 https,还得在小程序后台的服务器域名里填进 downloadFile 合法域名。
后台路径是开发管理、开发设置、服务器域名,别找错地方。
没填的话,开发者工具能跑,真机上一片空白。
二是缓存,第一次下载后引擎会存本地,第二次启动不再重复拉。
资源没改就吃缓存,改了版本号才重新拉新包,不然每次启动都像重下游戏。
下载失败要留重试,别一次失败就白屏,兜底永远兜在最后。
图床托管
自己搭远程服务器要买对象存储、配 CDN、走备案,一人团队没必要。
我直接用青萍图床(img.lusyoe.com)托管素材,PNG、WebP 都能传。
传完每张图都有直链,走 CDN 加速,不用自己配节点。
把 img-cdn.lusyoe.cn 填进 downloadFile 合法域名,游戏里就能直接拉。
透明图存 PNG,背景这类不透明大图上次用的 JPEG,这次先在本地转成 WebP 再传,还能再小一截。
素材多了用批量上传,要接进流水线就走它的 API。
传错的素材会进回收站,误删还能恢复。
改完再打包,主包从 4MB 出头压到 2.6MB 左右,基本只剩引擎和首屏。
二十多张素材,主体全在图床上,首屏只留棋子和 UI。
冷启动第一次要等背景下载,二次启动走缓存,体感就没差了。
网络差的时候背景还是可能出不来,现在先拿一张小图占位,下载完再换高清。
分包和远程都通了,音效还欠着,下一篇接着补。
备案还在排队,这套装载方案先在体验版上跑着。
















