Developing Unreal Engine Games on Linux

As someone fully committed to Linux as a daily driver, developing Unreal Engine projects presents both unique challenges and great flexibility. Fortunately, Unreal Engine runs natively on Linux, and with the right setup, it’s entirely possible to develop and test games without relying on Windows for the majority of the workflow.

Running Unreal Engine on Linux

You can install Unreal Engine using the official Linux binaries provided by Epic Games:

After downloading, extract the archive to your preferred location. I usually extract it to:

~/Documents/UE

To launch the editor, navigate to:

[UnrealEngineLocation]/Engine/Binaries/Linux/UnrealEditor

Replace [UnrealEngineLocation] with the actual path where you extracted Unreal Engine (e.g., ~/Documents/UE/UnrealEngine-5.5).

While you can launch UnrealEditor by double-clicking it in a file explorer, it’s often faster and more reliable to launch it via the terminal—especially since the Engine/Binaries/Linux folder contains a large number of files that can make locating the executable a bit tedious.

Recommended Tools

Installing VS Code

I highly recommend Visual Studio Code for Unreal development on Linux. It pairs very well with C++ projects and is lightweight and responsive on Linux systems.

To install it:

Arch-based distros:

yay -S visual-studio-code-bin

Debian-based distros:

sudo apt install code

Fedora:

sudo dnf install code

I use an Arch-based distribution, but these instructions should work fine on other distros as well. If you run into issues, the official download page provides alternate install methods.

Installing WiVRn

If you're working on VR content, WiVRn is essential for bridging the gap between your Linux system and a Windows SteamVR runtime. You can install the dashboard with:

yay -S wivrn-dashboard

Note: WiVRn only works if a headset is actually connected. Without a headset, Unreal Engine may fail to launch VR-enabled projects when the OpenXR plugin is enabled.

OpenXR and Headset-Dependent Launch Issues

If your project uses the OpenXR plugin and no headset is connected, Unreal Engine may crash or refuse to open. This can be a headache, especially when you're not actively testing VR features.

To work around this, I strongly recommend enabling C++ support when you create your Unreal project. This allows you to launch the project through a debugger even when a headset isn't connected.

Here’s how:

Open your project’s generated .code-workspace file in VS Code.

Select the [ProjectName]Development configuration.

Start debugging.

Click “Resume” a few times if it freezes—eventually, the project should launch successfully.

This workaround gives you a way to work on your VR project even when your headset isn’t plugged in. Packaging for Windows Users

Even if you’re developing on Linux, you’ll likely want to release your game for Windows, as most players are still on that platform. To do this, I use a Windows virtual machine for packaging.

Here’s the command I use inside the VM:

"[UnrealEnginePath]/Engine/Build/BatchFiles/RunUAT.bat" ^
  -ScriptsForProject="[PathToProject]/[ProjectName].uproject" ^
  Turnkey -command=VerifySdk -platform=Win64 -UpdateIfNeeded -EditorIO -EditorIOPort=55408 ^
  -project="[PathToProject]/[ProjectName].uproject" BuildCookRun -nop4 -utf8output -nocompileeditor -skipbuildeditor -cook ^
  -project="[PathToProject]/[ProjectName].uproject" -target=ShooterTemplate ^
  -unrealexe="C:/Program Files/Epic Games/UE_5.5/Engine/Binaries/Win64/UnrealEditor-Cmd.exe" ^
  -platform=Win64 -installed -stage -archive -package -build -pak -iostore -compressed -prereqs ^
  -archivedirectory="C:/ShippingPath" -manifests -clientconfig=Shipping

Be sure to replace:

[UnrealEnginePath] with the actual path to your Unreal Engine installation in the VM.

[PathToProject] with the full path to your Unreal project.

[ProjectName] with the name of your project.

This command will output a fully packaged Windows build to C:/ShippingPath, and it will create the folder if it doesn’t already exist.

Testing Windows Builds on Linux

To test Windows builds on Linux, I use Proton. Simply add the packaged .exe as a non-Steam game in Steam, then set it to use a Proton version of your choice. This method works great for non-VR titles.

For VR content, testing inside a VM is not recommended unless you have a dedicated GPU for passthrough. Performance and compatibility will be poor without one.

Final Thoughts

Developing Unreal Engine games on Linux can absolutely be done—and done well. With the right setup, tooling, and workflow, you can develop, package, and test your games across platforms without needing to abandon your Linux environment.

If you're comfortable with tinkering and don’t mind a few quirks along the way, Linux might just surprise you as a powerful Unreal Engine development platform.