12 min read

A game is not just an art, code, and a game design packaged within an executable. You have to deal with stores, publishers, ratings, console providers, and making assets and videos for stores and marketing, among other minor things required to fully ship a game.

This article by Muhammad A.Moniem, author of the book Mastering Unreal Engine 4.X, will take care of the last steps you need to do within the Unreal environment in order to get this packaged executable fine and running. Anything post-Unreal, you need to find a way to do it, but from my seat, I’m telling you have done the complex, hard, huge, and long part; what comes next is a lot simpler!

This article will help us understand and use Unreal’s Project Launcher, patching the project and creating DLCs (downloadable content)

(For more resources related to this topic, see here.)

Project Launcher and DLCs

The first and the most important thing you have to keep in mind is that the project launcher is still in development and the process of creating DLCs is not final yet, and might get changed in the future with upcoming engine releases. While writing this book I’ve been using Unreal 4.10 and testing everything I do and write within the Unreal 4.11 preview version, and yet still the DLC process remains experimental. So be advised that you might find it a little different in the future as the engine evolves:

While we have packaged the game previously through the File menu using Packaging Project, there is another, more detailed, more professional way to do the same job. Using the Project Launcher, which comes in the form of a separate app with Unreal (Unreal Frontend), you have the choice to run it directly from the editor. You can access the Project Launcher from the Windows menu, and then choose Project Launcher, and that will launch it right away.

However, I have a question here.

Why would you go through these extra steps, then just do the packaging process in one click?

Well, extensibility is the answer. Using the Unreal Project Launcher allows you to create several profiles, each profile having a different build setting, and later you can fire each build whenever you need it; not only that, but the profiles could be made for different projects, which means you can have an already made setup for all your projects with all the different build configurations.

And yet even that’s not everything; it comes in handier when you get the chance to cook the content of a game several times, so rather than keep doing it through the File menu, you can just cook the content for the game for all the different platforms at once. For example; if you have to change one texture within your game which is supported on five platforms, you can make a profile which will cook the content for all the platforms and arrange them for you at once, and you can spend that time doing something else. The Project Launcher does the whole thing for you.

What if you have to cook the game content for different languages? Let’s say the game supports 10 languages? Do you have to do it one by one for each language?

The answer is simple; the Project Launcher will do it for you.

So you can simply think of the Project Launcher as a batch process, custom command-line tool, or even a form of build server. You set the configurations and requests, and leave it alone doing the whole thing for you, while you are saving your time doing something else. It is all about productivity!

And the most important part about the Project Launcher is that you can create DLCs very easily. By just setting a profile for it with a different set of options and settings, you can end up with getting the DLC or game mode done without any complications. In a word, it is all about profiles, and because of that let’s discuss how to create profiles, that could serve different purposes.

Sometimes the Project Launcher proposes for you a standard profile that matching the platform you are using. That is good, but usually those profiles might not have all we need, and that’s why it is recommended to always create new profiles to serve our goals.

The Project Launcher by default is divided into two sections vertically; the upper part contains the default profiles, while the lower part contains the custom profiles. And in order to create a new profile all you have to do is to hit the plus sign at the bottom part, where it is titled Custom Launch Profiles:

Pressing it will take you to a wizard, or it is better to describe this as a window, where you can set up the new profile options. Those options are drastic, and changing between them leads to a completely different result, so you have to be careful. But in general, you mostly will be building either a project for release, or building a DLC or patch for an already released project. Not to mention that you can even do more types of building that serve different goals, such as a language package for an already released game, which is treated as a patch or DLC but at the same time it has different a setup and options than a patch or DLC. Anyway, we will be taking care of the two main types of process that developers usually have to deal with in the Project Launcher: release and patch.

Packaging a release

After the new Custom Launch Profile wizard window opens, you have changes for its settings that are necessary to make our Release build of the project. This includes:

    • General: This has the following fields:
      • Give a name to the profile, and this name will be displayed in the Project Launcher main window
      • Give a description to the profile in order to make its goals clear for you in the future, or for anyone else who is going to use it
    • Project: This has the following sections:
      • Select a project, the one that needs to be built. Or you can leave this at Any Project, in order to build the current active project:
    • Build: This has the following sections:
      • Indeed, you have to check the box of the build, so you make a build and activate this section of options.
      • From the Build Configuration dropdown, you have to choose a build type, which is Shipping in this case.
      • Finally, you can check the Build UAT (Unreal Automation Tool) option from Advanced Settings in this section. The UAT could be considered as a bunch of scripts creating a set of automated processes, but in order to decide whether to run it or not, you have to really understand what the UAT is:
        • Written in C# (may convert to C++ in the future)
        • Automates repetitive tasks through automation scripts
        • Builds, cooks, packages, deploys and launches projects
        • Invokes UBT for compilation
        • Analyzes and fixes game content files
        • Codes surgery when updating to new engine versions
        • Distributes compilation (XGE) and build system integration
        • Generates code documentation
        • Automates testing of code and content
        • And many others—you can add your own scripts!
      • Now you will know if you want to enable it or not:
    • Cook: This has the following settings:
      • In the Cook section, you need to set it to by the book. This means you need to define what exactly is needed to be cooked and for which platforms it is enough for now to set it to WindowsNoEditor, and check the cultures you want from the list. I have chosen all of them (this is faster than picking one at a time) and then exclude the ones that I don’t want:
      • Then you need to check which maps should be cooked; if you can’t see maps, it is probably the first build. Later you’ll find the maps listed. But anyway, you must keep all the maps listed in the Maps folder under the Content directory:
      • Now from the Release / DLC / Patching Settings section, you have to check the option Create a release version of the game for distribution, as this version going to be the distribution one.
      • And from the same section give the build a version. This is going to create some extra files that will be used in the future if we are going to create patches or DLCs:
      • You can expand the Advanced Settings section to set your own options. By default, Compress Content and Save Packages without versions are both checked, and both are good for the type of build we are making. But also you can set Store all content in a single file (UnrealPak) to keep things tidy; one .pak file is better than lots of separated files.
      • Finally, you can set Cooker Build Configuration to Shipping, as long as we set Build Configuration itself to Shipping:
    • Package: This has the following options:
      • From this section’s drop-down menu, choose Package & store locally, and that will save the packages on the drive. You can’t set anything else here, unless you want to store the game packaged project into a repository:
    • Deploy: The Deploy section is meant to build the game into the device of your choice, and I don’t think it is the case here, or anyone will want to do it. If you want to put the game into a device, you could directly do Launch from within the editor itself. So, let’s set this section to Do Not Deploy:
    • Launch: In case you have chosen to deploy the game into a device, then you’ll be able to find this section; otherwise, the options here will be disabled. The set of options here is meant to choose the configurations of the deployed build, as once it is deployed to the device it will run. Here you can set something like the language culture, the default startup map, command-line arguments, and so on. And as we are not deploying now, this section will be disabled:

Now we have finished editing our profile, you can find a back arrow at the top of this wizard. Pressing it will take you back to the Project Launcher main window:

Now you can find our profile in the bottom section. Any other profiles you’ll be making in the future will be listed there. Now there is one step to finish the build. In the right corner of the profile there is a button that says Launch This Profile. Hitting it will start the process of building, cooking, and packaging this profile for the selected project. Hit it right away if you want the process to start. And keep in mind, anytime you need to change any of the previously set settings, there is always an Edit button for each profile:

The Project Launcher will start processing this profile; it will take some time, but the amount of time depends on your choices. And you’ll be able to see all the steps while it is happening. Not only this, but you can also watch a detailed log; you can save this log, or you can even cancel the process at any time:

Once everything is done, a new button will appear at the bottom: Done. Hitting it will take you back again to the Project Launcher main window. And you can easily find the build in the SavedStagedBuildsWindowsNoEditor directory of your project, which is in my case: C:UsersMuhammadDesktopBellzSavedStagedBuildsWindowsNoEditor.

The most important thing now is that, if you are planning to create patches or DLCs for this project, remember when you set a version number in the Cook section. This produced some files that you can find in: ProjectNameReleaseReleaseVersionPlatform. Which in my case is: C:UsersMuhammadDesktopBellzReleases1.0WindowsNoEditor.

There are two files; you have to make sure that you have a backup of them on your drive for future use.

Now you can ship the game and upload it to the distribution channel!

Packaging a patch or DLC

The good news is, there isn’t much to do here. Or in other words, you have to do lots of things, but it is a repetitive process. You’ll be creating a new profile in the Project Launcher, and you’ll be setting 90% of the options so they’re the same as the previous release profile; the only difference will be in the Cook options. Which means the settings that will remain the same are:

  • Project
  • Build
  • Package
  • Deploy
  • Launch

The only difference is that in the Release/DLC/Patching Settings section of the Cook section you have to:

  1. Disable Create a release version of the game for distribution.
  2. Set the number of the base build (the release) as the release version this is based on, as this choice will make sure to compare the previous content with the current one.
  3. Check Generate patch, if the current build is a patch, not a DLC.
  4. Check Build DLC, if the current build is a DLC, not a patch:

Now you can launch this profile, and wait until it is done. The patching process creates a *.pak file in the directory: ProjectNameSavedStagedBuildsPlatformNameProjectNameContentPaks.

This .pak file is the patch that you’ll be uploading to the distribution channel! And the most common way to handle these type of patch is by creating installers; in this case, you’ll create an installer to copy the *.pak file into the player’s directory: ProjectNameReleasesVersionNumberPlatformName.

Which means, it is where the original content *.pak file of the release version is.

In my case I copy the *.pak file from: C:UsersMuhammadDesktopBellzReleases1.0WindowsNoEditor to: C:UsersMuhammadDesktopBellzSavedStagedBuildsWindowsNoEditorBellzContentPaks.

Now you’ve found the way to patch and download content, and you have to know, regardless of the time you have spent creating it, it will be faster in the future, because you’ll be getting more used to it, and Epic is working on making the process better and better.

Summary

The Project Launcher is a very powerful tool shipped with the Unreal ecosystem. Using it is not mandatory, but sometimes it is needed to save time, and you learned how and when to use this powerful tool.

Many games nowadays have downloadable content; it helps to keep the game community growing, and the game earn more revenue. Having DLCs is not essential, but it is good, having them must be planned earlier as we discussed, and you’ve learned how to manage them within Unreal Engine. And you learned how to make patches and DLCs using the Unreal Project Launcher.

Resources for Article:


Further resources on this subject:


LEAVE A REPLY

Please enter your comment!
Please enter your name here