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
2. Download Windows SDK and Visual Studio Build Tools using msvc-wine:
cd $UE_PATH
git pull https://github.com/mstorsjo/msvc-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
3. Create necessary symlink:
ln -s $MSVC_PATH/VC/Tools/MSVC $MSVC_PATH/VS2022
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
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
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" "$@"
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
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:
But it is possible to do it using cmd launched by umu wrapper:
cd $UE_PATH
./umu wineconsole cmd
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"
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)