Playing games from the Epic Games Store on Linux


EGS (Epic Games Store) has been spewing out free games for a really long time now. One thing they have yet to give awway though is a native Linux client. There are a few options out there to install and play games from EGS on Linux, but its not as simple as Steam etc. One way is to install the Epic Games Launcher with wine, but imo that is the worst way.

Table of contents

Requirements

Here's what you need to get your Epic Games (pun not intended) running on Linux:

Setup

Lutris

Installation steps depend a lot on the distro, but on Arch Linux a simple sudo pacman -S lutris should do the job.

Legendary

Same as with lutris. On Arch Linux there's legendary in the AUR. On other distros you might have to compile it from source following the steps in their github repository or just download the latest release.

Proton

Download the latest release from either github repository. Then extract its contents into ~/.local/share/lutris/runners/wine.

Installing Games

Installing games via legendary is fairly simple. First, you'll need to authenticate your Epic account with the command legendary auth. It will open a browser window, where you can login to your Epic account and then copy the sid string from the json string and paste it into the terminal window when legendary asks for it. After you have authenticated, you can list all of your games with legendary list-games. It will print a huge wall of text containing the games names and their app names. The app name is used when you tell legendary what game to install. If you can't be bothered to find the game you want to install from the text dump manually, you can use grep. Example:
[toasterbirb@tux ~]$ legendary list-games | grep -i "hitman"
[cli] INFO: Logging in...
[Core] INFO: Trying to re-use existing login session...
[cli] INFO: Getting game list... (this may take a while)
 * HITMAN (App name: Barbet | Version: 4226454)
[toasterbirb@tux ~]$
In this case the name that you install the game HITMAN with would be "Barbet". To install the game, I would run legendary install Barbet. To change the location the games are going to be installed into, you can configure legendary using the file located at ~/.config/legendary/config.ini. You can create it manually if it doesn't exist already. This is my configuration file as an example:
[Legendary]
log_level = debug
install_dir = /home/toasterbirb/Games
disable_update_check = false
disable_update_notice = true
The install_dir isn't a huge deal though. You can move the game files around the filesystem after the installation is finished if you think you aren't going to need any updates for that game in the future.

Adding the game to Lutris

This is the important part. Legendary can launch games by itsef, but its configuration is quite difficult. Also games run with legendary usually don't have the best performance due to bad default settings.

Adding a new game to Lutris is a simple as clicking the "+" -button and filling in the text fields in the first tab that it opens up. The runner should be set to "Wine (Runs Windows games)". Then click save. Now that the game is added to Lutris, we can begin the configuring.

Configuring the wine prefix in Lutris

This is the part where most of the magic happens and can sometimes be a bit complicated. The amount of steps you need to take to get a game running depends heavily on the game. Offline games are usually easier than online games for example. In the case of HITMAN for example, I had to copy some launch options from legendary to lutris so that the game would authentica properly with Epic servers. HITMAN is an extreme scenario though and this step usually isn't required.

To configure a game in Lutris, right click the game you want to configure and choose the option Configure. I will be configuring a game called "Absolute Drift". To get most games running, these steps should be enough:
  1. Game options tab
  2. Runner options tab
This should be enough for most games. DXVK and VKD3D can be toggled on and off in case the game doesn't work and you need to do some troubleshooting. Also trying out different Proton or Proton GE versions can be required. In my case, Absolute Drif had some rendering issue that was solved by disabling Xephyr Fullscreen in the System options tab. Troubleshooting is a skill you will learn over time by setting up multiple games. It will mostly be trial and error in the beginning, but after some time it will become easier.

Here is a picture of the game running and me drifting away like a pro

Absolute drift


In case you have any questions, my inbox is open! Send me a message