Cocos 3.x 发布系列二 OV小游戏
一、发布OPPO小游戏
rpk 是一种可以在 OPPO 小游戏平台上传运行的包体。开发者的游戏工程按照标准的小游戏工程规则组织,则可以使用打包工具的 quickgame pack [release] 命令进行打包签名,最终生成的 rpk 包可在 OPPO 小游戏平台上传运行。各大游戏引擎发布 OPPO 小游戏均与标准的 OPPO 小游戏工程保持一致。
以下参考发布到 OPPO 小游戏
image.png点击构建并生成,就能看到进度条
要安装npm
这里安装npm后需要重启一下电脑,如果还有问题,可以参考https://forum.cocos.org/t/oppo-nodejs/76640/3
1.初始场景分包
勾选后,首场景及其相关的依赖资源会被构建到发布包目录 assets 下的内置 Asset Bundle — start-scene 中,提高初始场景的资源加载速度。
2.资源服务器地址
该项用于填写资源存放在服务器上的地址。
若 不填写 该项,则发布包目录下的 remote 文件夹会被打包到构建出来的 rpk 包中。
若 填写 该项,则不会打包到 rpk 包中,开发者需要在构建后手动将发布包目录下的 remote 文件夹上传到所填写的资源服务器地址上。具体的资源管理细节,请参考文档下方的资源管理部分。
3.分包加载
分包加载,即把游戏内容按一定规则拆分成几个包,在首次启动的时候只下载必要的包,这个必要的包称为 主包,开发者可以在主包内触发下载其他子包,这样可以有效降低首次启动的消耗时间。
若要使用该功能需要在 Creator 中设置 小游戏分包,设置完成后构建时就会自动分包。构建完成后,分包 rpk 在 dist
目录下。这时需要在 OPPO 手机的 sdcard
目录下新建一个 subPkg
目录,然后把 dist
目录下的 .rpk 文件拷贝到 subPkg
目录中。
然后切换到 OPPO 小游戏调试器 的 分包加载 栏目,点击右上方的刷新即可看到分包的游戏名称,点击 秒开 即可跟正常打包的 rpk 一样使用。注:这里如果发包后有缓存,需要卸载快应用后重新安装
4.在电脑上,查看真机调试后台
在手机上运行游戏后,使用Chrome打开:
这里10.102.227.164是手机的WIFI地址,需要电脑和手机都在一个WIFI网段。端口号可能为12345、12346、12347、12348 之一,调试时请逐一试用或者查看调试信息窗口确认端口号
5.COCOS3.3版本,骨骼动画渲染异常
参考
oppo 烘焙显示异常
oppo快应用,模型显示错误问题
确实在oppo上骨骼动画不花了。但是帧率直线下降。
未修改devices.ts + 关闭预烘焙 = 22帧
修改devices.ts + 开启预烘焙 = 10帧。
参考
https://docs.cocos.com/creator/3.0/manual/zh/animation/skeletal-animation.html
目前所有模型资源在导入后,Prefab 中全部默认使用 预烘焙系统,以达到最佳性能。建议只在明显感到预烘焙系统的表现力无法达标的情况下,再使用 实时计算系统。
注意:虽然两套系统可以在运行时无缝切换,但尽量不要高频执行,因为每次切换都涉及底层渲染数据的重建。
二、各平台包体限制汇总
1.微信小游戏
随着小游戏的玩法越来越丰富,开发者对于扩大包大小的需求越来越强烈,所以我们推出了小游戏分包加载这一个功能。 所谓的分包加载,即把游戏内容按一定规则拆分这几包,在首次启动时先下载必要的包,这个必要的包我们称为「主包」,开发者可以在主包内触发其它分包的下载,从而把首次启动的下载耗时分散到游戏运行中。
分包加载包大小的限制
目前小游戏分包大小有以下限制:
整个小游戏所有分包大小不超过 20M
单个分包不限制大小,主包不超过 4M
2.OPPO小游戏
整个小游戏所有分包大小之和不超过 8 M
单个分包大小不超过 4M
加上主包 4M,最终的 rpk 包大小不超过 12M
3.VIVO小游戏
https://minigame.vivo.com.cn/documents/#/lesson/base/subpackage
<分包大小限制20M:主包限制4m + 分包大小16M>
com.application.demo.rpk整体压缩包(包名+.rpk)
------------- com.application.demo.rpk 原整包(包名+.rpk) (兼容老版本引擎的原整包=分包主包+分包A+分包B)
------------- main.rpk 分包主包(main+.rpk) (4M)
------------- pkgA.rpk pkgA分包(子包名+.rpk) (A+B 16M)
------------- pkgB.rpk pkgB分包(子包名+.rpk)