DEV Community

Adam Mateusz Brożyński
Adam Mateusz Brożyński

Posted on

Building Unreal Engine 5.7 blueprint project package for Windows under Linux (Ubuntu 24.04)

I have managed to compile my project based on 3rd person sample in UE 5.7 using Umu/Proton. Here is how to do it:

1. Set paths and create AutoSDK dir:

export UE_PATH=/Path/To/UE_5.7 # Set this to your Unreal Engine dir
export MSVC_PATH=$UE_PATH/AutoSDK/HostWin64/Win64
mkdir -p $MSVC_PATH
Enter fullscreen mode Exit fullscreen mode

2. Download Windows SDK and Visual Studio Build Tools using msvc-wine:

cd $UE_PATH
git pull https://github.com/mstorsjo/msv​c-wine
cd msvc-wine
./vsdownload.py --accept-license \
    --major 17 \
    --dest $MSVC_PATH \
    --msvc-version 17.8 \
    --sdk-version 10.0.22621
    --architecture x64 \
    --host-arch x64
$ ./install.sh $MSVC_PATH
Enter fullscreen mode Exit fullscreen mode

3. Create necessary symlink:

ln -s $MSVC_PATH/VC/Tools/MSVC $MSVC_PATH/VS2022
Enter fullscreen mode Exit fullscreen mode

4. Download GE-Proton10-34:

cd $UE_PATH
wget https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton10-34/GE-Proton10-34.tar.gz
tar -xzf ./GE-Proton10-34.tar.gz
Enter fullscreen mode Exit fullscreen mode

5. Download Umu-Launcher:

wget https://github.com/Open-Wine-Components/umu-launcher/releases/download/1.4.0/umu-launcher_1.4.0-1_all_ubuntu-noble.deb
sudo apt install ./umu-launcher_1.4.0-1_all_ubuntu-noble.deb
Enter fullscreen mode Exit fullscreen mode

6. Create wrapper script in $UE_PATH/umu:

#!/usr/bin/env bash
set -euo pipefail

nvidia-settings -a "[gpu:0]/GPUPowerMizerMode=1" # prevent some crashes on RTX

# SET YOUR PATHS HERE!!!
export UE_PATH="/Your/Path/To/UE_5.7"
export UE_SDKS_ROOT="z:\\Your\\Path\\To\\UE_5.7\\AutoSDK"

export PROTONPATH="$UE_PATH/GE-Proton10-34"
export WINEPREFIX="$UE_PATH/prefix"

# Fixes preventing some crashes on RTX
export DXVK_ASYNC=1
export PROTON_USE_XALIA=0 
export DISABLE_LAYER_MESA_ANTI_LAG=1

# Disable RayTracing for more stability
export VKD3D_CONFIG=nodxr

EXE="$1"
shift || true

mkdir -p "$WINEPREFIX"
exec umu-run "$EXE" "$@"
Enter fullscreen mode Exit fullscreen mode

7. Create Unreal Engine launch script in $UE_PATH/start:

#!/usr/bin/env bash

# We will use DX12 and no RayTracing
./umu Engine/Binaries/Win64/UnrealEditor.exe -dx12 -NoRayTracing
Enter fullscreen mode Exit fullscreen mode

8. How to build a package outside the UE editor?

I was not able to build a package directly from editor:

LogOutputDevice: Error: === Handled ensure: === 
LogOutputDevice: Error: Ensure condition failed: BuildTargetInfo [File:D:\build\++UE5\Sync\Engine\Source\Editor\TurnkeySupport\Private\TurnkeySupportModule.cpp] [Line: 447] 
LogOutputDevice: Error: CookOrPackage BuildTargetName='' IniPlatformName='Windows' Mode='1' 
BuildCookRunParams='-nop4 
-utf8output 
-nocompileeditor 
-skipbuildeditor -cook 
-project="S:/Unreal/Projects/Janek_new/Janek1.uproject" 
-unrealexe="S:\Unreal\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" 
-platform=Win64 
-installed 
-SkipCookingErrorSummary 
-JsonStdOut 'where BuildTargetInfo is null 
and architecture 'x64' is specified. 
One way to do this is to add c++ code to a project, 
but not build the project editor, then package. 
Returning without cook or package instead of asserting. 
LogOutputDevice: Error: Stack:
Enter fullscreen mode Exit fullscreen mode

But it is possible to do it using cmd launched by umu wrapper:

cd $UE_PATH
./umu wineconsole cmd
Enter fullscreen mode Exit fullscreen mode

This is the build command that you can change accorging to your needs:

set UE_PATH=Z:\Your\Path\To\UE_5.7
cd %UE_PATH%\Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -nop4 -utf8output -project="%UE_PATH%\Projects\YourProject\YourProject.uproject" -unrealexe=%UE_PATH%\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" -platform=Win64 -clientconfig=Development -serverconfig=Development -installed -nocompileeditor -skipbuildeditor -nobuild -cook -stage -package -pak -iostore -prereqs -archive -archivedirectory="%UE_PATH%\Projects\YourProject\Packaged\Win64"
Enter fullscreen mode Exit fullscreen mode

This should produce packaged files into 'Projects/YourProject/Packaged/Win64`.

Be aware that UE 5.7 is unstable. Both Linux native and Windows version run on Proton are crashing very often so save your project often and try to tinker with DefaultEngine and DefaultEditor configuration.

Top comments (0)