关于热更新、动态加载的一些问题(急)

有些问题想请教开发组大神们~

先说明一下我们的项目,我们希望先以手游出发,将来可能发布成H5页游,
以下是我们项目的需求:

  1. 首包包体要小:也就是项目内的资源,要可以指定哪些要进入首包、哪些不要的

  2. 动态载入一个 scene:类似 这讨论串 「大厅+子游戏」的资源结构 ,子游戏可能是一个 scene,需要的时候才下载

  3. 动态载入某一群组的资源:例如某一支新角色的 Avatar 跟语音包,判定需要的时候才下载

之前我使用过 Unity,这些需求可以用 Unity 的 Asset Bundle 来完成,
不知 Cocos Creator 是否也会提供这些功能?有没有一个明确的时间点呢?
听说 1.3 版要优化 AssetManager,会包含这些功能嘛?

我们项目预计 12月 要能进入测试阶段,如果来不及的话,
上级可能会要求我们以现有的版本自己作修改,若是这样的话,
能否请大神们提供一下思路?例如 这讨论串 使用多个 manifest 来实现?

目前已知可以发布成 runtime 得到 group.json 依据不同的 scene 来产生 manifest,可是这无法解决我们的第3点需求

我在想,如果每个资源有「group id」这个概念,搭配原本的热更新机制,似乎就可以实现了?
我们可以在编辑时,依据需求对每个资源指定 group id (也许默认值为0,代表是首包资源)
这样在产生 manifest 时,就可以依据 id 产生数个 manifest,依据需求来 update,
或是让 AssetsManager 只 check 跟 update 某个 group。
不过这还是仰赖开发组大神们提供支持,或是开放 API 让我们修改~

这个问题有点急,关系到我们公司项目能否如期上线,麻烦大神们帮个忙~(膜拜~~)

3赞

优化 AssetManager 的计划是在 1.4 版本,也就是年底
你帖子里提到的具体需求在我们开始做设计的时候会详细跟你讨论

希望能够积极参与,非常感谢!

2赞

感谢大神~ 没问题希望能尽快参与讨论,我的QQ号 1564963198

我们的需要几乎一样啊,关注。

什么时候才能加入动态更新呢。我们项目要上线了。

需求一样啊楼主。求拉群讨论。qq:2236633972

热更新的更新已经合并到 cocos2d-x-lite v1.4 分支,新功能和修复简要说明:

  1. 用 manifest 中的 size 字段来收集文件大小数据,更快获得准确的字节级进度
  2. 修复 Android 断点续传支持和一些特殊情况下的更新 bug
  3. 支持 manifest 间比较的 API:jsb.AssetsManager.setVersionCompareHandle(callback)
  4. 支持下载文件后的校验回调:jsb.AssetsManager.setVerifyCallback(callback)
  5. 支持设置更新时最大文件并发数
    jsb.AssetsManager.setMaxConcurrentTask(count)

https://github.com/cocos-creator/cocos2d-x-lite/pull/473

v1.3 分支的 PR 也已经合并

https://github.com/cocos-creator/cocos2d-x-lite/pull/472

1赞

这是我自己实现的一个方法,但是感觉还是有一些不足的地方。

2赞

兄弟图片看不清呀

请问一下: creator的游戏在热更新时会把服务器上没有的资源从本地删掉吗?如果是的话,假设游戏大厅有A、B两个游戏,玩家已经下载了A游戏,现在玩家点击下载B游戏,如果B的文件夹里面不包含A游戏的话,更新后会不会把A游戏的资源给删掉了? 还有就是所有的js代码都放到project.dev.js这一个文件里了,这个又要怎么处理? 期待回复 thanks~~

大神 除了 热更新。 大厅+ 子游戏的 有没有方法处理呢?