如何创建补丁(与平台无关)

本页面介绍如何为现有项目创建补丁。

Windows
MacOS
Linux

Patch_HeroImage.png

在打补丁的过程中,引擎会将所有后期烘焙内容与最初发布的已烘培内容进行比较,并据此确定补丁中包含的内容。最小的内容块是单个包(如.ulevel或.uasset),因此如果包中有任何更改,那么整个包都将被包含在补丁中。获取用户补丁包的PAK(.pak)文件的方法将取决于您的发布平台,但是这个过程允许您创建一个较小的PAK文件,其中只包含更新的内容。

您可以使用版本化的发布内容来修补先前发布的项目。需要记住以下几点:

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

  • 保留已发布的烘焙内容,因为UnrealPak工具使用它来确定补丁包文件中应该包含哪些内容。

  • 运行时,挂载这两个PAK文件,补丁文件具有更高的优先级,因此首先加载其中的任何内容。

有几种方法可以修补在虚幻引擎4(UE4)中创建的项目。这里使用的方法与平台无关,这意味着它在技术上可以用于任何平台。然而,您只会对两个平台有意使用这种方法,那就是Windows和Xbox One。其他平台有特定的修补方法。您可以在目标开发平台的相关文档中找到这些平台的修补方法文档。

这种方法最终会使用大量的数据存储空间,因为这种方法保存所有旧文件,并且只将游戏指向存在的最新文件。特定于平台的方法使用的空间通常会更少。

如何使用项目启动器创建补丁

在本例中,我们将为示例射击游戏创建一个补丁。该补丁将更改武器容量和弹匣大小。如果您按照本文所述操作,并希望将该示例用作学习工具,而不是使用实际的发布版本,请按以下步骤操作:

  1. 下载样本 射击游戏(Shooter Game)。导航到 Epic Launcher 中的 学习(Learn) 选项卡,并一直向下滚动到 游戏(Games) 部分。单击 射击游戏(Shooter Game) 图标,并按照说明下载。

  2. 遵循我们文档中的打包项目页面上的说明,使用下载的射击游戏项目。这将为示例游戏提供一个发行版本构建。

要更改示例,请遵循以下步骤。

  1. 在工具栏中,单击 蓝图(Blueprint) 图标,选择 打开蓝图类(Open Blueprint Class),然后在搜索字段中键入 WeapGun 的前几个字母。当WeapGun显示在列表中时,单击以打开该类。

  2. 找到并展开 配置(Config) 部分。更改以下值。

    参数

    初始值

    更改的值

    最大弹药量(Max Ammo)

    250

    50

    每弹夹弹药量(Ammo Per Clip)

    500

    100

  3. 单击 保存(Save) 按钮,并关闭WeapGun类。

创建启动配置文件以测试补丁

现在我们已经有了一个基础构建,我们将在项目启动器中为补丁创建一个启动配置文件。您可能想要创建一个启动配置文件,用于创建补丁的测试版本,并创建另一个启动概要文件,用于实际的补丁发布。

  1. 单击 Windows > 项目启动器(Project Launcher),打开 项目启动器(Project Launcher)
    OpenProjectLauncher.png

  2. 使用 号(+)按钮创建新的 自定义启动配置文件(Custom Launch Profile)。这第一个启动配置文件专门用于您补丁的测试版本。键入 名称(Name) 和用于阐明的 说明(Description)

    单击显示全图。

  3. 在项目启动器中有许多设置,您可以为启动配置文件自定义这些设置。您可以通过单击 高级设置(Advanced Settings) 下拉菜单进一步定制每个设置。您还可以单击 烘焙(Cook)打包(Package)部署(Deploy) 部分中的顶部下拉菜单,您的选择可以更改可用选项。

    单击显示全图。

    启动配置文件部分名称

    高级设置的说明

    项目(Project)

    您可以浏览到要使用的特定项目,或者使用 任何项目(Any Project) 来修补当前项目。

    构建(Build)

    选项为 调试游戏(DebugGame)开发(Development)发布(Shipping)。单击 高级设置(Advanced Settings) 下拉菜单以构建虚幻自动工具(UAT),作为补丁流程的一部分。

    烘焙(Cook)

    单击下拉菜单选择 常规烘焙(Cook by the Book)动态烘焙(Cook on the Fly)。也可选择 不烘焙(Do Not Cook)。可以单击 高级设置(Advanced Settings) 下拉菜单来选择 仅烘焙修改后内容(Only Cook Modified Content)。当您选择 常规烘焙(Cook by the Book) 时,显示 高级设置(Advanced Settings)版本(Release)/DLC/修补(Patching) 的其他选项。

    打包(Package)

    选项为 打包并存储于本地(Package and Store Locally)打包并存储于元库中(Package and Store in Repository),或 不打包(Do Not Package)

    存档(Archive)

    如果要存档构建,请选中本节中的方框。

    部署(Deploy)

    选项包括 复制到设备(Copy to Device)复制元库(Copy Repository)文件服务器(File Server)不部署(Do Not Deploy)

    启动(Launch)

    选项为 使用默认角色(Using Default Role)使用自定义角色(Using Custom Roles)不启动(Do Not Launch)

定制启动配置文件

按照以下步骤定制新的启动配置文件。

  1. 项目(Project) 部分中,单击下拉菜单浏览到您的项目。

    单击显示全图。

  2. 构建(Build) 部分中,单击下拉菜单并选择 发布(Shipping)。如果您需要构建虚幻自动工具(UAT)作为补丁流程的一部分,因为您在构建机器上创建补丁,那么可以选择展开 高级设置(Advanced Settings)

    单击显示全图。

  3. 烘焙(Cook) 部分中,单击下拉菜单并选择 常规(By the Book)。这为您提供了 已烘焙的平台(Cooked Platforms)已烘焙的文化(Cooked Cultures)已烘焙的贴图(Cooked Maps) 的选项。为您的项目选中烘焙(Cook)设置。

    单击显示全图。

    烘焙(Cook)设置确定您的项目中哪些内容是为该补丁烘焙的,然后将这些内容与原始包文件进行比较。

  4. 单击箭头展开 版本/DLC/修补设置(Release/DLC/Patching Settings)

    单击显示全图。

  5. 基于此版本发行(Release version this is based on),键入发布版本。然后选中 生成补丁(Generate Patch) 的方框。

    单击显示全图。

  6. 单击箭头展开 高级设置(Advanced Settings)。请确保选中以下框,以及特定项目的分发方法所需的任何其他方框。

    • 压缩内容(Compress Content)

    • 保存没有版本的程序包(Save Packages Without Versions)

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

    单击显示全图。

  7. 同样在 高级设置(Advanced Settings) 中,单击 烘焙器构建配置(Cooker Build Configuration),并选择 发布(Shipping)

    单击显示全图。

  8. 打包(Package) 部分中,单击下拉菜单并选择 打包并存储于本地(Package and Store Locally)。默认输入本地目录;如果您想要更改它,请单击 浏览(Browse) 并选择要存储包的目录。

    单击显示全图。

  9. 部署(Deploy) 部分中,单击下拉菜单并选择 不部署(Do Not Deploy)

    单击显示全图。

    选择 不部署(Do Not Deploy) 以测试补丁。当您测试了补丁并准备构建一个发布版本时,请遵循本节中的步骤并选择一个不同的部署方法。

启动补丁的测试版本

  1. 使用右上角的 返回(Back) 按钮导航回主配置文件窗口。

    单击显示全图。

  2. 单击 补丁(Patching) 配置文件旁的启动图标。

    单击显示全图。

  3. 项目启动器将经历构建、烘焙和打包过程。这可能需要一些时间,具体取决于项目的复杂性。

    单击显示全图。

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

    单击显示全图。

创建并定制用于发布补丁的启动配置文件

  1. 使用 加号(+)按钮创建新的自定义启动配置文件(Custom Launch Profile)。该配置文件是为您的补丁发布的,因此键入 名称(Name)说明(Description) 以清晰传达。

  2. 遵循定制启动配置文件部分中的步骤1-11。必要时,如果您的测试版本与您想要发布的版本有显著不同,请更改自定义设置。

  3. 部署(Deploy) 部分中,单击下拉菜单并选择要使用的部署选项。

  4. 完成了发布启动配置文件的制作后,遵循启动补丁的测试版本部分中的步骤。

如何使用命令行创建补丁

若要为项目创建与平台无关的补丁,项目启动器不是唯一的选项。您还可以使用UAT命令行指令创建补丁。

首先,您需要创建一个基础构建。这可能是您的发布构建。创建此构建时,您需要使用命令行参数-Createreleaseversion=<releasenumber>。这将创建您项目的1.0版本。

示例:

BuildCookRun <normalbuildcookrunarguments> -build -cook -stage -pak -createreleaseversion=1.0

这将在<ProjectPath>\Releases\1.0\目录中保存一个构建,生成补丁时需要这个目录。

一旦有了已编号的基础构建,就可以创建基于之前构建的补丁。创建此补丁时,您需要使用命令行参数-basedonreleaseversion=<releasenumber>

示例:

BuildCookRun <normalbuildcookrunarguments> -build -cook -stage -pak -generatepatch -basedonreleaseversion=1.0

安装补丁

与平台无关的修补流程在以下目录中创建一个PAK文件:[ProjectName]\Saved\StagedBuilds[PlatformName][ProjectName]\Content\Paks。根据创建项目的平台,PAK文件包含应该分发给用户的新内容或更改内容。例如,在Windows上,您可以创建一个安装程序以将该PAK文件复制到该用户的‘[项目名称]\Releases[版本号][平台名称]’文件夹中,位于原始内容PAK文件旁。

当补丁PAK文件位于FPakPlatformFile::GetPakFolders中设置的设备上的任何PAK搜索目录中时,将自动挂载该文件。要对补丁进行优先级排序,挂载系统使用文件名末尾的_p来确定它的优先级高于其他PAK文件。它可以重命名,但您需要在文件名末尾包含_p.pak

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

标签

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见