Gaming —

The state of Linux gaming in the SteamOS era

After 14 months in beta, where does Valve's new platform push stand?

Don't mess with the penguin.
Don't mess with the penguin.

For decades after Linux's early '90s debut, even the hardest of hardcore boosters for the open source operating system had to admit that it couldn't really compete in one important area of software: gaming. "Back in around 2010 you only had two choices for gaming on Linux," Che Dean, editor of Linux gaming news site Rootgamer recalls. "Play the few open source titles, Super Tux Kart and so on, or use WINE to play your Windows titles."

Ask anyone who was involved in the relatively tiny Linux gaming scene before this decade, and you'll get a similar response. "For a long time, it was just me porting games, and I did my best, but an industry that has an employee pool of one isn't a big industry," said veteran Linux programmer Ryan C. Gordon, who has worked on over 75 Linux gaming ports over the last 15 years. "It was slow for years on end with only a few decent commercial releases becoming available," Gaming on Linux site editor Liam Dawe agreed.

That began to slowly change around 2010, when The Humble Indie Bundle launched with an insistence that every included game come with a Linux option (thanks in no small part to the fact that Linux players were some of the most generous in the bundle's pay-what-you-want scheme). It also didn't hurt when services like Desura and Ubuntu Software Center appeared around the same time, giving Linux gamers a few user-friendly centralized repositories to purchase and organize their games.

But there's one primary reason that Linux gamers can enjoy nearly 1,000 professional, commercially distributed games today, and it goes by the name of Valve. "At the end of 2013, when Valve released the beta of SteamOS everything changed," Dean said. "After years of promoting the various Linux distributions, we had a major gaming company not just porting their games to Linux, but actually creating their own Linux-based operating system. It was an incredibly exciting moment and a turning point for Linux users."

Now, more than a year into the SteamOS era (measuring from that beta launch), the nascent Linux gaming community is cautiously optimistic about the promise of a viable PC gaming market that doesn't rely on a Microsoft OS. Despite technical and business problems that continue to get in the way, Valve has already transformed gaming on Linux from "practically nothing" to "definitely something" and could be on the verge of making it much more than that.

Holding up a steady target

With SteamOS, Linux game developers finally have a single, viable distribution to target.
Enlarge / With SteamOS, Linux game developers finally have a single, viable distribution to target.

A company as big as Valve putting its weight behind Linux—and behind a specific distribution of Linux, to boot—had a clarifying effect on what used to be a tough market for even willing developers. "I've long thought that we needed a base Linux distribution to tell developers to 'just target that,' and SteamOS is the perfect candidate for it," Dawe said. "Time and time again the same thing developers ask me is how the hell do they get their games to work across all distributions, and [now] you don't need to."

"Distributing games for Linux [was] a big problem because of different distributions," Croteam programmer Carlo Jez said. "Shipping them for Steam avoids that problem entirely, so we know that all the necessary libraries will be installed on every system.” Valve's SteamOS efforts provided "the crucial step of stabilizing the platform enough so that we could actually ship something that we could be sure it would work for enough people," Croteam CTO Alen Ladavac added.

Croteam had dipped its toes into the Linux waters as far back as 2001 with a port of Serious Sam: The First Encounter. Now, a Linux version is an included target in every project the developer works on. Getting to that cross-platform default took some incremental work over the years, Ladavac says, as the company phased out programming and graphics tools dependent on the Windows-exclusive DirectX and Direct3D. These days, Ladavac says making PC games that are truly platform agnostic isn't hard for the company. "Since we already have OpenGL on Windows, the same OpenGL works in 99 percent of the cases on Linux, so that’s not really much of an issue."

The team at Aspyr Media is in the same boat. The company known for porting many popular Windows games to the Mac has released six titles for Linux since the SteamOS announcement, including ports of major 2K Games titles in the Borderlands and Civilization series. “The Mac guys really do 90 percent of the work for us, as far as getting everything on OpenGL," Aspyr Senior Linux Engineer Ian Bullard said. "The first [Linux version] we did was a lot of work, but the port time has gotten a lot shorter the more that we do. Every single title gets faster [to port] now."

Even companies that don't want to spend significant time or effort on porting can sometimes generate a decent Linux version by simply recompiling through popular engines these days. "There are great games shipping for Linux from development teams with no Linux expertise," Gordon points out. "They hit the 'export to Linux' button in the Unity editor and shipped it and it worked out alright. We didn't get flying cars, but the future is turning out OK so far."

"It definitely helps when major engines support it out of the box," he continued. "A lot of companies in the mid-2000's that didn't specifically care about Linux were willing to talk to me about a port because Epic gave it a vote of confidence at the engine level [with Unreal Engine 2]. Unity, Unreal Engine 4, Source 2, Cryengine... these are a lot of votes of confidence and will make for easier ports of specific games, too."

Performance problems

These <i>Left 4 Dead 2</i> zombies could look a few percent better on a Linux box, but only with some careful driver and optimization work.
These Left 4 Dead 2 zombies could look a few percent better on a Linux box, but only with some careful driver and optimization work.

Though SteamOS' stabilizing influence has made Linux ports easier in many ways, there are still plenty of hurdles to getting games running smoothly on the platform. One of the big outstanding issues, even after years of concerted effort driven by Valve and hardware makers, is driver support.

"The official closed-source drivers for AMD graphics cards for one example are notoriously bad on Linux," Gaming on Linux's Dawe said. "Their open source driver effort seems solid, but [it] has a little way to go before it hits that golden performance target... Unity engine-based games also seem to get lower performance on Linux, and considering how many developers use it now, that is a concern of mine."

Theoretically, games on Linux can get extra performance out of equivalent hardware, since the operating system itself takes up less overhead. Valve has proven this point itself, with a Linux port of Left 4 Dead 2 that outperforms the frame rate of its Windows counterpart by roughly four percent on the same hardware. That's a small bump, but it could be a selling point for PC gamers that want every last bit of oomph from their gaming rigs.

Without optimized drivers and development tools, though, those performance gains are going to be hard for the average developer to see. "If someone specifically went and optimized on Windows and optimized on SteamOS, I think they could get more frames per second on SteamOS, but it is a major undertaking that would require a lot of people to change I think," Aspyr's Bullard said.

Croteam's Ladavac recalled how driver-based issues have gotten in the way of these potential performance gains, in his experience. "From the start we had problems with high resolution, which doesn't make any sense—how would the resolution impact the difference between drivers? The problem seems to be the OpenGL shader language—the compilers embedded in the drivers are not as optimized as those for DirectX. Over the years it’s slowly improving—it’s still not the same, but those things are very complex and very large and have to support all the different hardware... It will take some more time until it catches up to the performance of DirectX."

Channel Ars Technica