【UE4】 补丁Patch 与 DLC

【UE4】 补丁Patch 与 DLC概述UE4中主要使用ProjectLauncher来进行补丁和DLC的制作补丁与DLC都需要基于某个版本而制作补丁与DLC最后以Pak形式表现,补丁的pak可以重命名,但最后以_p.pak结尾Pak会根据PakOrder来排序挂载Paks目录下,项

大家好,欢迎来到IT知识分享网。

概述

  • UE4 中主要使用 Project Launcher 来进行补丁和DLC的制作
  • 补丁与 DLC 都需要基于某个版本而制作
  • 补丁 与 DLC 最后以 Pak 形式表现,
    • 补丁的 pak 可以重命名,但最后以 _p.pak 结尾
  • Pak 会根据 PakOrder 来排序挂载
    • Paks 目录下 ,项目名开头的 PakOrder = 4;非项目名开头的 PakOrder 与上一级目录的 PakOrder 相同
    • 项目名/Content 目录下的 PakOrder = 3;
    • Engine/Content 目录下的 PakOrder = 2;
    • Saved 目录下的 PakOrder = 1;
    • _p.pak PakOrder额外加100
    • n_p.pak PakOrder额外加 n*100+100

补丁 Patch

  • 对发布之后的版本进行更新,称之为打补丁
  • 通常用于
    • 内容更新
    • 解决已知问题
    • 修复版本漏洞
  • 打补丁的方法
    • 保留原始版本或之前版本中的文件,但添加一个指向新内容的指针
    • 使用二进制补丁转换原始版本中的内容

DLC

  • Downloadable Content(可下载内容),也称“可下载资料包”
  • 用于游戏发布后的内容扩展,如新增地图、新游戏模式、新剧情等
  • 目前暂不支持增量更新

扩展:热更新

  • 蓝图本身作为资源,可以热更新
  • C++ 是编译型语言,因而无法热更行
  • 可以使用 Lua 脚本来写业务逻辑,进行热更新
    • UnLua
    • sluaunreal
    • 参考:UE 热更新:基于 UnLua 的 Lua 编程指南

补丁配置与版本迭代

游戏主体配置 V1.0

  • 创建 BP_Patch 并放置到场景中,配置 Project Launcher 打包,设为 Release 1.0

    image

补丁配置 V1.1

  • 修改 BP_Patch 代码

  • 配置 Project Launcher

    • 基于1.0 打包,当前补丁我们假设为 patch 1.1
    • 并将当前关卡 使用 release 的打包配置,更改为 Release 1.1 进行打包(后续要用到)

    image

  • 打包 输出 DesignPatterns-WindowsNoEditor_0_P.pak

    • 方便起见,重命名为 DesignPatterns-BaseV1.0_11_P.pak,其中 V1.0 代表 Release 1.0,11 代表 Patch 1.1
    • 复制到 Release 的 WindowsNoEditor\DesignPatterns\Content\Paks 目录下
  • 测试结果对比

    image

补丁配置 V1.2

  • 创建 BP_Patch2 并放置到场景中

    image

  • 配置 Project Launcher ,打包两个版本。并将补丁复制到对应 Release 的 WindowsNoEditor\DesignPatterns\Content\Paks 目录下

    • 基于 release 1.0 打包 patch 1.2,输出 DesignPatterns-BaseV1.0_12_P.pak
    • 基于 release 1.1 打包 patch 1.2,输出 DesignPatterns-BaseV1.0_12_P.pak
  • 测试结果如下

    • Release 1.2 等同于
      • 基于 Release 1.0 的基础包,打上 BaseV1.0_11、BaseV1.1_12 两个补丁
      • 基于 Release 1.0 的基础包,打上 BaseV1.0_12 补丁
      • 基于 Release 1.1 的基础包,打上 BaseV1.1_12 补丁

    image

版本迭代思路

  • 维护两个文本信息

    • 服务器更新的补丁列表 server_patch_list.json
    • 本地的补丁更新情况记录 local_patch_list.json,记录当前版本号以及已更新的补丁
  • 启动时从 server_patch_list 读取补丁列表信息,对比 local_patch_list,

    • 如果 local_patch_list 没有则下载对应版本的补丁
    • 如果多个小版本合并为一个版本,则删除原来已下载的小版本,再下载合并后的版本
  • pak 删除与添加,涉及卸载和挂载,使用时具体分析,下图为举例示例,非实际应用

    image


DLC 配置

  • UE4 DLC 以插件形式存在,因此第一步先创建插件

  • 在C++工程 .build.cs 添加插件模块,模块名为插件名,编译

    image

  • 在 插件的 Content 目录下创建新的场景、资源

    image

  • 配置 Project Launcher

    • 打包后的路径
      \Plugins\[插件名]\Saved\StagedBuilds\WindowsNoEditor\[项目名]\Plugins\[插件名]\Content\Paks\WindowsNoEditor

    image

  • 测试结果

    • 关于 插件 Content 目录
      • File – > Package – > 平台 打包,默认会将插件 Content 目录一起打包进去
      • Project Launcher 打包 Release ,默认不打包插件 Content 目录
      • Project Launcher 打包 DLC ,默认只打包插件 Content 目录

image

  • 至此 Project Launcher

    image


参考

  • 原博客地址 【UE4】 补丁Patch 与 DLC
  • 补丁和DLC
  • 如何创建补丁(与平台无关)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/35041.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信