Unreal Engine on Linux
This post focuses on the more technical aspects of Unreal Engine 4.26 before it can be used for the game scripting module.
Why?
Linux, particularly Kubuntu, is simply my current preferred choice of OS.
Support
Epic Games have demonstrated their support for using Unreal Engine 4 on Linux (particulary Ubuntu) for the past few years.
However, unlike Unity3D, they do not provide an executable/installer on their website, a Linux version of the Epic Games launcher, or the engine on repositories.
Installation
They do however provide the entirety of the engine’s source code, along with a guide on creating a compiled version for Linux.
![]() |
|---|
| Unreal Engine’s GitHub repository (reqires association between your Epic Games and GitHub accounts) |
For those that have used Git or GitHub and the command line before, this is a reasonably easy - albiet time consuming - process, which can take multiple hours. Checkout on the 4.26 branch, perform initial setup and compile.
In the end it spits out a straight executable file, ./UE4Engine. Upon opening the project file, I got a warning that this project was made in another version of Unreal. This is probably it either noticing the different operating system or, simply, a bug.
First-class support?
I open up the editor, then a blueprint, then I try to drag the tab to the main window and… crash. No crash handler from Unreal, just a plain and simple crash. Okay, maybe it’s a one off thing, I open up the system again, try to drag in a blueprint instance to the level, and crash again. The novelty has worn off at this point.
In order to keep an eye on things, I open a terminal window (think CMD or Powershell), run ./UE4Engine from that and try dragging and dropping again for another crash. This time, I dragged faster, no crash. Tried again, but slower, no crash. Somewhere between the two? Just right for a crash.
The logs went low level enough that X, the window manager, appeared to be involved. It gave the message: X Error of failed request: BadWindow (invalid Window parameter).
Community to the rescue
Unreal did output a stacktrace, but I knew very little about how X actually worked, so I took to Google. After some time searching, I came across this post (archive.org) on answers.unrealengine.com, a StackExchange-esque site.
The user tgroll had found a solution: remove calls to CursorDecoratorWindow->MoveWindowTo(Position); from certain files in the engine.
I figured that if this was a callable function, then there was a good chance that this could happen elsewhere in the engine.
I did a search through all of the source files from my copy, found the exact files and line numbers that made reference to that function, and commented them out. Recompiled Unreal with the last few steps of their instructions (only some had to recompile, most of it was skipped) and then tried it all over again.
Post-fix
Dragging and dropping anything affected now works without issue and without too much of a difference as to how it worked before.
Aside from this problem, which is likely to be localised to 4.26, I have yet to find any disparity over engine function between Linux and Windows. Except for the likely inability to compile the game directly for Windows. If I do end up finding something that can’t be overcome, I will switch to a VM or a full install of Windows.
![]() |
|---|
| Unreal Engine 4.26 on Kubuntu |
So now, I have backed up my game project on a private repository on GitHub (like this blog) and I will update and push the project there when I make a change. This helps keep track of different snapshots of the project in case something goes wrong further down the line.

