Update on Steam, Ubuntu, and 32-bit support
There has been a lot of news and discussion over the weekend on the topic of Steam on Linux and officially supported and recommended distributions. For those not in the loop, last week the Ubuntu project announced their intent to change how they’re approaching 32-bit library support for future Ubuntu versions[discourse.ubuntu.com]. Following that announcement, we made a statement that Ubuntu 19.10 wouldn’t be officially supported or recommended to our users going forward. As the Ubuntu project indicated, they let us know of their intent and walked us through the details earlier this month, which was much appreciated. We don’t think it is unreasonable that they would want to take steps that are in the best interests of the project. That being said, we don’t think it’s an especially positive move for Steam and gaming-oriented customers who rely on this support.
To provide some background, support for 32-bit libraries is required in order to run not only the Steam client, but also the thousands of games available on Steam that only support 32-bit environments. Enabling the Steam client to run in pure 64-bit environments, while feasible, would leave the vast majority of the current Steam library inaccessible to such users without an additional compatibility layer. Ensuring that all games a user owns remain fully playable wherever possible is a core principle of Steam, and we don’t believe any solution that arbitrarily splits a user’s library would be acceptable.
To that effect, Steam already bundles a lot of the dependencies needed by 32-bit games, but it currently relies on some key components being available on the host system: a 32-bit glibc, ELF loader, Mesa and NVIDIA graphics driver libraries, to name a few. We’ve been investigating ways to avoid these system dependencies for a while now, by looking into light containerization and other approaches. The announced change by Ubuntu would have required us to fully complete such a system in the 19.10 release time frame, as it would be required there to maintain functionality without requiring users to reinstall Steam through another method. A significant portion of our Linux users are on the latest version of Ubuntu and upgrade as new versions become available. Requiring such a fundamental change in Steam’s runtime environment in that time frame would have been very risky for these users, and would likely not have resulted in a seamless experience.
Our response also mentioned not recommending Ubuntu to Steam users in the future. Currently, the Steam Linux installation instructions and system requirements call out Ubuntu specifically as the best-supported path for desktop users. When we originally came to the decision to make this recommendation to Steam users, we considered the entire desktop and gaming experience, not just how well Steam itself would work. There is a large amount of older third-party games and desktop software that lives outside of Steam, and therefore does not use the Steam runtime environment. This new scheme would have broken such 32-bit non-Steam games and tools, unless the user was savvy enough to know that they needed to run them in a compatibility environment. It would be quite unfortunate if all pre-existing documentation around installing and running older binary software on Ubuntu became invalid or obsolete due to such a change, and this added caveat to using the existing ecosystem caused us no small amount of concern.
There’s a lot more to the technical and non-technical reasons behind our concerns, but the bottom line is that we would have had to drop what we’re doing and scramble to support the new scheme in time for 19.10. We weren’t confident we could do that without passing some of the churn to our users, and it would not solve the problems for third-party software outside of Steam upon which many of our users rely.
In response to the concerns raised by ourselves and the wider community, the Ubuntu project recently discussed a more conservative approach[ubuntu.com] wherein a selection of 32-bit libraries would still be available on the host system, through at least 20.04 LTS. We’re still not particularly excited about the removal of any existing functionality, but such a change to the plan is extremely welcome, and will allow us to continue to work towards improvements in the Steam distribution model without causing new headaches for users. Given the information we have on this new approach so far, it seems likely that we will be able to continue to officially support Steam on Ubuntu.
The Linux landscape has changed dramatically since we released the initial version of Steam for Linux, and as such, we are re-thinking how we want to approach distribution support going forward. There are several distributions on the market today that offer a great gaming desktop experience such as Arch Linux, Manjaro, Pop!_OS, Fedora, and many others. We’ll be working closer with many more distribution maintainers in the future. If you’re working on such a distribution and don’t feel your project has a direct line of contact with us, by all means, have a representative reach out directly.
That all being said, we don’t have anything specific to announce at this time regarding what distribution(s) will be supported in the future; expect more news on that front in the coming months. We remain committed to supporting Linux as a gaming platform, and are continuing to drive numerous driver and feature development efforts that we expect will help improve the gaming and desktop experience across all distributions; we’ll talk more about some examples of that soon.