当前位置:网站首页>手游的热更方案与动态更新策略
手游的热更方案与动态更新策略
2022-04-23 06:24:00 【0zien0】
打补丁包进行热更需要处理的内容如下:
1.游戏的大部分代码逻辑使用lua或JS等脚本语言来编写。(脚本语言方便热更后重新加载)
2.每次打包资源时都生成一份对比文件。文件内含全资源的(资源名、MD5值、分包号)等信息,实际内容根据项目本身需求而定。
3.修改运行游戏时优先读取文件的目录路径。需要优先读取下载文件目录下的文件(因为APK或IOS内含的资源会和下载下来的资源重复)
4.下载完毕后,之前加载过的内容需要重新reload。
下载补丁包的形式:
1.把需要更新的文件压缩到一个压缩包内,游戏中下载这个压缩包后解压放到下载目录中。
生成压缩包时,通过对比文件把这次更新的内容挑出来,然后集中压缩生成补丁包。
优点:生成压缩包,资源经过压缩下载的资源量会小一点,而且压缩成一个包,下载速度也比较快,也没那么容易出错。
缺点:假如现在游戏已经上了10个版本的补丁包,对于新玩家来讲,刚下完整包就一定要从第一个补丁包开始下载到第十个补丁包,即使这10个补丁包内有大量重复资源(例如每次更新补丁都会更新某张图)。如果长时间不出下一个整包,对于新玩家来说,可能补丁包总量还远大于整包本身。
2.把最新版本的所有资源都上传到服务器,玩家需要下载哪个资源就直接从服务器中下载对应资源到下载目录中。
把对比文件放到APK(IPA)中,需要更新时从服务器处下载最新版的对比文件,然后和当前版本的文件对比,就可以知道需要下载哪些资源,然后一个个从服务器中进行下载。
优点:即使我现在上了100个版本的补丁,无需理会中间的补丁内容是什么,直接拿我当前版本的对比文件和服务器中的对比文件进行对比,即可下载需要的资源,且同名资源会直接下载最新的而不会下载中间版本的资源。 比较灵活。
缺点:即使这次补丁包只更新一张图片,仍然需要把整个游戏所有资源都上传都服务器。 散文件下载速度也不及压缩包而且资源没压缩。
三种资源下载的方式:
1.进入游戏前下载的资源。
这种方式就是最常规的下载方式,启动游戏检测版本号,看是否需要更新,需要就更新完再进游戏。
2.进游戏后,玩家手动点击下载更新。
这种就属于分包的形式了,不下载分包的,首包内容会支持你玩大部分的功能,但某些资源量特别大的功能就可能需要下载分包后才能玩了。 如果有分包,就可以让首包包体小点。无论是appstore还是google都有限制包体的大小,而且推广的时候根据不同的推广策略,可能也存在包体小会比较好推广。
3.动态更新资源,就是用到哪张资源就去下载对应的资源。
一般我们的采用,先显示临时资源(例如一个转圈的动图表示正在下载),正式资源下载好后就会替换成正式资源的方式。
其实就像以前的页游,打开界面时才一块块去下载资源显示出来。这种方式看着最高级实则做起来最麻烦。每一个加载资源的方法入口都得写下载处理逻辑,而且根据不同地方的需求处理逻辑还不一样。(目的都是不改源码的情况下加入下载代码)。
如果需要很细致的做好这个动态下载资源就不得不改动源码了(我的项目是做好后,才提需求要做这个动态下载方案的,新项目可以一开始设计好框架)。例如某些地方会对下载好的资源进行处理,那就必须等资源下载完成再执行后续操作了。
版权声明
本文为[0zien0]所创,转载请带上原文链接,感谢
https://blog.csdn.net/a42626423/article/details/106665989
边栏推荐
- javscript获取文件真实后缀名
- Dirichlet 前缀和(数论优化式子复杂度利器)
- 超级宝典&编程指南(红蓝宝书)-读书笔记
- 5.SQL99标准:内连接和外连接
- [Ted series] how does a habit change my life
- 每日一题 | 曾被反转链表支配的恐惧
- Authorization+Token+JWT
- 菜菜的刷题日记 | 238.除自身以外数组的乘积
- Lead the industry trend with intelligent production! American camera intelligent video production platform unveiled at 2021 world Ultra HD Video Industry Development Conference
- manjaro安装与配置(vscode,微信,美化,输入法)
猜你喜欢

Mysql 索引

ogldev-读书笔记

H5案例开发

SAP TRANSLATE使用数据对象掩码示例

Javscript gets the real suffix of the file

简单易懂的子集dp

组合数求解与(扩展)卢卡斯定理

Reflect on the limitations of event bus and the design and implementation of communication mechanism in component development process

菜菜的并发编程笔记 |(五)线程安全问题以及Lock解决方案
![[COCI]Lampice (二分+树分治+字符串哈希)](/img/7b/fe2a45d960a6d3eb7dc25200304adc.png)
[COCI]Lampice (二分+树分治+字符串哈希)
随机推荐
10.更新操作
如何将进程绑定到指定的CPU上
获取字符格式的当前时间
通用型冒泡、选择、插入、希尔、快速排序的代码实现
经典套路:一类字符串计数的DP问题
技术小白的第一篇(表达自己)
Date对象(js内置对象)
嵌入式相关面经(一)
14. Transaction processing
Source Insight 4.0常见问题
Applet Wx Previewmedia related problem solving - Daily stepping on the pit
7.子查询
[Educational Codeforces Round 80] 解题报告
技能点挖坑
超级宝典&编程指南(红蓝宝书)-读书笔记
Lead the industry trend with intelligent production! American camera intelligent video production platform unveiled at 2021 world Ultra HD Video Industry Development Conference
[牛客练习赛68]牛牛的粉丝(矩阵快速幂之循环矩阵优化)
On BFC (block formatting context)
9.常用函数
海康威视面经总结