热更新之子游戏更新 新思路分享,已测可行。

前段时间公司同事在琢磨子游戏更新的方案。最近几天,测试成功了。我大概听了他们的思路,此方案跟社区方案不太一样,但是也是可行的。遂将该思路分享出来。
热更新的关键是通过比对配置文件的md5值,当出现差异的时候,就从远处服务器下载覆盖。
这个方案就是遵从了这个思路:
1.把子游戏所有东西导入到一个工程。生成所有的md5值配置project.manifest
2.对每个子游戏的代码,资源都用一个目录去存储,做好目录管理,然后写一个脚本解析project.manifest,根据子游戏目录名,将project.manifest里面涉及的子游戏的md5值拆分出来,生成新的子游戏配置文件manifest。比如,登录模块login_project.manifest 大厅模块 hall_project.manifest.
3. 拆分完后,热更新服务器保存生成所有代码资源,代码逻辑上,分别对不同的project.manifest在需要的时候分别进行比对下载。这样达到资源不想下载的时候就无需下载的程度。

这个方案只是官方方案的小变种。

1赞

我们公司好像就是这么写的,我是后端,不是前端,
他们就是每个子游戏一个目录、
进游戏前,先对比 版本,要是版本不一致,就更新,一致就不更新。

但是我这边有个问题,不是说游戏一开始,将所有脚本都加载到 js引擎里面的吗?
难道是 使用的时候才 加载到js引擎里面的?

更新完要走重启流程,重启后就加载大厅热更新的最新js代码了。 js代码文件在大厅热更新里面。

感覺還是單個子游戲熱更新比較好