PC gamers wanting to switch to Linux have a problem: the library just isn't big enough. While some AAA titles see release on Linux, they're usually limited to Steam, and typically arrive after the Windows and macOS launch.

But what if we told you that Linux can now access almost the entire library of Windows games on Steam?

Here's how to play Windows games on Linux with a beta version of Steam Play.

Windows Games on Linux: The Current Situation

Over the past few years, the scene has steadily improved for Linux gamers. The platform's popularity has slowly increased, enough for some major new titles to release directly to Linux.

Installing Wine lets you run Windows software on Linux

But for other titles, how can you run Windows games on Linux?

  • Wine/PlayOnLinux: Using the Wine compatibility layer and PlayOnLinux front end, Linux gamers can run Windows titles to varying degrees of success.
  • CodeWeavers Crossover: The proprietary version of Wine, whose improvements were added to Wine later on. It is intended mainly for running Windows applications on macOS and Linux, rather than games.
  • Virtual machine: You can create a Windows VM in Linux and run many Windows games.
  • Steam Play: First released in 2010, this makes it possible for many Windows PC games to run in Linux.

While OS compatibility has gotten better better since Valve's Gabe Newell expressed disdain for Windows, performance and compatibility issues have hampered gaming on Linux.

That could change soon with the release of the new Steam Play beta program.

The New Steam Play Beta

August 2018 saw the release of Steam Play beta, a new version of the software that enables Windows games to run on Linux. After two years of collaboration with CodeWeavers and other parties, this includes a modified version of Wine, known as Proton, and support for the Vulkan cross-platform 3D graphics API.

Install any Windows game on Linux via Steam

The initial release supports 27 titles, but you can suggest others. Furthermore, other titles will also function if they've worked with Wine in the past.

Proton differs to Wine in several ways, most notably the implementation of vkd3d Direct3D 12, OpenVR and Steamworks API bridges, fixes for Direct3D 9 and Direct3D 11, improved game controller and full screen support. Also important is esync (short for "eventfd-based synchonization") patchset, which brings performance improvements for multi-threading.

Good performance overall is expected for Vulkan titles, although where API translation is required, a more traditional Wine experience is more likely. Regardless, this is a great step forward for Linux gaming.

Better still, anyone can install the Steam Play beta. Here's how!

Opt-In to Steam Play Beta

You'll need the Steam client running on your Linux machine. You can either install it as an app, or it might have come preinstalled with your gaming-centric Linux distro (e.g. the SteamOS distro).

To get started, open Steam and sign in. Find the Steam > Settings menu, then go to the Account tab.

Here, find the Beta Participation section and click Change. Select Steam Beta Update in the dropdown list, then OK to confirm.

Join the Steam beta

Steam will then prompt you to restart the app. Upon restarting, a new version needs to install, so prepare yourself for a short wait while 150MB of data downloads.

If you're using Big Picture mode in Steam, the instructions are slightly different. Open Settings > System and check Participate in client beta. Restart Steam when prompted.

Join the Steam beta program in Big Picture mode

Install Updated Graphics Drivers

To proceed, you'll need to upgrade the graphics drivers on your Linux device. If you're running SteamOS, an update will have already done this.

The following steps are for Ubuntu 18.04 LTS devices running Nvidia, AMD, or Intel graphics.

Nvidia

You need to install the latest proprietary drivers to play games in Steam Play beta. Open a terminal and add Canonical's third party driver's PPA with these commands:

        sudo add-apt-repository ppa:graphics-drivers/ppa
    
        sudo apt-get update sudo apt install nvidia-driver-396
    

Once the driver downloads, reboot your Linux system.

AMD/Intel

For AMD or Intel graphics, you'll need to install the recent Mesa and LLVM drivers:

        sudo add-apt-repository ppa:paulo-miguel-dias/mesa
    
        sudo apt-get update sudo apt dist-upgrade sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386
    

Remember to reboot your system once the drivers have installed. VR gamers can also take advantage of AMD support for their devices using these commands:

        sudo add-apt-repository ppa:kisak/steamvr4pk
    
        sudo apt-get update sudo apt dist-upgrade sudo apt install linux-generic-steamvr-18.04
    

With these drivers installed, your Linux PC will be ready (assuming it has suitable graphics hardware) to play almost any Windows game via Steam. Check the Steam support forums for help installing the drivers on other distros.

Install a Windows Game on Linux in Steam

By default, you can only install Linux-compatible games in Steam. Even after joining the beta program, there's no way within the Steam user interface to install the games. Right-clicking and selecting Install from the menu will result in an instant error message.

Why can't you install? Well, you need to enable Steam Play for the titles in your library.

Enable Steam Play beta to play any Windows game in Linux!

In Steam, head to Steam > Settings > Steam Play and ensure that both Enable Steam Play for supported titles and Enable Steam Play for all titles are checked.

(There is also the option to switch between Proton versions, which will come in handy for troubleshooting)

Click OK to confirm, and follow the instruction to restart Steam. You'll then be able to choose any title, right-click, and select Install. Beware, however: titles that have not run under Wine previously are unlikely to suddenly work.

Running a game will prompt a message informing you that it will be launched with Steam Play. Click OK to proceed, and play!

How Steam Play Can Improve Linux Gaming

Gaming on Linux has already improved tenfold with the release of Steam Play beta. But it can become even more awesome thanks to Valve making it easy for developers to get involved.

Vulkan support is a major part of this strategy, with Valve imploring developers who don't currently release to Linux :

"[T]arget Vulkan natively in order to offer the best possible performance on all platforms, or at least offer it as an option if possible. It's also a good idea to avoid any invasive third-party DRM middleware, as they sometimes prevent compatibility features from working as intended."

This is excellent news going forward!

Play Your Favorite Windows Games on Steam Today

No more messing about with Wine configurations, and no more frustration. Valve has revitalized Linux gaming at just the right time, and everyone can get involved.

To summarize, you can install Windows games in Linux via Steam as follows:

  • Use the Steam Client beta opt-in
  • Download the beta client
  • Install updated graphics drivers
  • Enable Steam Play in Steam

Now, you might run into problems getting the graphics drivers right (I did), but you'll find support online to help here. Once you've overcome this potential issue, however, your Linux device will be ready to install almost any Windows game in Steam.

Maybe now it's finally time to quit Windows!