I wanted to make this post to try and help other folks with their gaming setup as it seems like this is still somewhat challenging for new users. I guess you can also say that this post is kind of inspired by the recent Linus Tech Tips Linux challenge, specifically around gaming.
This post is not intended to be an exact instruction set on how to set everything up. Many folks use different distributions, different hardware, etc so there might some differences in the way that some of the packages are installed and/or configured.
**But for the most part, these steps are pretty universal and should work on most Linux distributions if done correctly**
Prerequisites:
Nvidia Drivers (GPU) - Install through Package Manager, this is quite important for nvidia GPUs, you'd need to install proprietary drivers.
AMD Drivers (GPU) - If you're using an AMD GPU, the drivers (mesa) should be integrated in the kernel so you don't need to install anything. Although really old AMD GPUs, might need drivers (I believe it is for GPUs 7+ years old)
Linux Updates - Make sure to always have the latest up to date OS before installing any apps.
Gaming Clients and Apps:
ProtonDB - Before even starting the install process, I highly recommend to go to protondb.com and look to see if the game you're trying to play is actually supported with Proton on Linux. Usually you will get folks on that website to give feedback on how well the game runs as well as their respective PC setup to give you an idea of what they're running.
Wine (staging - Install through Package Manger) - Wine is a big part of the gaming setups on Linux, specifically for games like Wow, FF14, etc all rely on Wine to work properly. For those that dont know, Wine is just a way of running Windows games in Linux. Wine is not an emulation layer, it just translates API calls. I highly recommend to install Wine staging to get the latest updates.
ProtonGE - This next app is VERY helpful in getting games to work smoothly. You can download a custom version of Proton that is tweaked and optimised for various games. I suggest using a combination of ProtonDB + ProtonGE to check and use Proton specific version depending on the game you're running. It could happen that one version of Proton runs better for a specific game, while another version of Proton, runs other games better. The trick is to use ProtonDB site to see what other users are using for the game, and then you can try yourself to see if that works for you. From my experience, this has always been very helpful and cuts down on the time of trial and error. Installation Instructions (https://github.com/GloriousEggroll/proton-ge-custom)
Lutris (Install through Package Manger) - This is an app that I use on my Linux install, it is used to aggregate all your games into one location as well as using the Lutris site, you can run scripts that will automate the install of your games and then integrate with Wine/Proton so that you can tweak and launch games. I use Lutris myself and highly recommend it if you plan on playing games outside of Steam. If you're only using Steam, it is not needed.
Steam - is one of the main gaming clients you can install on Linux today. Steam runs out of the box and it is very easy to install. You will need to configure Steam for Steam Play in order to use Proton to play Steam games. Most of the Steam games work with Proton, but might need some tweaks to get it to work. Make sure to Enable Steam Play for all other titles and Steam play for supported titles and then reboot Steam.
Heroic Game Launcher - This is the open source version of the Epic Game Launcher but not built by epic, but by the community. If you play games on the Epic Launcher, you can use this Launcher to play your games. This Launcher supports both Wine and Proton.
Origin Client - Through Lutris, you are able to download the Origin game client If you have some EA games that do not require EAC, this is a good way to play EA Games.
Ubisoft Client - Through Lutris, you are able to download the Ubisoft game client. If you have some Uplay games that do not require EAC, this is a good way to play Ubisoft Games.
Battle.net Client - Through Lutris, you are able to download the Battle.net game client. If you have some Battle.net games that do not require EAC, this is a good way to play Battl.net Games.
PlayOnLinux: I personally did not try PoL, but from what I can see, it is similar to Lutris, basically a front end to Wine, and like Lutris, it supposed to simplify the process of installing games in Linux.
Troubleshooting game install:
It could happen that from time to time, when you install a game, it just does not run well for you. Most of the time, this is not because of Linux, but because you are either missing some packages or maybe you need to tweak your game setup.
Missing Packages, games don't run - This is a common one I find, because in Linux, even though we think we installed everything, there might be a scenario where we're missing some packages, for example, you can install Wine, but then you might also need some of the other dependencies, such as wine-gecko and wine-mono where some games might require these packages to function correctly. Always make sure you're following the steps outlined in the documentation, such as in this article here for Arch Linux (https://wiki.archlinux.org/title/wine)
Games run sluggish and stuttering - if the games themselves are slow and/or stuttering, from my experience, this was mostly related to the Proton version that I am using, so most of the time, going on ProtonDB and looking at the comments for a game can give you an indication on which version of Proton to use. Of course, this is not the only thing that can cause sluggish game performance. Another example could be related to the Desktop Environment that you're using. For example, when I was using KDE, I had to tweak the compositor and opengl settings to make things work better, but this is something that does not happen often. Most of the time, you can fix this by using a different Proton version or sticking with the Wine staging version.
Another issue with sluggish games could be that you have older and outdated drivers which is why it is important to keep your OS up to date with the latest drivers.
Games have Low FPS - I ran into this issue most of the time and it is usually related to things like v-sync where if it is enabled, your games will run at an FPS that is supported by your GPU/Monitor and so in a lot of cases, you might see games running at 60 FPS even though you know you can run these games at 100+ FPS. To fix this, you can disable vsync, but if you start getting tearing in your games, you might have to enable it. I use a GSync monitor so I dont really on vsync for my games.
NOTE: Please note that at the moment, most games that require some Anti-Cheat software do not work well in Linux. Recently there has been some announcements made around providing support for Anti-Cheat software in Proton, but until the game developers enable support for Linux, at the moment, EAC games don't work under Linux. Some of these games are New World, Call of Duty, BF, etc.
Here's a screenshot of the Lutris app installed on my machine with some of the games I play. After following the instructions above, all my games run pretty smooth with 100+ FPS and graphics are either high / very high / ultra.
My Linux distribution is EndeavourOS which is an Arch Linux derivative. But this should also work in Fedora, Manjaro, Ubuntu, Debian, Garuda, MX, Mint, etc.
This post is not intended to be an exact instruction set on how to set everything up. Many folks use different distributions, different hardware, etc so there might some differences in the way that some of the packages are installed and/or configured.
**But for the most part, these steps are pretty universal and should work on most Linux distributions if done correctly**
Prerequisites:
Nvidia Drivers (GPU) - Install through Package Manager, this is quite important for nvidia GPUs, you'd need to install proprietary drivers.
AMD Drivers (GPU) - If you're using an AMD GPU, the drivers (mesa) should be integrated in the kernel so you don't need to install anything. Although really old AMD GPUs, might need drivers (I believe it is for GPUs 7+ years old)
Linux Updates - Make sure to always have the latest up to date OS before installing any apps.
Gaming Clients and Apps:
ProtonDB - Before even starting the install process, I highly recommend to go to protondb.com and look to see if the game you're trying to play is actually supported with Proton on Linux. Usually you will get folks on that website to give feedback on how well the game runs as well as their respective PC setup to give you an idea of what they're running.
Wine (staging - Install through Package Manger) - Wine is a big part of the gaming setups on Linux, specifically for games like Wow, FF14, etc all rely on Wine to work properly. For those that dont know, Wine is just a way of running Windows games in Linux. Wine is not an emulation layer, it just translates API calls. I highly recommend to install Wine staging to get the latest updates.
ProtonGE - This next app is VERY helpful in getting games to work smoothly. You can download a custom version of Proton that is tweaked and optimised for various games. I suggest using a combination of ProtonDB + ProtonGE to check and use Proton specific version depending on the game you're running. It could happen that one version of Proton runs better for a specific game, while another version of Proton, runs other games better. The trick is to use ProtonDB site to see what other users are using for the game, and then you can try yourself to see if that works for you. From my experience, this has always been very helpful and cuts down on the time of trial and error. Installation Instructions (https://github.com/GloriousEggroll/proton-ge-custom)
Lutris (Install through Package Manger) - This is an app that I use on my Linux install, it is used to aggregate all your games into one location as well as using the Lutris site, you can run scripts that will automate the install of your games and then integrate with Wine/Proton so that you can tweak and launch games. I use Lutris myself and highly recommend it if you plan on playing games outside of Steam. If you're only using Steam, it is not needed.
Steam - is one of the main gaming clients you can install on Linux today. Steam runs out of the box and it is very easy to install. You will need to configure Steam for Steam Play in order to use Proton to play Steam games. Most of the Steam games work with Proton, but might need some tweaks to get it to work. Make sure to Enable Steam Play for all other titles and Steam play for supported titles and then reboot Steam.
Heroic Game Launcher - This is the open source version of the Epic Game Launcher but not built by epic, but by the community. If you play games on the Epic Launcher, you can use this Launcher to play your games. This Launcher supports both Wine and Proton.
Origin Client - Through Lutris, you are able to download the Origin game client If you have some EA games that do not require EAC, this is a good way to play EA Games.
Ubisoft Client - Through Lutris, you are able to download the Ubisoft game client. If you have some Uplay games that do not require EAC, this is a good way to play Ubisoft Games.
Battle.net Client - Through Lutris, you are able to download the Battle.net game client. If you have some Battle.net games that do not require EAC, this is a good way to play Battl.net Games.
PlayOnLinux: I personally did not try PoL, but from what I can see, it is similar to Lutris, basically a front end to Wine, and like Lutris, it supposed to simplify the process of installing games in Linux.
Troubleshooting game install:
It could happen that from time to time, when you install a game, it just does not run well for you. Most of the time, this is not because of Linux, but because you are either missing some packages or maybe you need to tweak your game setup.
Missing Packages, games don't run - This is a common one I find, because in Linux, even though we think we installed everything, there might be a scenario where we're missing some packages, for example, you can install Wine, but then you might also need some of the other dependencies, such as wine-gecko and wine-mono where some games might require these packages to function correctly. Always make sure you're following the steps outlined in the documentation, such as in this article here for Arch Linux (https://wiki.archlinux.org/title/wine)
Games run sluggish and stuttering - if the games themselves are slow and/or stuttering, from my experience, this was mostly related to the Proton version that I am using, so most of the time, going on ProtonDB and looking at the comments for a game can give you an indication on which version of Proton to use. Of course, this is not the only thing that can cause sluggish game performance. Another example could be related to the Desktop Environment that you're using. For example, when I was using KDE, I had to tweak the compositor and opengl settings to make things work better, but this is something that does not happen often. Most of the time, you can fix this by using a different Proton version or sticking with the Wine staging version.
Another issue with sluggish games could be that you have older and outdated drivers which is why it is important to keep your OS up to date with the latest drivers.
Games have Low FPS - I ran into this issue most of the time and it is usually related to things like v-sync where if it is enabled, your games will run at an FPS that is supported by your GPU/Monitor and so in a lot of cases, you might see games running at 60 FPS even though you know you can run these games at 100+ FPS. To fix this, you can disable vsync, but if you start getting tearing in your games, you might have to enable it. I use a GSync monitor so I dont really on vsync for my games.
NOTE: Please note that at the moment, most games that require some Anti-Cheat software do not work well in Linux. Recently there has been some announcements made around providing support for Anti-Cheat software in Proton, but until the game developers enable support for Linux, at the moment, EAC games don't work under Linux. Some of these games are New World, Call of Duty, BF, etc.
Here's a screenshot of the Lutris app installed on my machine with some of the games I play. After following the instructions above, all my games run pretty smooth with 100+ FPS and graphics are either high / very high / ultra.
My Linux distribution is EndeavourOS which is an Arch Linux derivative. But this should also work in Fedora, Manjaro, Ubuntu, Debian, Garuda, MX, Mint, etc.
Last edited: