修补

本页面的内容:

要在发布后更新项目,您可使用通过项目启动程序完成的修补过程。在修补期间,引擎会将烘培后的所有内容与 原先发布的已烘培内容进行比较,并使用比较结果来确定要包括在补丁中的内容。最小的内容项是单个包(例如 .ulevel 或 .uasset), 因此,如果包中的任何内容发生更改,那么整个包将包括在补丁中。您用来向用户提供补丁 .pak 文件的方法将取决于 您的分发平台,但此过程将允许您创建小得多的 .pak 文件,其中仅包含已更新的内容。

目前,分发补丁这一操作仅在部分平台上可用。此过程将指导您在 Windows 上创建补丁包文件 以及测试包文件。

您可使用版本化的发行版来修补先前发布的项目。您需要记住的一些事项包括:

  • 在发布时锁定序列化代码路径。

  • 保留所发布的已烘培内容,因为 UnrealPak 工具需使用此内容来确定哪些内容应包括在补丁包文件中。

  • 在运行时,请同时装载这两个 pak 文件并将较高的优先级别授予补丁文件,以便首先载入其中的任何内容。

创建补丁

在本例中,我们要修补 ShooterGame,对其武器威力和弹匣大小进行更改。

PatchExample.png

在创建发行版之后:

  1. 通过“虚幻编辑器”中的 窗口(Windows)菜单,或通过使用 虚幻前端 ,打开 项目启动程序

    1.png

  2. 使用 + 按钮创建新的定制启动配置文件。

    2.png

  3. 您可双击配置文件的名称和说明,以便对其进行编辑。

    RenamePatch.png

修补过程有许多可用的设置。下列步骤按类别来划分设置,要访问所需的所有设置,您可单击 高级设置(Advanced Settings)下拉菜单, 或设置顶部的下拉菜单(即,烘培:按常规(By the Book)),这将更改可用的选项。

PatchSettings.png

项目

  1. 您可设置所要使用的特定项目,或使用 任何项目(Any Project)来修补当前项目。

构建

  1. 请将构建配置设置为“交付”(Shipping)。

  2. (可选)如果您因为正在构建机器上创建补丁,而需要在修补过程中构建“虚幻自动化工具”(UAT),请展开 高级设置(Advanced Settings)

烘培

  1. 在下拉菜单中,选择 按常规(By the Book)作为烘培方法。

  2. 选中烘培内容时所要针对的所有平台的框。在本例中,为了进行 Windows 测试,我们已选中 WindowsNoEditor

  3. 选中烘培本地化内容时所要针对的所有文化的框。

  4. 选中所要烘培的所有贴图的框。

    这将确定要进行烘培然后与原始包文件进行比较的内容。

  5. 发布/DLC/修补设置(Release/DLC/Patching Settings)中:

    • 输入要让此补丁所基于的版本号。

    • 勾选 生成补丁(Generate Patch)复选框。

  6. 展开 高级设置(Advanced Settings),确保启用下列选项,并启用您的特定项目的分发方法所需的任何其他选项。下列建议选项可最大限度减小补丁大小,并且是已知的最佳默认值:

    • 压缩内容(Compress content)

    • 保存无版本包(Save packages without versions)

    • 将所有内容存储到单个文件 (UnrealPak)(Store all content in a single file (UnrealPak))

  7. 并且,在 高级设置(Advanced Settings)下,将烘培程序配置设置为 交付(Shipping)

打包

  1. 将构建设置为 打包并存储在本地(Package & store locally)

部署

  1. 将构建设置为 不部署(Do Not Deploy)

  2. 使用右上角的 后退(Back)按钮浏览回到主配置文件窗口。

    9.png

  3. 单击 修补(Patching)配置文件旁边的启动图标。

    10.png

    项目启动程序将完成构建、烘培和打包过程。这可能要花费一些时间,具体视项目复杂性而定。

    11.png

  4. 操作完成后,请关闭窗口或单击 完成(Done)

    12.png

在 Windows 上测试此补丁:

  1. 将 pak 文件从 ShooterGame\Releases\1.0\WindowsNoEditor 复制到 ShooterGame\Saved\StagedBuilds\WindowsNoEditor\ShooterGame\Content\Paks

  2. 运行 ShooterGame.exe from ShooterGame\Saved\StagedBuilds\WindowsNoEditor

安装补丁

修补过程会在 [ProjectName]\Saved\StagedBuilds[PlatformName][ProjectName]\Content\Paks 中创建一个 pak 文件。这个 pak 文件就是应该分发给用户的补丁。 例如,在 Windows 上,您将创建一个安装程序,以便将该 pak 文件复制到用户的 [ProjectName]\Releases[VersionNumber][PlatformName] 文件夹中,与原始 内容 pak 文件放在一起。

将补丁 pak 文件放入设备上 FPakPlatformFile::GetPakFolders 所设置的任何 pak 搜索目录后,它将自动装载。 为了确定各补丁的优先顺序,装载系统使用文件名末尾的 _p 来确定其优先于其他 pak 文件。您可将补丁 pak 文件重命名,但必须 在文件名末尾包括 _p.pak

如果您从同一个发行版构建两个补丁,那么它们都是完整的补丁,因此安装第二个补丁时,您还应移除第一个补丁。