Available languages
es - Español

Complete guide to start using Unreal Engine on your Linux machine. Compatible with UE5 and its latest version UE5.1.

Unreal Engine is an amazing tool to create videogames and compile them for almost any (capable) device out there. Despite the fact that Unreal is an awesome multiplatform engine, trying to run its editor on Linux can be obscure and troublesome. This is a compact but comprehensive guide that includes instructions to install, execute and troubleshoot UE 5 for Linux.

unreal linux

Quick start

  1. Download the official binaries. They may work with almost any distribution, if you have problems see Building Unreal Engine to compile your own version of the engine.

  2. Extract Unreal Engine on any location, for example:

    # It's a good idea to create a folder per VERSION
    # Example
  3. Go inside the extracted folder Engine/Binaries/Linux and execute the file: UnrealEditor. You should see the Unreal Engine Editor just working.

  4. Open or create a project. After that you will be able to open your project with your IDE (if it has C++ code) and compile it as usual. We recommend Rider Linux as IDE because it offers the best development experience for Unreal C++.

Optionally, you can configure the build process to use the maximum power of your CPU. Follow these steps:

  1. Configure max build parallel actions and unity build modifying or creating the following file:

    $HOME/.config/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
  2. Set the contents of the file, accordingly to your CPU specifications, for example:

    <?xml version="1.0" encoding="utf-8" ?>
    <Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
       <!-- Free memory per action in bytes, used to limit the number of 
         parallel actions if the machine is memory starved. 
         Set to 0 to disable free memory checking.

In the previous example, by setting ProcessorCountMultiplier to 2, the build process takes into account logical threads (if your CPU supports Simultaneous Multi Threading (SMT) or hyper-threading) to calculate the max actions to execute in parallel. Then, setting MaxProcessorCount to 30 limits the compile thread count to 30. So if your CPU has 16 physical cores and 2 logical cores each (32 in total), this leaves 2 logical cores entirely free for other software, resulting in a smoother experience when multitasking during project compilation. This can change depending on your available RAM if you do not set MemoryPerActionBytes to 0, but doing that can eventually crash your system.

If your settings have been configured properly, you will get the following UE build process output:

Building XXX actions with 30 processes...

The second part is related with these two properties to reduce compilation times:

  • bUseUnityBuild: Whether to unify C++ code into larger files for faster compilation.
  • bForceUnityBuild: Whether to force C++ source files to be combined into larger files for faster compilation.

More info:

If you’re using PlasticSCM as your Source Control you can use our extension to see your GitHub issues directly on Plastic: Equilaterus PlasticSCM+GitHub

Common issues

  • I have VSCodium instead of VSCode (or any other IDE): just try to create a new C++ project and disable VSCode when Unreal asks for it.

  • Could not locate the assembly “Ionic.Zip.Reduced”: go to your Engine/Binaries/DotNet/UnrealBuildTool and locate the file Ionic.Zip.Reduced, duplicate that file into the parent folder Engine/Binaries/DotNet/.

  • Unreal Startup is extremely slow with a C++ project: run (NOT debug) the project. Use debug mode only when you require to actually debug the code. It is a little bit unconfortable but your project will load pretty fast.

  • C++ debug does not show variable contents: you can enable pretty printers by downloading these files from Unreal Repo and modifying (or creating) $HOME/.lldbinit with the following content:

    settings set target.inline-breakpoint-strategy always
    command script import "/home/your_user/path_to/UEDataFormatters.py"

    It’s weird that they are not included with UE5 binaries for Linux. But even with those files are still some issues.

Building Unreal Engine

To compile and generate your own binaries of Unreal Engine, follow these steps:

  1. Prepare your GitHub account to see the repo: See this guide

  2. Clone or download from: GitHub Repo.

  3. After downloading, execute Setup.sh:

  4. Generate files (but do not make, to avoid recompiling twice).

    # Do not execute this command 
    # make
  5. Go to Engine/Build/BatchFiles/, and execute the following command:

    /RunUAT.sh BuildGraph -target="Make Installed Build Linux" -script=Engine/Build/InstalledEngineBuild.xml -clean -set:HostPlatformOnly=true -set:WithDDC=false -set:GameConfigurations="Development;Shipping"

    If there are errors with dependencies: Copy Engine/Binaries/DotNET (from source folders) the output path LocalBuilds/Engine/Linux/Engine/Binaries/DotNET. Re-run previous command.

  6. Copy the results from LocalBuilds/Engine/Linux folder to any other location.

  7. Open the editor executable, located at: {any other location}/Engine/Binaries/Linux/UnrealEditor.

Common errors

  • Dependencies errors:
    • Could not locate the assembly “Ionic.Zip.Reduced”: go to your Engine/Binaries/DotNet/UnrealBuildTool and locate the file Ionic.Zip.Reduced, duplicate that file into the parent folder Engine/Binaries/DotNet/.
    • Blog birost post
    • Unreal forum thread

Other options

More information

Thanks for reading. Share this publication with your friends.