修补
要在发布后更新项目,您可使用通过项目启动程序完成的修补过程。在修补期间,引擎会将烘培后的所有内容与 原先发布的已烘培内容进行比较,并使用比较结果来确定要包括在补丁中的内容。最小的内容项是单个包(例如 .ulevel 或 .uasset), 因此,如果包中的任何内容发生更改,那么整个包将包括在补丁中。您用来向用户提供补丁 .pak 文件的方法将取决于 您的分发平台,但此过程将允许您创建小得多的 .pak 文件,其中仅包含已更新的内容。
目前,分发补丁这一操作仅在部分平台上可用。此过程将指导您在 Windows 上创建补丁包文件 以及测试包文件。
您可使用版本化的发行版来修补先前发布的项目。您需要记住的一些事项包括:
在发布时锁定序列化代码路径。
保留所发布的已烘培内容,因为 UnrealPak 工具需使用此内容来确定哪些内容应包括在补丁包文件中。
在运行时,请同时装载这两个 pak 文件并将较高的优先级别授予补丁文件,以便首先载入其中的任何内容。
创建补丁
在本例中,我们要修补 ShooterGame,对其武器威力和弹匣大小进行更改。
在创建发行版之后:
通过“虚幻编辑器”中的 窗口(Windows)菜单,或通过使用 虚幻前端 ,打开 项目启动程序。
使用 + 按钮创建新的定制启动配置文件。
您可双击配置文件的名称和说明,以便对其进行编辑。
修补过程有许多可用的设置。下列步骤按类别来划分设置,要访问所需的所有设置,您可单击 高级设置(Advanced Settings)下拉菜单, 或设置顶部的下拉菜单(即,烘培:按常规(By the Book)),这将更改可用的选项。
项目
您可设置所要使用的特定项目,或使用 任何项目(Any Project)来修补当前项目。
构建
请将构建配置设置为“交付”(Shipping)。
(可选)如果您因为正在构建机器上创建补丁,而需要在修补过程中构建“虚幻自动化工具”(UAT),请展开 高级设置(Advanced Settings)。
烘培
在下拉菜单中,选择 按常规(By the Book)作为烘培方法。
选中烘培内容时所要针对的所有平台的框。在本例中,为了进行 Windows 测试,我们已选中 WindowsNoEditor。
选中烘培本地化内容时所要针对的所有文化的框。
选中所要烘培的所有贴图的框。
这将确定要进行烘培然后与原始包文件进行比较的内容。
在 发布/DLC/修补设置(Release/DLC/Patching Settings)中:
输入要让此补丁所基于的版本号。
勾选 生成补丁(Generate Patch)复选框。
展开 高级设置(Advanced Settings),确保启用下列选项,并启用您的特定项目的分发方法所需的任何其他选项。下列建议选项可最大限度减小补丁大小,并且是已知的最佳默认值:
压缩内容(Compress content)
保存无版本包(Save packages without versions)
将所有内容存储到单个文件 (UnrealPak)(Store all content in a single file (UnrealPak))
并且,在 高级设置(Advanced Settings)下,将烘培程序配置设置为 交付(Shipping)。
打包
将构建设置为 打包并存储在本地(Package & store locally)。
部署
将构建设置为 不部署(Do Not Deploy)。
使用右上角的 后退(Back)按钮浏览回到主配置文件窗口。
单击 修补(Patching)配置文件旁边的启动图标。
项目启动程序将完成构建、烘培和打包过程。这可能要花费一些时间,具体视项目复杂性而定。
操作完成后,请关闭窗口或单击 完成(Done)。
在 Windows 上测试此补丁:
将 pak 文件从
ShooterGame\Releases\1.0\WindowsNoEditor
复制到ShooterGame\Saved\StagedBuilds\WindowsNoEditor\ShooterGame\Content\Paks
运行
ShooterGame.exe
fromShooterGame\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
。
如果您从同一个发行版构建两个补丁,那么它们都是完整的补丁,因此安装第二个补丁时,您还应移除第一个补丁。