Packing and shipping a project

From PSwiki
Revision as of 20:25, 21 November 2020 by Talad (talk | contribs)
Jump to navigation Jump to search

Generating separate Chunks in Packaging and Cooking

To generate multiple chunks while packaging based on the folders present in your Content Browser do the following:

1) First thing to enable is:

 Edit->Project Settings->Packaging->Generate Chunks

2) Create a new Primary Label in one of the directories.

 rightclick->Miscellaneous->"Data Asset" then select "Primary Label" as type
 Give it a name
 Open the Label and assign a chunk ID, and flag "Label Assets in My Directory"

3) Open the Asset Audit Window

 Window->Developer Tools->Asset Audit  -> Add Chunks

4) Click on Add Chunks


(optional, not used) To flag a single asset:

 Edit->Editor Preferences->Experimental->Allow ChunkID Assignment

PSUnreal

MacOSX:

Got this error while packaging on Mac:

 Unable to load module '/Users/luke/PSUnreal/Binaries/Mac/UE4Editor-PSUnreal.dylib' because the file couldn't be loaded by the OS.

I fixed it by running this command after the error occurred, than restart the build:

 install_name_tool -change Wordnet.dylib @loader_path/Wordnet.dylib /Users/luke/PSUnreal/Binaries/Mac/UE4Editor-PSUnreal.dylib

Linux :

/home/planeshift/UnrealEngine/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -project="/home/planeshift/PSUnreal/PSUnreal.uproject" -noP4 -clientconfig=Shipping -utf8output -platform=Linux -targetplatform=Linux -build -cook -allmaps -stage -archive -archivedirectory="/home/planeshift/temp/psunreal_shipping"

Windows 9Gb uncompressed , 3.9Gb after zip, takes about 13 minutes to create the shipping package:

C:\UnrealEngine\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project="C:\PSUnreal\PSUnreal.uproject" -noP4 -platform=Win64 -clientconfig=Shipping -cook -allmaps -build -stage -pak -archive -archivedirectory="F:\temp\psunreal_shipping_client"


Check this:

https://pypi.org/project/buildbot-UnrealEngine/

Check this:

https://blog.jamie.holdings/2019/09/15/debug-shipping-builds-in-unreal-engine-4-23/

Example and notes

To package and ship a project you need to have AutomationTool and UnrealBuildTool compiled. You can find those under your project .sln in the "programs" group. Compiling these with DebugGame config gave me errors, so I had to compile those with "Development" config.

Example of packing the VehicleGame sample on my machine. This will compile and package in one command. Consider DebugGame is stilla debug Build. Total is 770Mb (without pdb file)

C:\Luca\UnrealEngine\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project="F:\Unreal Projects\VehicleGame\VehicleGame.uproject" -noP4 -platform=Win64 -clientconfig=DebugGame -serverconfig=DebugGame -cook -allmaps -build -stage -pak -archive -archivedirectory="F:\temp\vehicle_packaged"


Example of packing the VehicleGame in Shipping config (best optimized). Total is 680Mb (without pdb file)

C:\Luca\UnrealEngine\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project="F:\Unreal Projects\VehicleGame\VehicleGame.uproject" -noP4 -platform=Win64 -clientconfig=Shipping -serverconfig=Shipping -cook -allmaps -build -stage -pak -archive -archivedirectory="F:\temp\vehicle_packaged_shipping"

Example of packing MyProject2 in Development configuration.

D:\Luca\UnrealEngine\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project="D:\Unreal Projects\MyProject2\MyProject2.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -log -cook -allmaps -build -stage -pak -archive -archivedirectory="F:\temp\myproject2"


Overall timing for packing and shipping

Numbers are expressed in hours with: measured number (my estimate)

OS Compile UE Compile PS Build shipping client Upload to updater server Upload the full package
Windows ? (2) ? (1) ? (2) ? (0.2) ? (1)
Linux ? (2.5) ? (2) ? (2.5) ? (0.2) ? (1)
MacOS ? (10) ? (6) ? (12) ? (0.2) ? (1)