A Look at Heroic Games Launcher


Want to be able to play your games through the Epic Games Store on Linux? Look no further; we have Heroic Games Launcher.

Heroic games list

A little over a year ago we covered Legendary. While it’s still a great tool to use, it can be somewhat imtimidating for those who don’t use the terminal often. Therefore, Heroic Games Launcher is, in a sense, heroic, because it offers a nice graphical interface, without the user ever having to open up a terminal window. And it’s available, in addition to Linux, on Windows and Mac. Finally, it’s open-source (under the GPLv3 license) – make changes and pull requests as needed!

Note that Heroic is built off of Legendary – without Legendary, we wouldn’t have Heroic.

How to Install

I won’t go over the hundreds of different ways of installing Heroic; for that, you can refer to the README. But let’s just put it this way – if you head to the Releases section on the GitHub page, you have plenty of options to choose from (for Linux specifically):

  • AppImage – can be run across virtually any distro (this needs to be marked as executable before running)
  • .pacman – for Arch-based distros
  • .rpm – for Fedora, CentOS (or Rocky Linux), and RHEL
  • .deb – for Debian/Ubuntu-based distros
  • .tar.xz – compressed, portable archive

There’s also plenty of ways to install the client from source or get the binary by enabling certain repositories on your distro and installing through your package manager. Again, this can all be found in the README.

How to Use

When running Heroic for the first time, you will be asked to login (unless you’ve already logged in before using Legendary). Like the client says, you’ll need to log in to your Epic Games account (specifically through the link they provide) with your web browser. You can register an account if you don’t already have one.

Running Heroic for the first time

After logging in you’ll presented with a mostly empty page. Take note of the SID:

Getting SID

Copy the SID, without the quotes, into the text field in Heroic:

Pasting SID

Click “LOGIN.” Good to go! You should now be presented with a list of games registered to your account.

Heroic games list

Games that are installed will be in color. Uninstalled games are black and white. Here you can filter what games you can see, including games that are installed or uninstalled, or games that have been played recently via the dropdown menu towards the top.

There’s a Settings menu that you can access, in which you can:

  • choose a language
  • change the default game installation path
  • enable or disable tray icon when the application is closed
  • configure custom Wine or Proton paths, or use a different version of Wine/Proton other than the vanilla version of Wine installed on your system
  • enable or disable Discord rich presence
  • add desktop or Start menu shortcuts
  • enable or disable NVIDIA prime render
  • among many other options

Heroic global settings menu

You can even browse the Epic Games Store, buy games, or grab that freebie that they always have. (You may need to login for a second time when using the EGS through Heroic.)

Heroic EGS

Or you can explore the Heroic Games Launcher Wiki (stored on GitHub).

Heroic Wiki

Installing and Running Games

Installing games is pretty trivial. In this case I will walk you through installing Slime Rancher.

If you click the thumbnail for the game, you will be presented with:

  • a description of the game
  • download and install size
  • links for checking the store page for the game as well as ProtonDB reports
  • the option of where you want the game installed
  • system requirements

And of course, there’s the glorious “INSTALL” button, waiting to be clicked at your fingertips.

Slime Rancher description

On the other hand, if you click the little download icon on the lower-right corner of the thumbnail, you’ll get a more brief description of whether you want to install the game or import it in case it’s already installed.

Slime Rancher quick description

Click “INSTALL” to choose a directory to install the game, or click “IMPORT” to find an already existing installation of the game, in the event Heroic didn’t detect it.

Installing the game should only take a few minutes, depending on the speed of your Internet connection.

Heroic will use the default Wine prefix (usually ~/.wine) for all games. Sometimes the game will work, sometimes it doesn’t. It’s generally a best practice, however, to create a separate Wine prefix for each game installed. The reason for this is because if you tweak the Wine install (with .NET installations for example, needed for some games), it can break the dependencies used by another game if you are on the same prefix.

To create a new Wine prefix, simply make a new folder anywhere on your desktop (preferably in the home folder) and name it to anything you want. You can add a period in the beginning to keep the folder hidden in your file manager, but it’s not necessary. In this case I will create a new Wine prefix by creating a folder called .slime_rancher in home.

Go to the settings menu by clicking the cog icon in the thumbnail of the game or by clicking “Settings” on the right pane after clicking the thumbnail. Change the Wine Prefix path to the new folder you created:

Heroic new Wine prefix

You should be good to go now! In a future update, there will be an option to automate the creation of new prefixes for all games.

Slime Rancher in-game

From here, there’s tons of other options at your disposal. Like the Settings menu from before, here’s some of the things you can do (for the game you specifically selected; this is not global):

  • force the game to run a different version of Wine or Proton
  • verify game files and make repairs if necessary
  • enable FSR, esync, and/or fsync
  • run winecfg or winetricks
  • enable FPS counter
  • use GameMode
  • add game arguments
  • among many other options

Heroic will detect various versions of Proton if they’re installed on your system and will be presented in the dropdown menu when selecting the Wine version. The app will also detect custom versions of Wine used by Lutris, if you have that program installed, as well as Proton GE if you have that installed in compatibilitylists.d in the Steam installation directory. You may have to experiment to see which version works best for you. In my case for Slime Rancher, Proton GE could run the game, but it wouldn’t detect my gamepad. Using the Wine version by Lutris (lutris-6.10-7-x86_64) fixed this.

What’s Ahead

If we head over to the README page for Heroic, under the “Planned features,” section, there’s a few things the developers have in mind for making Heroic even greater. They mention a better login system (possibly without having to copy the SID every time a user logs in) and integration with other store fronts (GOG, itch.io, Humble Bundle, etc.). The former feature would be nice. However, as far as the latter goes, I feel like there’s already too many projects trying to do that (Lutris, for example). I guess in the end though, having less launchers to use would be less of a headache.

Currently, Heroic doesn’t support gamepads in the UI. It would be nice for those who do couch gaming from time to time, and I think it would be a great feature for the Steam Deck. There’s also some features that the Epic Games Store (and therefore Heroic) lacks in comparison to Steam: no friends list, no review system, etc. If Epic decides to add these features later on, hopefully they will also be available with the API. In the meantime, Heroic will be a bit of a barebones experience. Just browse, download, configure, and run games. You won’t be able to tell whether a game is worth buying unless you look elsewhere on the Internet.

Hats off to the developers behind Heroic! It’s nice to have a native alternative to the Epic Games Store for Linux. In a future article we may cover Rare, since apparently it uses a lot less RAM that Heroic does (since Heroic is electron-based). But for now, it’s great to use something other than a combination of Lutris + a hacky mess to get the official client to run on Linux.