微信小游戏开发-资源更新流程

资源更新流程

在完成游戏的构建打包之后,相应的,我们需要提供游戏的资源下载更新方式。游戏的资源更新主流程如下图所示

云配置

我们首先会从CDN下载云配置文件,保险起见,我们在两个不同的CDN中都存放了云配置文件,在游戏启动的时候下载配置文件,如果只有一个读取成功就用成功读取成功的那份。如果两份都不能成功读取就提示错误信息,点击确定重试。

资源清理

立即清理

  • 云配置可以开启有新版本的时候,强制立刻清理本地旧版本文件。
  • 资源更新过程发生错误会启动强制清理所有本地文件。
  • 游戏过程中发生文件相关的严重错误会标记,下次进入游戏会立即清理所有文件并强制更新。

延时清理

  • 云配置可以关闭新版本更新时的那次立即清理,开启延时清理.延时清理是在游戏空闲的时候,在主界面和组队界面.每x秒清理一个文件,x可云配置。

更新前检查

1.检查强制更新标记,如果发现就立刻开启更新流程.游戏发生文件相关错误的时候会标记强制更新。

2.检查云配置的强制更新标记,如果发现就立刻开启更新流程。

3.如果云配置了可以跳过更新前检查,并且本地有当前版本更新成功的标记就直接跳过更新相关逻辑。

4.如果本地已经有最新的版本,会进行版本检查,从下面四个方面进行版本检查

  • 本地没有当前版本的资源文件夹,返回false。
  • 云配置没有需要更新的文件,返回true。
  • 如果云配置开启了文件数量校验就开始校验文件数量.数量不对返回false。
  • 跟进云配置的抽样数checkFileNum和检查类型checkType抽样检查本地文件,如果抽样数大于等于文件总数就是全校验.检查发现不一致就返回false。

5.如果第四步版本检查没有返回false就表示是最新版本,跳过更新后检查,执行后续逻辑.否则就开启更新流程。

资源更新

更新后检查

1.如果经过了资源更新流程,就会执行更新后检查,否则跳过

2.云配置可以开启跳过更新后检查,如果开启了就直接跳过

3.版本检查的方式和更新前版本检查一致的逻辑

4.如果第三步都成功了表示更新成功,进入后面逻辑.否则弹窗提示玩家,更新失败点击确定后从头走一遍主流程.

文件读取

由于我们将资源文件下载存放在了手机的外存中,所以我们修改了引擎本身的资源读取流程

容错和辅助功能

1.超时机制

  • 资源更新场景启动就开始计时,进度条有走动就重置计时.当计时达到设定的超时时间的时候提示更新超时,点击确定会从最开始执行主流程。

2.底层错误收集

  • 通过分析引擎底层逻辑,收集到15类文件相关的严重错误,这15类错误分别可以通过云配置设定是否提示”检测到文件损坏,请重启游戏!”,并记录强制更新标记.玩家点击按钮就会直接退出游戏,再次进入游戏会强制清空本地所有文件,并强制更新.

3.更新失败重试

  • 见上方资源更新流程图