The proper way of releasing, updating and patching your UE4 games

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.
project_launcher.png
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!

Project
Click the drop-down menu, select „Browse“, and navigate to the .uproject file of the project you want to package.
project.png

Build
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.

Cook
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.

Package
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.

Archive
Don’t want to.

Deploy
Don’t want to.

Launch
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.

Project
Again, this will be the .uproject file of the project.

Build
Again, select Detect automatically and the same configuration as you selected for the base release.

Cook
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.

Package
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.

Summary
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 :slight_smile:
Cheers, Johnny!

7 Likes

Hello Johnny,

Thanks for making this for the rest of us! I am wondering though where, and how to put in the required Prerequisites? Also, do we need to create an installer for them? Any Help is Greatly Appreciated!

Thanks,
Pat

1 Like

Hey! If you checked “Include an installer for prerequisites of packaged games”, UE4 will automatically include an installer which you can find under PackageFolder\WindowsNoEditor\Engine\Extras\Redist\en-us\UE4PrereqSetup_x64.exe. That will install needed prerequesites for UE4. For any DRM platform you could just let this .exe execute as a post-install step of your game :slight_smile: Hope that helped!

3 Likes

Hello iUltimateLP,

I did check that checkbox, but I didn’t use the Launcher to create my build, so I went back and did it through the Launcher this time. This is my first game I have got this far on, and I was just having a few problems, but I believe that I have it all figured out now due to some deeper Research, lol. Thanks so much for All of Your Help, and for answering me back!

1 Like

what is the difference between WindowsNoEditor , Windows , WindowsClient and WindowsServer

Hi jonny ,
I have a question about releasing updates , now if i follow all these steps and release an update to my game , will it affect a players progress in my game

I successfully create patches to quickly update my gametesters, generating the secondary _P.pak file no problem.

However, if I add a new plugin to the project and then create a patch, it will not run. It creates the patch with no errors but when I run the game with the _P.pak present, I get an error along the lines of Plugin ‘whatever it is’ failed to load because module ‘whatever it is’ could not be found.

This happens regardless of which plugin it is. Considering the new plugin must be in the _p.pak file for it to even come up with this error, I don’t know what else to do.

If I remove the _p.pak file, the original version runs fine.

My project is blueprint based.

Can anyone help with how to resolve this or is it a case of patches cannot handle new plugins? Am I resigned to do a full build if I introduce a new plugin?

Mark.

Does this work with mobile android setup?

It’s possible create a patch having just the previous package builded? I replace the release 1.0 by others builds so now I can’t create a patch of the first one

im confused, how will the people get the update in THEIR game???