前言
工作需要,在空闲时间看了下Cocos2d-JS的热更新。对其进行了一个简单的实现,这里总结分享一下。
Cocos2d-JS 热更新
Cocos2d-JS 热更新是啥?Cocos2d-JS终归还是一个游戏引擎,就以游戏的过程来理解吧。传统游戏需要更新人物动画、地图场景、游戏逻辑、背景音乐怎么办?新出一个APP放到应用商店等用户下载,或者好一点游戏内提示又升级并自行下载完整的新版本APP。
使用Cocos2d-JS的热更新,那就大不一样了。它可以做到进入游戏后下载需要更新的资源甚至是脚本本身,而且更新过程不需要退出游戏。只要用户联网,就能够保证使用到最新的资源。
这些场景就非常适合使用Hot Fix
-
想在游戏中对春节开放新活动,不能保证应用商店能准时过审核上线
-
发现一个严重的Bug,需要立即修复
-
需要经常换游戏资源,提升新鲜感
-
先放一个中规中矩的版本过市场审核,然后绕过审核自己直接推新内容,哈哈
对于游戏来说,这个特性是比较重量级的。不过因为@L_502_0@的语言特性能支持这一功能,所以Cocos2d-JS能用此特性,而Cocos2d-x无法使用。
特性
以下是官方提供的特性
Simple
1. manifest配置文件
热更新需要用到的配置文件有2种,都是以.manifest结尾。
一种是精简版,一种是完整版。精简版称为version.manifest,完整版称为project.manifest。
version.manifest:
1
2
3
4
5
6
7
8
9
10
11
|
{
"remoteManifestUrl"
"http://127.0.0.1:8080/JsUpdateServer/res/project.manifest"
"1"
"1.0.1"
},
"engineVersion"
"3.3"
}
|
version.manifest是可选的,其中的所有字段也出现在project.manifest中,并且内容一样,如果没有就会从服务端下载完整版。但是如果完整版特别大,那么这个小版本的优势就很明显了。
project.manifest:
"3.3"
|