- Releasing Your Project
- Creating a release versioned project with cooked content for distribution.
- Project
- Build
- Package
- Deploy
- Assets and Packages
- Overview of the asset and package system used in Unreal Engine 4.
- Asset Naming
- Renaming and Moving Assets
- Asset Management
- Minimizing Source Control Contention
- Copying Assets to Other Projects
- Asset Packs
- Build Operations: Cook, Package, Deploy, and Run
- An overview of the available Build Operations (cook, package, run, and deploy) that can be for Unreal Engine 4 projects.
- Packaging Methods
- File Menu
- Launch On
- Platform Selection
- Project Launcher
- Custom Launch Profile
- Command Line
- Content Cooking
- Cook by the book
- Cook on the fly
- Deploying a Build
Releasing Your Project
Creating a release versioned project with cooked content for distribution.
Once your game is complete, you can package a release version for distribution. Whether you go through the Project Launcher in the editor or the Project Launcher tab in Unreal Frontend, the steps are the same for packaging a release-versioned project. However, depending on if you are creating a Windows game and need to create your own installer, shipping a mobile project, or targeting another platform, the steps you take with the finished packaged content will be different.
This is an example of packaging a 1.0 release of ShooterGame, aimed at Windows 64-bit, localized in English.
Open the Project Launcher, either within Unreal Editor or using Unreal Frontend.
Create a new Custom Launch Profile using the + button.
Set a name and description for your profile.
There are a number of settings for the release process.
Project
You can set the specific project to use, or use Any Project to patch the current project.
Build
Set the build configuration to Shipping.
Optionally, expand Advanced Settings if you need to build UAT as part of the release.
Select By the Book as the cooking method in the dropdown menu.
Check the boxes for all platforms you would like to cook content for. In this example for Windows testing, we have selected WindowsNoEditor.
Check the boxes for all cultures to cook localizations for.
Check the boxes for which maps to cook.
In Release/DLC/Patching Settings:
Check the Create a release version of the game for distribution. checkbox.
Enter a version number for this release.
Expand Advanced Settings and make sure the following options are enabled, as well as any others you need for your specific project’s distribution method:
Save packages without versions
Store all content in a single file (UnrealPak)
Also under Advanced Settings, set the cooker configuration to Shipping.
Package
Set the build to Package & store locally.
Deploy
Set the build to Do Not Deploy.
Once you have set all the above settings, navigate back to the main profile window using the Back button in the top right corner.
Click on the launch icon next to your Release profile.
The project launcher will go through the building, cooking, and packaging process. This may take some time depending on the complexity of your project.
Once the operation is complete, close the window or click on Done. You can test the patch now with the steps below.
Save the asset registry and pak file from [ProjectName]\Releases[ReleaseVersion][Platform] . In this example, this is ShooterGame\Releases\1.0\WindowsNoEditor .
The asset registry and pak file will be needed for any future patches or DLC to check against.
On Windows, you can test running the project from [ProjectName]\Saved\StagedBuilds\WindowsNoEditor .
While Steam will allow you to upload full packages of your game and do the updating process for you, using release versions as outlined here is still the recommended practice when distributing through Steam. This will make the process smoother if you decide to add additional supported platforms or distribution methods later on.
Assets and Packages
Overview of the asset and package system used in Unreal Engine 4.
An Asset is a piece of content for an Unreal Engine project, and can be thought of as a UObject serialized to a file. In the Content Browser‘s Sources Panel, you can display the Asset Tree by clicking the Show/Hide Sources and Collections button.
The Asset Tree displays a list of folders in your content directories where .uasset files reside.
Clicking on a folder in the Asset Tree shows you all the Assets found in that folder and its subfolders.
Right-clicking on a folder shows you a list of actions you can do to that folder and Assets in the folder or its subfolders. You can add new folders to the Asset Tree via this context menu.
It is recommended that you move Assets from within the Content Browser. This is because references to Assets include the full directory path to the Asset. If you move an Asset, its path will change. You can move Asset files between folders outside of the Unreal Editor, but do not expect references to remain intact.
Level (.umap) files are not affected by this restriction.
For more information on using the Content Browser to move, rename, add, and delete Assets, see Working with Assets .
Asset Naming
The user names an Asset when importing or creating it. The Asset’s path is directly associated with the Asset’s location on disk. The folder in which the Asset is created or imported automatically sets this path. For example, a path of Content/Characters/MyCharacter would save to /UE4/MyProject/Content/Characters/MyCharacter.MyCharacter.uasset.
Renaming and Moving Assets
An Asset can be renamed in the Editor by selecting it in the Content Browser, then left-clicking on its name or pressing the F2 key. Assets can be moved or copied to different folders by being selected and dragged in the Content Browser. When renamed or moved in this way, other Assets that refer to the renamed or moved Asset will be updated appropriately, and an invisible Redirector will be left in place of the original Asset. Redirectors can be cleaned up by right-clicking in the Content Browser and selecting Fix Up Redirectors in Folder. All Assets that referenced a Redirector will point to the Asset in its new location, then remove the Redirector. Note that you need to resave the Assets. You can delete Assets within the Content Browser, either by using the option in the context menu on the Asset, or by selecting the Asset and pressing the Delete key. If an Asset is referenced by other Assets, a menu displays asking which existing Asset (if any) should be used in place of the deleted one.
Right-clicking on a folder or anywhere in the Sources Panel of the Content Browser provides access to the Fix Up Redirectors in Folder option.
Moving or renaming Assets should be done in the Content Browser. If you rename, move, or delete an Asset file outside of the Editor, such as via your operating system’s file explorer, any Assets referencing the affected Asset will fail to find it, even if it still exists in the project.
References to Assets contain the path in the reference. For example: Blueprint’/MyProject/Content/Characters/MyCharacter.MyCharacter’.
Asset Management
Unreal Engine generally loads and unloads Assets automatically by Unreal Engine. However, there are cases where taking more direct control over the process can result in significant performance improvements, such as reduction or elimination of redundant load times, and removal of hitches during gameplay. For detailed information about managing Asset loading and unloading, see the Asset Management page. When deploying a project, Assets are «cooked» (converted to final, binary formats dependent on the Asset type and target platform) and can be separated into multiple .pak files for distribution. For information on these processes, see Cooking and Chunking .
Minimizing Source Control Contention
When a workflow includes package files that each contain several Assets, source-control contention can be an issue. A workflow that instead supports and encourages creating many individual Asset files means that each Asset can be checked out individually. This reduces source-control contention and bottlenecks in workflow.
Additionally, sync time in content management systems is faster with individual Asset files than with packages containing multiple Assets, because a change to a single Asset requires only one file update.
In Unreal Editor, Assets are stored in .uasset files, each of which typically contains only a single Asset. Each Asset reference contains a directory-style path that uniquely identifies any Asset in the game.
Assets are created (or imported) in the Content Browser. For information about creating Assets, see Working with Content . For information about working with the Content Browser, see Content Browser .
Copying Assets to Other Projects
You can use the Migrate Tool in the Content Browser to create a copy of an Asset (and any dependent Assets) for use in another project.
For more information about the Migrate Tool, see Migrating Assets .
Asset Packs
If you have downloaded Asset packs through the Launcher, you can add the entire contents of the pack to your project (whether it is open or closed) without needing to open it or migrate specific Assets.
To add an Asset pack to your project:
Find the Asset pack in your Vault which is located at the bottom of the Library tab.
Click Add to Project.
Select your project in the list that appears.
Click Add to Project.
All of the content will be inside a folder named after the Asset pack you added.
Build Operations: Cook, Package, Deploy, and Run
An overview of the available Build Operations (cook, package, run, and deploy) that can be for Unreal Engine 4 projects.
As part of the packaging process, the Automation Tool (sometimes abbreviated as UAT for Unreal Automation Tool) is used to work through a set of utility scripts for manipulating Unreal Engine 4 (UE4) projects. For the packaging process, the Automation Tool uses a particular command called BuildCookRun. This command can cook content for a platform, package it up into a platform’s native format for distribution, deploys it to the device, and automatically runs the project (where applicable). Packaging your project does not solely require the direct use of UAT, though. You can also use the File menu to select from available platforms or Command Line to cook and package content for a platform.
As part of the BuildCookRun command in UAT, the following stages outline the different stages of the packaging pipeline:
Build: This stage compiles the executeables for the selected platform.
Cook: This stage cooks content by executing the Editor in a special mode.
Stage: This stage copies the executables and content to a staging area; a standalone directory outside of the development directory.
Package: This stage packages the project into a platform’s native distribution format.
Deploy: This stage deploys the build to a target device.
Run: This stage starts the packaged project on the target platform.
For a list of predefined tasks, read the BuildGraph Script Tasks reference page.
Packaging Methods
Becasuse you can deploy content in several different ways to a target platform for testing, debugging, or in preparation for release, you can test your packages in multiple different ways:
You can use Launch On to quickly test a part of your currently loaded level for testing and debugging.
You can use the Project Launcher to use a default profile or create a custom one to perform actions like profiling or debugging for your project’s latest build.
Or you can take an already packaged game and deploy it to a platform, such as a console or mobile device.
Use the following sections to learn more about these packaging methods and how you can package your games using them.
File Menu
The File menu can be used to select a platform to package your project for. When you package a project using this option, it will save the packaged project to a folder that you select but will not deploy it to the device.
From this menu under Package Project, you can perform the following actions:
Build a project for a selected Platform
Choose a Build Configuration; Development or Shipping
Access the Packaging Settings and Support Platforms located in the Project Settings
Launch On
Using the Launch button in the main toolbar enables you to quickly test your project with a single click by building and deploying the currently loaded level for testing.
Use the drop-down arrow next to the Launch button to select from the list of available devices to deploy a build to.
When clicked, the launch process automatically Cooks the necessary content, build code, and launch on the selected platform. The build is a quick way to test functionality during active development without the need to compile and run the entirety of the project every time you need to test something.
Platform Selection
If you do not see the platform you want to deploy to or it is grayed out in this menu, here are some things you can check:
Make sure that you have the correct SDK installed for that platform (if required) and that it is supported by the Engine version you are currently using. Often, this can be checked in the platform’s UEBuild.cs file located in Engine/Source/Programmings/UnrealBuiltTools/Platforms. For example, if you needed to see which SDK is supported for Android, you could look in the UEBuildAndroid.cs file.
Be sure that any Visual Studio extensions or necessary files are installed.
Some platforms (like console) require external tools to connect the device. Make sure this is working properly, and the device is detected.
Use the Device Manager in UE4 to «claim» any devices as needed, which ensures it can only be used for your local machine.
Project Launcher
The Project Launcher affords you the ability to deploy for different platforms all from one location and even from a single launch profile.
Each platform that is deployed to has its own default launch profile (listed in the main window). You can also choose to create a custom one that enables you to build a project in a specific way with many advanced settings. These include being able to apply command line arguments, test downloadable content (DLC) and patching releases, and much more.
For additional information, see the Project Launcher reference page.
Custom Launch Profile
From the Project Launcher, you can create a Custom Launch Profile that can be used on all platforms or even just the ones you specify. These profiles enable you to build your content in specific ways by setting how it is cooked, packaged, and deployed using the available build operations.
To add your own Custom Launch Profile, click the plus (+) sign on the right side of the window.
After doing so, the custom launch profile is immediately open. Be sure to give it a Name and Description so that you can quickly identify it later.
Command Line
The Automation Tool enables you to cook and package your game using command line, and since all build operations are performed by UAT, it can be run directly on the command line with RunUAT.bat file when provided with valid arguments.
The RunUAT files can be found in Engine/Build/BatchFiles . For Windows, use the RunUAT.bat file and for Mac/Linux use the RunUAT.sh.
A basic cook can be performed using the following command line arguments following either the UE4Editor.exe or UE4Editor-cmd.exe files:
The commandlet must be specified via -run=cook and a platform to cook for must be specified. It will generate the cooked data for the platform that is specified and saves it to the following location:
Authoring your command line arguments by hand can be quite involved and has more potential to create accidental errors. Because of this, it is recommended to use a Custom Launch Profile to accurately generate a command line for your build. Any parameters entered in the custom launch profile will automatically generate the command line and display it in the Output Log window when it is used to cook and build the project. Any text that follows BuildCookRun onward can be directly passed as your command line arguments using RunUAT.bat.
The following is an example of the generated output from the Project Launcher and the equivalent command line that would need to be manually authored to use for RunUAT.bat:
Project Launcher Log Window
Manually Authored
For additional information, see the Content Cooking page.
Content Cooking
In Unreal Engine, content is stored in particular formats that are supported (png for textures data or WAV for audio) for a platform. However, this content may not be in a format that can be used by the platform you are developing for. The process of Cooking converts assets used by the Engine into ones that can be read on the platforms being deployed to. In some cases, the cooked content is converted to a proprietary format (like with console) that can only be read by by that platform.
Cooking content for different platforms can be done by using Command Line or by using the Project Launcher , and its in-Editor interface. For some platforms, all content must be cooked before it can be used on the device for it to work correctly. You may need to check with the platform you are developing for if this is the case.
There are two ways to cook content for your projects; by the book and on the fly.
Cook by the book
Cook by the book performs the entirety of the cook process ahead of time allowing for the build to deploy the cooked assets all at once rather than as needed while playing the level (if you were using a cook server). This option is useful for developers who are not iterating on individual assets or for those who want the game to perform at full-speed without waiting for a server to deliver the necessary cooked content. Typically, performance testing and playtests will want to use this method.
When performing a cook by the book, there is no extra setup required for the build. Use the Project Launcher to create a Custom Launch Profile and in the Cook section, use the drop-down selection to choose by the book.
If you have any game-specific command lines to add, you can expand the Advanced Settings and add the arguments to the Additional Cooker Options.
An example would be:
For additional information about this cook method and its available settings, refer to the Project Launcher reference page.
Cook on the fly
When you choose to cook content on the fly (COTF), it will delay cooking it until after the game has been deployed to the platform. Only the executable and some other basic files are installed, which use network communication with a Cook Server to make requests on-demand as the content is needed. COTF allows for faster iteration for developers who will be making changes to content regularly or those who will only be exploring sections of the game.
To cook on the fly, you will first need to start a Cook Server on a machine which has the full project available to it. This can be either your local machine or a remote server which performs the cook. The Cook Server can be run by starting the Editor in command line mode using the following arguments with the UE4Editor-cmd.exe:
On the developer’s local machine, access a Custom Launch Profile from the Project Launcher and in the Deploy Section, set the method to File Server. Optionally, you can use the Default Deploy Platform to select a single platform or use the toggles to enable multiple platforms to build and deploy to.
For the executable to know where to load content from, it needs to be made aware of the IP address of the machine that is running the Cook Server. To do this, you will need to pass the following command line argument on the client’s command line (where x.x.x.x represents your host’s IPs):
The argument can be specified in your custom launch profile under the Launch section in the Additional Command Line Parameters text box. If the IP address is left unspecified, the build will load from existing local files and not attempt to connect to the Cook Server.
For additional information about this cook method and its available settings, refer to the Project Launcher reference page.
Deploying a Build
To deploy a build from the Project Launcher, you must have a project that cooked and packaged. There are a couple of ways you can deploy this type of build to a platform. In your Custom Launch Profile under the Deploy section, set the way you want to deploy the build.
File Server will cook and deploy the content at runtime as it is needed to the device.
Copy to Device will copy the entire cooked build to the device.
Do Not Deploy will not deploy the build to any device once the cook and package complete.
Copy Repository will copy a build from a specified file location to deploy to any device.
For additional information about this deployment methods and their available settings, refer to the Project Launcher reference page.