Unreal Engine 4 and Linux

While the Unreal Engine has enjoyed Linux support in the past, with Unreal Engine 4 we want to make Linux a first class member of our platform family. Our plans regarding the Linux platform balance the needs of both our internal projects and some partner projects, alongside the larger needs of the Linux community. This roughly translates to four large areas of Unreal Engine4 Linux development (each with its own unique challenges):

  • robust, secure and CPU-effective Linux game servers
  • full-featured Linux client support
  • feature-rich, native Linux development tools
  • enhancing our tools on Windows and Mac OS to make targeting Linux easy

When hearing about Unreal Engine 4 supporting Linux, it is easy to only think about the first three. However, if we want Linux to take off in the game development industry at large, we need a seamless integration with existing workflows of game companies, so that costs of shipping a Linux version of the game are minimized. That is why, somewhat counter intuitively, we need robust Windows and Mac OS tools that would allow anyone to target Linux by just recompiling and repackaging the project. This is also why we started out with cross-compilation and are planning to continue to support it, while also working to make native development easier.

We believe that this ability to target Linux (and, particularly, SteamOS) with cross-tools using the existing development environment is needed in order for it to get broader traction.

COMMUNITY ENGAGEMENT

When we released 4.0 two months ago, we only supported Linux dedicated servers; by now official support includes running packaged games (both standalone game and client). Having SteamOS in mind, we consciously limited ourselves to the x86-64 architecture with the officially supported way of developing being cross-compilation from Windows (Mac OS toolchain will be added in the future). Documentation (admittedly scarce) of the process is maintained through the community wiki.

Needless to say, the vibrant Linux community wanted more from the very beginning :slight_smile: Once the Unreal Engine was out in the wild, enthusiastic developers (some of them working for much bigger companies than ours!) quickly picked up the slack and started with their own initiatives, which concentrate on getting development tools running on the platform. While we had (and have) that in our plans (take a look at the engine roadmap that we recently made public), quite frankly we did not expect that to happen so soon. Yet the community managed to beat us to getting Unreal Editor to start under Linux. :wink:

I feel obliged to mention by name the most active folks who were driving the community effort:

Of course there are many more folks who frequent the #ue4linux IRC channel on Freenode and our forums. Thank you so much for all the pull requests (which of course will be reflected in the credits), feedback and invaluable advice! We feel honored to have people from Google, Red Hat and MIT donating their free time to improve Unreal Engine 4 on Linux! Also special thanks to the folks at DarkSide, particularly Michael Liebenow, who have been working shoulder-to-shoulder with us on UE4’s Linux support.

ROADS TO BE EXPLORED

Having an AAA-grade game engine available for tinkering and experimentation benefits both us and the open source community. We are stressing a lot of components of the Linux software stack (and of course drivers), which sometimes can get improved as a result (e.g. Valve’s very handy OpenGL debugger). We are looking forward to engaging with a wide variety of projects!

We believe the engine is a fertile field for all kinds of research related to compilers, and we hope that both the gcc and clang communities will take advantage of our vast code base, especially considering that we are keen to embrace the latest and newest C++11 features.

There are so many things we would like to do with Unreal Engine 4 on the Linux platform, but currently don’t have time for:

  • Improve Unreal Engine 4 scalability by running a game server on a large, NUMA machine with tens (hundreds?) of CPUs and analyzing how we could utilize them
  • Port it to some exotic architecture like Loongson and see what you will run into
  • Port it to Linux-based devices like GCW Zero handheld or Raspberry Pi (I have partially done that in the past, and can help with building third-party libs)
  • Create a freely available (yes, the license allows that, provided that you don’t distribute the sources or tools) benchmark that could be included in Phoronix Test Suite and/or used to improve Linux graphics drivers
  • Port it to other *nix (FreeBSD, Solaris)

And of course, we encourage the UE4 community to use the opportunity to beat us again and be the first to ship an Unreal Engine 4 Linux game! :slight_smile:

This is great news! Thanks for everyone working on this and contributing to the project, you’re awesome! Can’t wait to move back “home” :slight_smile:

1 Like

this kind of news always make me happy :slight_smile:

thanks epic !

As soon you lunch UE4 as linux native I’ll buy it.

This is fantastic news!
OMG, cannot believe, no more Windows, no more Visual Studio!
That makes me so happy.
As I simply love linux, no less love C++, I really cannot express how happy it makes me feel!

Congratulations to all people working on it.
Thank you!

This is great news! I just bought the engine and I love to contribute.
I hope we can bring it to QMake or CMake, so I can program in my favorite IDE.
I look forward to work with all of you!

We generate CMakeLists.txt so you may try using your favorite IDE even as of now (UE 4.2+).

Is there a more recent prediction about the Linux native release date? Will it come with version 4.2?

I just updated my working copy to latest-preview, ran the project generation script, and there were the CMakeLists.txt file! I opened it in KDevelop4 and instantly there was a perfect project file with all the build targets!! I right-clicked on UE4Game-Linux-Debug and off it went, resulting in a successful build!!!

!!! Excitement !!!

…so it’s really getting there. Amazing.

Okay, slight exaggeration for effect since the latest dependency zips are missing most of the contents of the Recast library folder, but that was easily corrected.

Great work!

We have to compile it on our Linux? Won’t be any auto-installable package like on windows or MAC? A .deb maybe?

I cannot compile the engine. Constantly getting this error: :confused:


UnrealEngine/Engine/Source/Runtime/Core/Private/Linux/LinuxApplication.cpp(11,9) :  fatal error: 'ds_extensions.h' file not found


Any help would be appreciated.

This is most likely caused by wrong prerequisites: you need to make sure that you downloaded and unpacked required* and optional archives appropriate for the branch you are trying to compile.

If you are trying to compile master though, then there can be a window of time where the github repo has been updated to use new third party libraries, while the new zips have been not yet uploaded - the code will fail to compile then. In general, it is always better to check with people on #ue4linux if you are running into case like that.

Also, you may find A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums helpful.

Have fun :slight_smile:

Still no progress…

Thanks for help, but I’ve already used this link together with 4.2.0 branch. Problem was that I’ve decompressed those archies parallel. Now everything apparently compiled but nevertheless UE4Client does not start. It says something like that: “Program started binned” in the console. I’ve also built the project as


$ ./Build.sh UE4Client Linux Debug -verbose

But still no effect. Could it be that some prerequisities are needed and not mentioned here: https://wiki.unrealengine.com/Building_On_Linux?

You need cooked content to be able to run client. Right now this cannot be done on Linux (not out of the box at least), so you would need to package your project on Windows (which, by the way, would also build a Linux executable since being able to package projects for Linux involves setting up the cross-toolchain) and then copy the resulting files to the Linux machine.

I’m a little lost here. Is the editor and tools currently running on Linux right now?

Well, some people are running the tools on Linux (at some level) because there is screen-shots of it happening… not my case doe :confused: I’m getting building errors, but that is most surely my fault.

We have the Editor running, but it is very glitchy, to say the least…

If you need help getting Linux tools compiling and running, come by IRC #ue4linux on Freenode network.

Is there currently any ETA as to when we can expect the official port of the UE4Editor and the other tools to be finished? Just roughly, like : Is it more like a matter of some weeks or many months, possibly a year from now?

I was able to build the Editor from your repo amigo, but I get a lot of error messages when I try to run it and it crashes before the actual GUI opens up. Unfortunately I’m lacking technical understanding of what those error messages actually say.

Has anyone tried to run the Windows binaries via Wine in OpenGL mode yet, so we could at least start working productively, until there is a stable release of the tools for linux?

As I can’t speak for Epic, the Editor is work in progress for us (the Linux UE community).

The question is what are your expectations?

If you are hoping to use the Editor for production, then it’s not really ready yet. If you want to get a feel for it, that is doable right now. We really need more people to take active role in code and bug fixing if we are to see this through sooner (aside from whatever timelines Epic has).

I am not sure which code snapshot your tried, but the code on my GitHub changes all the time - it is constantly being improved. Each time I push changes I make sure that things at least compile, if not run.

Current code (as of today) should compile and run, but if you are having issues, please come by IRC as that’s the easiest and fastest way to troubleshoot specific issues.

I basically just want to play around and get started with using the Unreal Engine. But I also don’t want to be discouraged to continue using it by constant crashes etc. (also tried the Windows version of UE4 and it is very unstable for me too)
I’m also a bit overwhelmed by all the different repos, branches and unofficial versions of UE4 that are on GitHub right now, so I’ll just stick with yours for now and see if I can get it running…

I’m not much of a programmer and don’t know c++ at all, so I’m afraid I can’t really help int he bug fixing and developement process, except for providing feedback about bugs and errors, if that would help?

I tried the snapshot from tuesday I think. I could run the SlateViewer and the UnrealFrontend just fine and also managed to compile ShaderCompileWorker, UnrealPak and the UE4Editor. Initially I got an error complaining about a missing library (libfbxdsdk) which I could fix by installing the fbx-sdk package on my distro. Then I tried running the Editor and after a long time of (apparently) Shader compilation, it eventually crashed. I will try compiling the editor again with today’s snapshot. Maybe I will have more luck this time.

I find IRC rather inconvenient to talk about complex problems and exchange logfiles, though. But I will give it a try.

Thanks for your help.