It’s been over a year since I last made the tutorial post for downloading, building and running Unreal Engine 4 on Ubuntu. Since then, both Unreal Engine 4 and Ubuntu have moved to newer versions, and things have changed quite a bit!
So, since Ubuntu 16.04 is the new LTS release and will be around for a long time, I figured I would go over the new steps to get Unreal Engine 4 up and running on this new beautiful release. Let’s get started!
I began these steps with a clean install of Ubuntu 16.04 64bit on the Nvidia open source drivers (Nouveau), which to my surprise now work with UE4 out-of-the-box! That is to say, you should be able to follow along with these steps with little to no issues.
I cannot vouch for AMD or Intel GPU users, these two vendors generally have flaky Linux driver support, so things may or may not work depending on your generation of card. When in doubt, make sure you have the latest drivers installed, and with Nvidia I still recommend using the proprietary drivers for maximum efficiency and performance.
To start, us Linux users still need access to their github account. Unfortunately, it does not look like the Unreal guys will bring the Epic launcher to Linux (a year later still nothing). If you’ve done this before, you can skip these steps and head to the ‘Download UE4 Source’ section below.
With those setup, you will need to link your Unreal account to your Github account before you can get the source for Unreal Engine 4 from Github. Do that here, enter your Github username and click save.
Go back to your Github page, and you should see an invitation from Unreal. Accept it.
Download UE4 Source
To clarify, the source code that’s available on Github is the latest if you’re on their main page. I would not recommend using this as it’s bleeding edge and can usually be pretty buggy. Instead, I recommend heading to the releases page here and selecting a specific version.
In my case, I use the last version’s latest hotfix which in this case is 4.10.4. If you’d like to use the exact same version as in this tutorial, the link to it is right here. Click the “Source code (zip)” to download your selected version.
Start Setting Up
You should now have a .zip file in your Downloads folder or where ever you chose to download it. I downloaded the zip file to the desktop for ease of access. Right click it and click Extract Here. Now, open a Terminal. Click the Ubuntu Dash button on the top left (or click your Windows button on your keyboard) and search for “Terminal” if you’re unsure how to find the Terminal.
Now, we want to CD into the folder we’ve just extracted. In my case, that would be:
Once we’re in, let’s actually run the setup. Enter the following into the same Terminal:
Don’t panic! We will run into a problem here. Setup will run for quite a while, and then will run into the following problem:
E: Package 'libmono-corlib4.0-cil' has no installation candidate
No matter how many times you rerun it, it will get stuck at this section. So, let’s go through the quick fix that seems to get me through this. First, let’s install what’s needed manually. In the same Terminal, or a new Terminal, whichever suits you, run the following:
sudo apt-get install mono-reference-assemblies-4.0 mono-devel
Once that’s done, we now need to manually change the following file so that the Setup.sh will stop trying to get the wrong package. Open the folder where your UE4 source is in, for me that’s the folder called UnrealEngine-4.10.4-release that’s on the desktop. Then head into the following sub-directories.
Once you’re in this folder, look for the file called Setup.sh (this is a different file from the previous one we ran). Open it in your favourite text editor, I just right-clicked it and clicked Open With -> Gedit. On line 44, under the section that reads DEPS=”mono-xbuild”, we want to remove that line that reads ‘libmono-corlib4.0-cil’. Save the file.
This is the line we want to remove:
This is the file after we’ve removed that line:
Now, it’s time to rerun the Setup command we did above to let it complete itself. So, if you’re lost, just open a new Terminal and CD back into your source folder for Unreal Engine 4 and run this line again:
It should no longer get stuck. Once it’s completed, you should see something like this:
Generate the Project Files
In the same Terminal, enter the following:
Once it’s completed, you should see the following:
Time to Build
This part is the heavy part, and can take quite a long time. On my computer with the following specs, it takes me about an hour to build:
- CPU: Intel i7-4770 3.4GHz
- GPU: Nvidia GTX 680 2GB
- RAM: 24GB DDR3 Adata 1600MHz
RAM is essential for this part. If you have less than 8GB of RAM, it is very likely to crash your entire system as I’ve experienced in the past. On my own computer, I usually see it top out at 9.3GB of RAM usage.
In the same Terminal as previously, enter the following:
make UE4Editor UE4Game UnrealPak CrashReportClient ShaderCompileWorker UnrealLightmass
What it looks like whilst it’s running:
Leave it for a while. It may take anywhere from 15 minutes upwards to over an hour. Once it’s completed, you should see the following:
The last item we need to run in the same Terminal is:
make -j1 ShaderCompileWorker
You should see the following once it’s completed:
You’re set! Now it’s time to run this beast and see if it works. Open your Unreal Engine source folder (for myself that would be the folder on the Desktop named UnrealEngine-4.10.4-release). Head into the following folders until you see the UE4Editor executable.
Double click the UE4Editor executable and UE4 should start running!
What really impresses me is that this is all running on the open source Nouveau driver! Naturally though I will upgrade to the proprietary driver as this OSS driver is still too slow to run UE4 and compile shaders.
I made a build of the ThirdPerson Template project, added a UMG widget with the Ubuntu logo just to make sure things work. Then packaged it for Linux and ran it on Ubuntu immediately. It works!
I hope this helps you get up and running with Unreal Engine 4 on Ubuntu 16.04, happy game developing!