The continued (and generally justified) distaste for Windows 10 has given Linux as a desktop platform more momentum than ever before. Most Linux-based operating systems are free, have a consistent interface, and don’t break with every update.
While Linux can run much of the same software as Windows, including all major web browsers and plenty of productivity tools, gaming has always been a tough spot for the platform. There are still few major games written natively for Linux, but Windows compatibility layers like Wine and various emulators have filled in the gaps.
Fortunately, Linux games have improved a lot over the past year. Steam Play lets you effortlessly play Windows games through Steam, without worrying about configuration files or installers (most of the time, anyway). Meanwhile, tools like Lutris have made it easier than ever to play games through the Wine Compatibility Layer.
In this guide, we’ll show you the best ways to play Windows-only games on your favorite Linux distribution, be it Ubuntu, Debian, Arch, Fedora, or whatever.
Steam / Proton Playback
For years, the ‘Wine’ compatibility layer has made it possible to play Windows games on Linux. For about three years, Valve worked with the developers of Wine to improve game compatibility, and the result is Proton. Proton, also known as “Steam Play”, is a modified version of Wine developed by Valve and directly integrated with Steam for Linux. That’s right, the dark days of installing Steam in Wine to play Windows-only Steam games are over.
Steam play is an incredibly impressive compatibility layer, and it makes running Windows games on Linux easier than ever. It can translate Windows DirectX calls into Vulkan API calls, resulting in better compatibility and performance than ever before, and it works great with external controllers and Steam Overlay.
To get started with Steam Play, install Steam for Linux if you haven’t already. This process varies a bit depending on the Linux distribution you are using.
Installing Steam on Debian, Ubuntu, Linux Mint, Pop_OS and most other Debian based distributions
Go to Steam download page and click on the big download button. You should get a .deb file. Double click on the file and a package manager will open asking if you want to install the application. Once the process is complete, Steam should be available in your app launcher, and you can open it and log in.
Install Steam on a Basic Operating System
While Elementary OS is based on Debian / Ubuntu, newer versions of Elementary do not automatically have the application required to open .deb files. So first you have to install ‘Eddy’ from the AppCenter. Once Eddy is installed, go to the Steam download page, click on the big download button and open the .deb file it gives you. After all of that, Steam should be available in your app launcher. Try to open it and sign in.
Install Steam on Fedora, Arch and most other distributions
If you are using a distro that is not based on Ubuntu / Debian, you will need to install Steam from the unofficial Flatpak. Flatpak is a way to package applications to run on a wide variety of Linux distributions.
First, minor configuration may be required depending on the exact distribution you are using. The official Flatpak website has ultra simple user manual to put everything in place.
Once that’s done (and you’ve restarted your PC, if that’s stated in the instructions), we need to make sure the Flathub repository is set up. Run this command in the terminal:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Then install Steam with this command:
flatpak install flathub com.valvesoftware.Steam
Once done, Steam should appear in your app launcher. Open it and log in.
Activate Steam Play for all games
Valve is currently testing the games before officially certifying them for Steam Play. However, there is a setting in Steam that gives you the option to run uncertified games in Steam Play. While many titles perform very well, keep in mind that some games (especially the newer ones or some that use certain DRM methods) may have issues or not work at all. The worst that can happen is the game won’t work – you don’t have to worry about corrupting other games or breaking Steam.
To get started, click on the Steam menu at the top left of the main Steam window and select “Settings” from the drop-down list. Then click “Steam Play” on the left side, make sure the “Enable Steam Play for Supported Titles” box is checked and check the “Enable Steam Play for all other titles” box.
After that click on OK. Steam may want to restart to apply your changes. With all of that done, go to your Steam library, click on the drop-down menu next to the search bar, and make sure “Games” is selected. Now you can see all your Steam games, including those for Windows, and install them with just one click. The helpful message “is running on this computer through Steam Play” will tell you which games will be installed using the Compatibility Layer.
If you want to check if a certain game will work in Steam Play before you download it, check out ProtonDB. This is a community-run database that can probably tell you if a certain game is working or not, with helpful instructions and tips for getting problematic games to work.
Steam Play is fantastic software, and it makes playing popular Windows games on Linux much easier than ever before … as long as the game is available on Steam. For games found on other storefronts and launchers, maybe another tool could help.
Lutris describes itself as an “open source gaming platform for Linux”. It’s an interface for programs like Wine, RetroArch, and DOSBox – you choose which game you want to play, and everything needed to make it work is downloaded and configured for you. It supports games like League of Legends, Skyrim, Warframe, Overwatch, etc. It can even detect and add any native Linux games you might have already installed and add them to the launcher.
Lutris has detailed installation instructions on his website, so we won’t be reinventing the wheel here. On most distributions, it only takes one or two commands to install everything.
How to use Lutris
To get started with Lutris, simply open it from your app launcher, click the search button, enter a game, and click the “Search Lutris.net” button. You will get a list of games that you can install, and double clicking on it will show the ways you can install it. For example, The Witcher 2 can be downloaded from GOG for Linux, GOG for Windows, Steam for Linux, and Steam for Windows.
Additionally, Lutris supports more than Windows games. It offers several “runners“to play games from different platforms, including RetroArch (retro games), DOSBox (DOS games), MAME, ScumVM (LucasArts titles), Snes9x (SNES games), and ZDoom (DOOM-based titles).
If you are feeling adventurous, you can install games manually using the runner of your choice. Lutis has no shortage of configuration options and settings.
Steam Play has made it easier than ever to run your entire Steam catalog on Linux, and Lutris is a significant improvement over the old script-based game installers (anyone remember PlayOnLinux?). With these two tools, you can enjoy thousands of games that will probably never have an official Linux port.
Of course, there are still other ways to run Windows games on Linux. You can install VirtualBox and run a Windows virtual machine, although you might experience performance issues with newer games. If you are feeling adventurous you can try to set up a VM with GPU passthrough support.
CrossOver by CodeWeavers is another popular way to run Windows software on Linux, and many of its developers helped Valve develop Steam Play. However, CrossOver is more geared towards professional use, so it doesn’t have as many games supported as Lutris.