UE5 热更新方案
Posted 东东7_7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE5 热更新方案相关的知识,希望对你有一定的参考价值。
更新流程
- 从服务器获取版本信息(检查更新)
- 此文件在每次发版本(包括整包和更新包)的时候生成
- Json文件格式
1. baseVersion 打包的基本资源版本号,后续用于比较增量更新,递增
2. latestPatchVersion 最新的版本号
3. patchList 资源包列表
4. url:这里使用压缩包格式,减少空间消耗和方便资源的管理
"baseVersion": 23,
"latestPatchVersion": 25,
"patchList": [
"from": 23,
"to": 25,
"size": 90532468,
"md5": "ddfadecf655414732dd2f75e428d2b57",
"url": "http://127.0.0.1/patch_23-25.zip"
,
"from": 24,
"to": 25,
"size": 40552678,
"md5": "732dd2f75e428d2b57ddfadecf655414",
"url": "http://127.0.0.1/patch_24-25.zip"
]
- 对比版本信息和客户端信息
// 本地的Json文件示例
"baseVersion": 23,
"latestPatchVersion": 24
- 将本地的Json文件和最新的json文件baseVersion和latestPatchVersion的进行对比
1. 若baseVersion和latestPatchVersion均和本地一致,则直接进入游戏
2. 若本地baseVersion过小,则需要去应用商店获取最新客户端
3. 若本地latestPatchVersion过小,则需要去下载当前版本from到最新版本to的资源文件 - 下载zip文件
- 若检查到网络非WiFi信号,则提示是否需要开启流量下载
- 若下载过程中网络中断,下载失败并提示用户是否需要重试(下载采用断点续传)
- 校验下载文件
- 对比软件包大小和md5值
- 若软件包大小和md5值相同,则进入解压加载流程
- 若不相同,提示用户出现异常,给出错误原因,询问是否重新尝试
- 解压并加载资源文件
- 解压资源文件
- 加载资源文件
- 更新版本号
- 更新完成,进入游戏
构建流程(命令行打包)
整包
-
start CALL C:\\UE5.0\\UnrealEngine\\Engine\\Build\\BatchFiles\\RunUAT.bat BuildCookRun -project=C:\\Work\\androidProject\\AndroidProject.uproject -noP4 -Platform=Android -createreleaseversion=1.0 -UTF8Output -bulid -clientconfig=Development -serverconfig=Development -cook -allmaps -CookFlavor=ASTC -Compressed -SkipCookingEditorContent -pak -skipstage -archive -archivedirectory=C:\\Work\\Release -package
-
C:\\UE5.0\\UnrealEngine\\Engine\\Build\\BatchFiles\\RunUAT.bat 为UE安装路径下脚本文件
-
C:\\Work\\AndroidProject\\AndroidProject.uproject 为工程路径下可执行程序
-
C:\\Work\\Release为整包生成路径
-
其他参数不变,如需更改,可以参考命令行参数查询表
https://blog.csdn.net/u010385624/article/details/89916184
版本确定
-
在整包更新中一个重要的参数为createreleaseversion=1.0,他用来定义release版本,版本信息用于dlc补丁
-
执行完成后会在C:\\Work\\Release\\Android_ASTC\\下生成apk文件,其就是需要的整包
更新包 -
start CALL C:\\UE5.0\\UnrealEngine\\Engine\\Build\\BatchFiles\\RunUAT.bat BuildCookRun -project=C:\\Work\\AndroidProject\\AndroidProject.uproject -noP4 -Platform=Android -basedonreleaseversion=1.0 -generatepatch -UTF8Output -bulid -clientconfig=Development -serverconfig=Development -cook -allmaps -CookFlavor=ASTC -Compressed -SkipCookingEditorContent -pak -skipstage -archive -archivedirectory=C:\\Work\\Patch -package
-
这里唯一不同为C:\\Work\\Patch为补丁包生成路径
版本确定
- 在这里对应整包basedonreleaseversion=1.0 中的createreleaseversion=1.0,说明他是基于1.0版本的补丁包,-generatepatch 表示补丁为打补丁
- 执行完成后在C:\\Work\\Pitch\\Android_ASTC\\AndroidUpdate\\Content\\Paks路径下生成pak文件,在后缀有_P的包为需要的补丁包,无.pak的文件为基础包的资源,在进行更新的时候,只需要将补丁包上传到服务器即可
在虚幻打包中他只会带入UE的资源文件,而我们要带入的是Json文件,所以需要在这里声明Json文件(基础包的版本文件)所在的路径
以上是关于UE5 热更新方案的主要内容,如果未能解决你的问题,请参考以下文章