Hey guys! Packaging a game in Unreal Engine 4 is easy, everyone has done it thousands of times. But what about creating patches, and updating your project? That’s a little bit harder, and unfortunately not very trivial. In this thread, I’ll try to break it down as simple as I can.
Base release "1.0"
First, we’re going to package the base release version. Obviously, you can use your own versioning, but I’m calling this the 1.0. We’re going to use the project launcher, which you can open using the drop-down arrow next to the Launch button in the toolbar.
Once you opened the project launcher, see the „Custom Launch Profiles“ section and click the „+“ button on the right side. Don’t worry, the section is big, but we’re going to go through this together!
Click the drop-down menu, select „Browse“, and navigate to the .uproject file of the project you want to package.
Theoretically, this section depends on whether your project contains code or not. The most simple solution though is to select Detect Automatically on the right side. Under Build Configuration, select Shipping or Development, depending on what you need.
On the right side, select By the book. That means that content gets cooked which you explicitely state. Under Cooked platforms select your platform, I’ll select WindowsNoEditor.
Under Cooked Cultures, you can select the localization cultures you want to cook. For projects without localization, this does not matter. Under Cooked Maps, select the maps you need in the packaged build.
Now, on to the Release / DLC / Patching Settings. This is the important section! First of all, check Create a release version of the game for distribution. And under this checkbox, enter the name of the version, e.g. 1.0. Leave all other options unchecked for the base release.
Under Advanced Settings, check Compress Content, Save packages without versions and Store all content in a single file (UnrealPak). A little bit more below under Cooker build configuration, select the same configuration as you selected in the Build section above.
Select Package & store locally on the right, and choose a path for the packaged build. Also selcet Is this build for distribution to the public and Include an installer for prerequisites of packaged games.
Don’t want to.
Don’t want to.
Don’t want to
Update release "1.1"
Now, you’ve probably done some changes to the project, and want to package up an update / a patch. A patch only contains the modified assets. To make sure that the engine knows what changed, it stores a manifest, which can be found in the Releases folder of your project. Deleting that will also revert all release/patching information. Let’s go back and create another profile for the project launcher.
Again, this will be the .uproject file of the project.
Again, select Detect automatically and the same configuration as you selected for the base release.
Select the same platform, culture and cooked maps (or include new ones) as for the base release. Here’s now what differs from the base release.
Under Release / DLC / Patching Settings select Create a release version of the game for distribution. Now, the Name of the new release to create will be incremented, so in this case, it’ll be 1.1. Under Release version this is based on, enter the version number of the previous release, so in this case: 1.0. Also make sure to check Generate Patch, as that will make sure that it will only cook assets which have been modified.
Now, under Advanced Settings, again, check Compress Content, but **DO NOT **check Save packages without versions, as that will break the patching and installing the patch in the packaged game will crash it. Make sure to still check Store all content in a single file (UnrealPak) so you get a handy .pak file.
Select **Package & store locally **again, and set a new path to package this path into. This should be different from the path you stored the base release in, so it won’t overwrite anything vital of the base release. You don’t have to tick Is this build for distribution to the public and Include an installer for prerequesites of packaged games this time, as the base release did already cover that.
Archive & Deploy & Launch
We don’t want to.
And that’s it. Now, for any further patch, just create a new launcher profile, and increment the version in the Name of the new release to create field. The Release version this is based on probably should point to the last release then, and not always the base release.
Got any questions? Feel free to ask here