Way back in 2012, Valve, creator of the Steam game engine and network, excited gamers by saying they were bringing Steam-powered games to Linux. Yea!
Then, a year later, Gabe Newell, Valve's CEO, said, "Linux is the future of gaming". He went on to announce there would be Steam Machine gaming consoles powered by Valve's own SteamOS Linux distribution. All went quiet. Too quiet.
Years later, Steam Machines finally rolled out. It was too little, too late. Windows upped its gaming support game. Only about 500,000 Steam Machines shipped. But Valve hasn't given up on games for Linux.
Indeed, Valve is taking another crack at bringing a wide assortment of Steam games to Linux. This time around, rather than porting games to Linux, they're readopting their older approach of using Wine. Wine is an open-source project, which implements the Windows API on top of Unix and Linux operating system family. It works by translating Windows API calls into POSIX calls on-the-fly. This lets you run many Windows applications on Linux or macOS.
Games, though, which demands the most from hardware, are challenging to run on Wine. Valve has addressed this by releasing a beta version of Steam Play. This includes a customized version of Wine, Proton, for gaming. It's also deploys DXVK. This translates Windows Direct3D 10/11 calls. All this comes together to enable you to run 3D applications, not just games, on Linux with Wine.
The net result is Valve promises gamers can run Windows games on Linux just if it were a native Linux game. Specifically:
- Windows games with no Linux version currently available can now be installed and run directly from the Linux Steam client, complete with native Steamworks and OpenVR support.
- DirectX 11 and 12 implementations are now based on Vulkan, resulting in improved game compatibility and reduced performance impact.
- Fullscreen support has been improved. Fullscreen games will be seamlessly stretched to the desired display without interfering with the native monitor resolution or requiring the use of a virtual desktop.
- Improved game controller support. Games will automatically recognize all controllers supported by Steam. Expect more out-of-the-box controller compatibility than even the original version of the game.
- Performance for multi-threaded games has been greatly improved compared to vanilla Wine.
Linux gamers are leaping to play. Users have started their own compatibility list of Windows games on Google Docs. Others are rejoicing they "can finally say goodbye to Windows!"
Sounds like fun? Let me warn you before you dive in, getting the beta up is a job for Linux power users. The final version will be much simpler.
Here's how to start. Install the Steam Client Beta. Refresh your video drivers.
If you're not running SteamOS, Valve offers instructions on how to get the latest drivers for Ubuntu 18.04. On other distros, simply update your NVIDIA, AMD, or Intel graphic drivers.
Specifically for DirectX games, you'll need NVIDIA 396.51 or Mesa 18.1.x drivers. You should install LLVM 7 or above, to avoid GPU hangs. For OpenGL games, such as Doom 2016, you'll need at least Mesa 18.2.0.
You may also need higher File Descriptor (FD) FD_ limit per process than your distro's default in some distributions. Debian, Mint, Steam OS, or Ubuntu already have sufficient FDs. If your distro doesn't, you can use esync to up your FDs.
You're now ready to play games! Have fun.