I’ve had the Steam Deck for a few weeks now and I’ve got some thoughts, mainly about the software. There is also a video version of these impressions from a few days ago that demonstrates the good and bad parts of the Steam Deck:
Prefix
If you’re already familiar with the history of Linux gaming for the past twenty years, and what I’ve written about in the run up to the launch of the Steam Deck, feel free skip to the next section. I’m just rehashing the past to give context here.
Otherwise, hi, hello. My name is Jack and I’ve been writing about Linux gaming for the past 20 years. When I started, there were a very few companies porting games to Linux and selling that software in boxes over the web. One or two companies even managed to sell some games at retail stores in the United States, but Loki was the biggest.
Loki ported what felt like a lot of games at the time, helped develop freely available technologies to bring more games over to Linux, inspired good competition with other companies to bring games over.
At about the same time, another company called Transgaming came around and forked an open source piece of software called WINE. WINE is what Valve’s Proton is based on, and it sort of lets Windows games run under Linux. The people who push this technology prefer to refer to it as a Windows API compatibility layer. I think of it as Windows emulation, but it doesn’t really matter what anyone calls it. We know what happens when Windows API compatibility layers work well.
Transgaming’s fork of WINE was initially called WineX, and then Cedega, but the biggest political move Transgaming made was a heist. They took the freely available WINE source code, under a more permissible license then, made improvements to it, and contributed nothing back. Though Transgaming made a promise to release the source code after getting 20,000 subscribers to their commercial fork of WINE, the promise was deleted from their website after a time without any explanation. The license for the WINE project changed to prohibit this from happening again.
As a writer for Linux Games dot com back then, and someone trying to understand the landscape of playing games on Linux, I tried both the native Linux version of games that Loki and other companies ported, and tried playing games that were only accessible through WINE and WineX. Native Linux games generally worked great. The Windows Compatibility layer experience was a different story.
At the time, one of the biggest multiplayer games was Valve’s Counter Strike and There were lengthy guides that helped players get the game working in WineX. The WINE experience with Counter Strike matched that of playing other games using WINE, it was frankly unreliable. Even when games would launch, the Windows API Compatibility layer would break mid-game and patches to games would require a response from the developers of whichever WINE fork users were playing with.
New versions of the DirectX gaming APIs from Microsoft also necessitated a response from Windows API Compatibility layer developers, and those were what companies like Transgaming held back from mainline WINE development so they could sell subscriptions.
Even with all that, some people managed to have fun playing the games that worked and didn’t have to reboot to Windows. From my perspective it was frustrating to watch as Windows API Compatibility layers ate into the market for native Linux games and I heard from game developers who were just as frustrated that bosses weren’t allowing more games to come to Linux because of the real or imagined potential that games worked under WINE or WineX.
A lot has changed since the early 2000’s. Loki went out of business due to mismanagement and low sales after a few short years in 2002. The Loki website is still online here thanks to a former employee who keeps the website up.
Transgaming moved into pushing their Windows API Compatibility layer for macOS and later turned into a real estate hoarding business called Findev that dropped every pretense of caring about Linux or macOS and games.
Valve eventually released a native version of Steam for Linux and in 2014 tried to get developers to port their games to Linux to support a wave of Steam Machines, prebuilt computers that ran Linux and were mainly focused on a console-like experience which unfortunately did not catch on.
That brings us to the Steam Deck which was announced last year and users could reserve it for $5 with the final purchase price being between $400 and $700. The Steam Deck is primarily focused on running games through Valve’s fork of WINE called Proton.
People who made reservations on the first day are still waiting to get their Steam Deck. New reservations won’t be fulfilled for months. I just got mine about a month ago and the ordering process isn’t great but I think Valve is doing their best here. It isn’t as bad as trying to buy a graphics card when graphics card makers and distributors were selling them out the back door by the truckload to cryptocurrency miners, the queue is much better.
Last year I also interviewed Ryan Gordon and Ethan Lee about their thoughts on the Steam Deck. I highly recommend reading those articles before reading my thoughts here. Gordon and Lee are both third-party developers who port games to Linux and understand the technologies involved here at a much deeper level than I do.
Steam Deck Software
I’ve tried playing about a dozen games on the Steam Deck that I was “saving up” for when I had more time. Not having to power up a big desktop computer makes it easier to find that time. That’s the best part of the Steam Deck for people who are just playing games. For developers the Steam Deck has the potential to be anyone’s first Linux gaming computer and game development environment. These are my rough notes about the situation with the Steam Deck today.
Playing games is great on the Steam Deck when they work because it is a perfect match for the games you put off for later or got distracted when they came out.
Newer, intense, 3D games often don’t run well by default but may be able to run with lower settings. Elden Ring, for example, often won’t even start for me on the Steam Deck despite being high up on the list of “verified titles” in Valve’s marketing materials. Death Stranding runs but doesn’t look great to me, it might look better with some adjustments to the options but it isn’t even clear to me if Valve is trying to provide good default graphics settings for games or what.
That some games don’t work despite being listed in Valve’s verification program and related marketing materials as “verified” makes it clear that it isn’t any kind of guarantee the games will continue to work after they’re reviewed by Valve. Past verification is not a promise of present or future compatibility and treating it like it is is a mistake. This unreliability has been a fundamental flaw in claims of Windows API compatibility for the past twenty years.
Some games do work with Proton, but require shenanigans like choosing a specific version of that Windows API Compatibility Layer.
Certain native Linux ports are broken on the Steam Deck (Full Throttle and Day of the Tentacle are two examples) because of an issue with the 32-bit compatibility libraries on the Steam Deck. This is kind of ironic given the absolute shit Valve (rightly!) gave Apple about dropping 32bit support in macOS years ago. This issue is supposed to be fixed in an upcoming version of the Steam Deck’s operating system. That updated version is already available in a public beta but I’m running the current “stable” version that the Steam Deck runs by default.
I’ve seen people on forums for games with native Linux ports telling other users to switch to a different version of Valve’s Windows compatibility layer Proton when the sound is broken. Users aren’t told if they’re running games natively or through a Windows API compatibility layer. Users will not know if they should contact Valve or the game’s developer or what.
Shatter is another fantastic game that has no sound under Linux and users were telling each other to switch to different versions of Proton, but I don’t know if it is the same issue as what happened with Day of the Tentacle and Full Throttle.
The support options on the Steam Deck do not point users to Valve to seek help, but instead to third-party developers. This makes no sense for native ports that don’t work on the deck due to Valve’s issues or for Windows games that don’t work with Valve’s Windows API compatibility layer.
The Heroic Games Launcher is a free application that lets Linux users play games from the Epic Game Store and GOG but the one game (Tony Hawk Pro Skater 1 & 2) I’ve tried within Heroic did not run at all.
The Steam Deck Software Keyboard
The Steam Deck’s software keyboard is wonderful to look at, clearly someone at Valve loves mechanical keyboards, but does not always work in daily use so it gets a special section here. Audible and haptic feedback in the software keyboard frequently confirms key presses that aren’t sent. This means I will type out a long password and fail at doing so 9 times out of 10. It’s bad!
I cannot emphasize enough how terrible typing in long passwords in. I tried to log in to a few websites in desktop mode, if the form doesn’t let you see the password while you’re entering it, it’s going to fail.
Steam Cloud
There are enough reports from users about the Steam Cloud save game synchronization system malfunctioning that I find it concerning to use. Users have reported their saves being lost temporarily or permanently due to failure of the system but the main issue I have personally experienced with Steam Cloud save game synchronization is when save games don’t synchronize and I have to manually retry, which always works for some reason.
The user isn’t told what has gone wrong when Steam Cloud fails, but is simply given the option to try again with a big button labeled retry. Every time I manually retry it works, so why is the button there at all? The system should be trying again without user intervention or something else is going on here.
I’ve heard that some games also synchronize their graphics options along with save data in Valve’s Steam Cloud, which causes a problem when users are playing games on their desktop computers and on the Steam Deck, but I haven’t run into that problem. Valve supposedly discourages the practice of synchronizing graphics settings alongside game progress.
Some games don’t use any kind of synchronization system but when they do it highlights how obtuse these systems are and Valve isn’t an outlier here. Every file synchronization system I’ve ever used has had quirks at some point to leave users with concerns. File synchronization seems like a tough problem to solve.
Desktop Mode
Valve’s latest version of SteamOS uses Arch Linux as a base, but it’s something most people playing games can skip unless they want to play games outside of Steam or use the desktop mode for general computing.
It’s important to emphasize that although I’m going to complain about the desktop mode controls, they can be reconfigured. However, the default desktop controls should be great. As they are now, the default desktop mode controls are extremely unintuitive and don’t work the way I expect. There’s no way by default to scroll webpages or other long interfaces with the Steam Deck’s trackpad or thumbstick. Instead you have to click and drag which often means clicking incredibly small pieces of the Linux desktop interface and trying to drag them.
Software that users can install in the desktop mode of the Steam Deck are also limited to what is available through the Arch Linux Discovery app and bundled in isolated packages called Flatpaks. Valve specifically warns users of the Steam Deck’s desktop mode that software installed outside of Flatpaks may be lost with future updates to Steam OS:
In addition, anything you install outside of flatpak (via pacman for instance) may be wiped with the next SteamOS update.
Limiting users to software installed from Flatpaks holds back the potential of the Steam Deck as a development device or just as a mobile computing environment. There are ways to work around the limitation listed in that FAQ, however, /usr/local and the home directory exist to shield users from operating system update wreaking havoc on their software. It doesn’t feel great to be so limited. I don’t know what a good solution is here.
Steam Deck Hardware
The hardware feels good overall and performance is fast enough. The control surface varies from Fine in the case of the weird inclusion of two trackpads to Great if we’re talking about the absolutely fantastic directional pad.
All of that desktop mode stuff is way better with a mouse and keyboard, but the official Steam Deck dock isn’t out yet and the current standard of alternative USB-C pass-thru powered hubs is concerning. I have no idea if they are trustworthy because the various docks appear to always be rebranded pieces of hardware made by other companies. That isn’t unusual or necessarily bad, that is how everything is made now and even the official Valve dock may also be rebranded hardware, but at least then I wouldn’t have to be as concerned about warranty claims being fulfilled.
Headphones are an issue as well. Do you still have portable wired headphones? I do, but plugging them into a portable device stinks and slows down the experience of picking up and playing games on the Steam Deck. Yeah, Bluetooth headphones also work but they won’t be as smooth to connect as Apple’s AirPods and they will have significant latency.
There are a ton of competitors to the Steam Deck from other companies who are only shipping versions of Windows. Most of those devices cost a lot more than the Steam Deck and have either similar hardware performance or much better hardware inside but those companies also appear to be operating at a smaller scale than Valve is here. I haven’t tried those devices, and Valve seems to have no problem making SteamOS available to those companies.
Overall
As a user the Steam Deck is incredible when games work. It is a great portable computer at a very reasonable price if you can get your hands on one. However, as someone who cares about Linux gaining ground as a platform, many of my concerns before I got the Steam Deck about the “Windows API Compatibility Layer” were unfortunately correct. The danger of these compatibility layers is that the better they get, the less motivation there is to write software for Linux. Valve isn’t being as outrightly evil here as Transgaming was twenty years ago: as far as I can tell Proton’s source code is easily available and the development of Proton is contributing back to WINE. It just isn’t a great gaming experience when games don’t work consistently because they’re run in a Windows API compatibility layer like Proton.
It feels like Valve’s priorities are broken, most of the Steam library is only playable with the Windows API compatibility layer so of course Valve will focus on the compatibility layer instead of native games. This is the result of the decisions Valve made in designing the Steam Deck and the failure of other game developers to natively port their games to Linux.
Ultimately, I don’t believe we will know if the Steam Deck can work as a Linux game developer creation and conversion device unless Valve focuses on helping developers port their games again. As it is today, I am still extremely concerned the outcome of the Steam Deck may be as rotten as the TiVo and other devices were in shipping an entirely different interface on top of Linux. In this case the custom Steam Deck user experience is running on top and users have much more access if they seek it out.
Look, we have to be skeptical of big companies like Valve. They’re not here to make Linux work as a platform but I hope I’m wrong and Valve does eventually help developers port games to Linux.
Linux gaming has come a long way in 20 years and the Steam Deck is the best shot it has to be fun again.