PC启动器超大游戏增量更新方案

QuickSDK | 2025-03-19 | 资讯动态

简介:


PC游戏安装包体积较大时,更新通常使用增量更新。本文介绍启动器基于增量文件比对方案下如何进行增量包配置的过程

增量对比使用开源方案:

https://github.com/sisong/HDiffPatch/blob/master/README_cn.md



一、制作发布包


游戏初始版本的发布包,直接采用zip压缩即可。生成下载链接,配置到SDK后台

此案例中,初始包版本为1.0.0



二、制作补丁包


补丁包,也叫patch包、增量包,指在原版本基础上,通过修改有变化的文件,来升到最新版

对比全量更新,具备下载资源少,更新速度快的优点

当我们有新的游戏版本,比如1.0.1,我们要发布增量包,将玩家本地的1.0.0更新到1.0.1时,需要做的事情如下:


1. 分别压缩2个版本的游戏文件夹为zip


2. 使用 hdiffz工具,提取差异文件,生成patch包

命令如下:

hdiffz 旧版本.zip 新版本.zip 增量包.patch

例如:

hdiffz.exe C:Users2023FQS0828DesktopdemoGameRelease_1.0.0.zip C:Users2023FQS0828DesktopdemoGameRelease_1.0.1.zip 100_101.patch

我们生成了patch文件,patch文件就是对比2个游戏版本后得出的有差异的文件


3. 将patch文件上传到CDN,得到下载链接。配置SDK后台,在版本更新中,分别配置全量链接和增量链接



三、客户端对比更新逻辑


1. 首次下载的玩家

若版本强更里不存在该游戏最新的版本包,则使用 游戏详情页 中的PC游戏下载地址

若版本强更包里存在大于游戏详情页的版本包,则读取版本强更里最新版的全量下载地址,确保玩家下载到最新的全量包


2. 玩家本地存在某版本客户端

比如玩家本地版本为1.0.0 ,中间存在1.0.1、1.0.2 及最新版为1.0.3

启动器检查是否存在1.0.0 到 1.0.1 到的patch包,如有,则进行增量更新到到1.0.1、1.0.2、1.0.3

如果无法进行增量更新,比如本地缺少1.0.0的原始压缩包时,会读取1.0.3版本配置的全量包,进行全量更新

出现异常导致合并增量包失败时,启动器会清除本地文件,重新下载1.0.3最新版的全量包进行更新



商务合作

李先生:13880511661

QQ:48157910

市场合作

郭女士:18349260870

QQ:1077535763

技术支持

孙女士:13551010407

QQ:1799614139

官方技术交流群

QQ群:698731538