干货分享: 全新手撸一个热更新插件

之前分享过一个基于Bundle版本的热更思路, 趁着年尾做了一个热更插件.
0代码,0配置的一键热更框架新鲜出炉:
DOME 传送门: https://gitee.com/andrewlu/hot-update
[记得clone 后, 在热更插件目录执行一次 npm i]

适用平台:Android/iOS 平台
不适用:微信等小游戏平台.

插件面板展示:



技术概述:
面板UI所用技术为VUE+ ELEMENT-UI.
底层文件上传用到node-ftp 依赖.
当前实现方案,需要将热更包上传到CDN服务器, CDN服务器需要开通FTP上传通道. 配置好各项参数后, 即可正常打包, 并一键上传更新包操作.

热更实现原理:
通过游戏运行时动态修改cc.assetManager.init() 参数, 将新版本的bundle列表注入到引擎的资源管理器中,以实现打开游戏即自动热更的方式. 游戏业务不需要任何额外代码即可拥有自动热更功能.
对游戏业务0侵入, 安全可靠.
同时不同游戏版本可通过[版本类型]配置参数, 实现物理隔离, 不同的版本类型, 将对应不同的热更地址,不同的热更存储位置, 方便实现自测, 内测, 灰度 ,发布等众多渠道包热更.

方案缺陷:
因为要在游戏启动时请求一次热更版本信息,即发送一个请求, 之后才会调用window.boot()进入游戏, 因此实际上会导致启动期间额外的时间消耗.
之前有考虑过在游戏运行起来后,进行版本信息请求, 然后进行缓存, 并在第二次打开游戏时直接读取缓存而非网络请求. 这个方案之后可以提供选项供打包时自由选择.

V1.0.1
增加上传状态监控,显示上传线程列表

11赞

感谢大佬分享

支持一下··

感谢大佬分享

mark ~~~

12345

界面美阿 :+1:

牛批,收藏一下

大佬666

666,刚看到大佬的那个热更方案,准备照着搞的,感谢大佬分享