I Got My “Steam Deck!” User Impressions, and Running Old Unity3D Games

After putting in a pre-order in Canada on the first day (back in July I think), my Steam Deck 64 GB model arrived in the mail. It’s cool to finally hold the thing, and as an indie developer, to see my old games running on it. But getting my games to run wasn’t perfect; I go into detail in this post about my experience and impressions as both a developer and as a gamer.

My Steam Deck is here!

First, I technically got this 3 weeks ago (to give an accurate idea to others who pre-ordered it). It arrived 1 day before I was set to leave to GDC. Thankfully, it was mailed to my parents’ home, so there was no concern of the package waiting outside my door while I was away. When I first ordered it, I imagined taking it to GDC to play my games live with people, but this was cutting it a little too close. Technical problems, and the sheer massive size of the device, would make it difficult to carry and run at the last minute. And given the rarity of the device right now, it might have brought unwanted attention and envy at GDC – I didn’t see a single person with one while I was there, even though this should be the hottest gaming device right now.

Second, you might balk at me getting the cheapest 64 GB model, but I still think it was the right decision. The most expensive version has 512 GB, and that wouldn’t be big enough to store my Steam library either, so using micro sd cards was unavoidable. And I’m used to running games from a portable hard drive, so loading times don’t concern me for anything but the most recent titles. And since this was a pre-order for a 1st-generation device, I felt better not risking more money when a better version will come eventually. The only caveat here is that micro sd cards are still expensive per GB, about the cost of an SSD, so added costs to use it are unavoidable.

Anyway, let’s talk about the device.

User Impressions

Here’s a bunch of pictures comparing the size of the device to a Nintendo Switch, an Xbox controller, a 12.3″ Surface Pro, and an old 5.5″ smartphone.

Deck with its case.

Deck with some other stuff for size comparison.

Deck on its side (just a little thicker than a Switch)

Deck is about the same length as a Surface Pro tablet.

Yep, this thing is BIG, exactly matching the width of my Surface Pro (similar in size to an iPad Pro). It almost feels like I’m holding a full-size keyboard in my hand, but heavier. I was already annoyed that smartphones thought it was OK to grow to the size of a phablet, and that the Nintendo Switch pretended to be a “portable” size… but this is a whole new level of silly.

Honestly, when including the thickness of the device (mostly just in the hand grips; the device itself is relatively thin), it feels like a standard laptop would be more portable to carry in a bag. Especially a light ultrabook or tablet. But to play games on those isn’t really possible without a flat table to set them on. That’s where the Steam Deck makes sense: with an integrated game controller, you could actively use this anywhere (even if it’s harder to carry anywhere). It’s also much easier to pass around to others to try a quick game.

Beyond that, the build quality seems fine. It’s mostly plastic, vaguely similar in feel and durability as I’d expect from the Xbox 360 controller I have. This is good, since I’d be touching the device all the time. The screen looks good enough, although there’s some yellow light bleed from the edges that’s noticeable when dim / dark images are on the screen, and in certain lighting conditions (reminds me of cheaper touchscreen devices from years ago). The touchscreen with smudge with fingerprints as you use it, but feels like nice glass to touch, and I don’t plan to get a screen protector. I’m happy a carrying case is included for free though: I think Valve is fully aware that this computer isn’t that durable for extreme use and travel.

The typical gamepad buttons along the top all feel good, both to press and in their placement. However, while the textured mousepads feel good for moving a mouse cursor, clicking by pressing down on them feels mushy with very little travel, and is difficult to do without accidently moving the cursor elsewhere. The two settings buttons on the bottom (“Steam” and “…”) also feel very mushy and cheap-feeling, drastically different from the top buttons (frustrating since these are the main buttons to force-quit a game).

The Steam OS is a fun novelty to explore my Steam library and the Steam store. It has a lot of the bugs that I hate the normal Steam application for. For example, logging out and requiring you to log back in frequently each time you boot or disconnect from a network. Or the ridiculous number of menus that make it hard to find basic features, like current battery charge. One huge benefit they get right here is providing a lot of customization to launch each of your games, including different controller layout templates, mapping your own custom controls, launching executables with extra parameters, or forcing launching the “Windows” version of a game with Proton (this turns out to be essential, even for games with native Linux ports).

In the “Power Down” menu, there’s an option to quit and boot into “Desktop Mode.” This looks like a typical user-distro of Linux, with a web browser and file manager access. I could totally imagine checking my email or watching YouTube from here! But here, using the touchpad mouse is critical, and it’s difficult to precisely click on anything. The touchscreen is even LESS precise, one of the least precise touchscreens I’ve tried in recent memory (this might be a driver issue just for Desktop mode or for Linux?). Bringing up the on-screen keyboard isn’t automatic either, requiring a gamepad-combo to open (and is either imprecise with the touchscreen, or slow with the gamepad, to enter anything). So this is a nice idea and useful in a pinch, but probably meant for people who get a USB-C dock and plug in a real mouse and keyboard.

This is what the Deck Desktop looks like.

I haven’t tried to run too many games yet, and certainly not power-hungry ones. There’s probably enough benchmark information on that elsewhere. All I’ll say is to say again that the ability to force Proton over using a Linux native build is critical to get certain games to work, so I’m glad it’s included… this seems to install the game twice, both Linux and Windows, but there’s probably a way to fix that in a menu I haven’t found yet. To be able to play my existing library at all on this new form-factor is exciting.

So basically, I’m pleased with the device, especially at this price-point of $399 USD. The build-quality isn’t perfect but is good enough for a casual consumer product. The menus and features will take time to get used to, and may be improved in updates… requiring me to get used to them again. The pioneers of this “portable-gaming” sector in China make slightly smaller devices, but not small enough to dissuade me on the Steam Deck’s relative size. I’d still love to see a device that’s smaller than a Nintendo Switch opposed to bigger, and I can see room here for Valve to make a smaller, cheaper-feeling device in addition to a more-expensive, larger, nicer-feeling, powerful device. I’ll probably start casually going through my Steam library again, playing this in bed or in a sofa-chair, like I do with my Switch – portability makes the draw to pick up a game that much easier.

Developer Impressions

OK, so we’ve discussed that Steam games seem to work fine. Mostly. Maybe with some settings-tweaking. But I’m an indie developer. I released some Unity3D games on Steam back in 2015. Can those run on the Steam Deck?

You’d think the answer is “sure, why not?” But the answer’s not that simple. A user recently pointed out to me that my native Linux builds weren’t running well, and I tried to fix it, as described here. It turns out that 32-bit Linux games (the common build option at the time; 64-bit builds in Unity were still considered experimental and not recommended) don’t work well in modern 64-bit versions of Linux. Windows does it out of the box, but not Linux. This results in some games having controller issues, audio issues, crashing, or not launching at all.

Sure enough, the old 32-bit Linux builds on Steam don’t work great. I tested “Drew and the Floating Labyrinth” and “Unfinished – An Artist’s Lament.” “Drew” will launch, but “Unfinished” doesn’t launch at all (strange, since both are nearly identical). For “Drew,” there were controller issues, and I think the audio didn’t play properly. There was also some weird resolution scaling. This pretty well matches the issues on a normal Linux computer.

It’s also worth mentioning that, while Unity3D doesn’t include a resolution-dialog launcher now, it was common in Unity3D games a few years ago, and used in mine. Here’s a picture of what that looks like. It’s functional, but kind-of ugly. And using the mousepads or touchscreen is required here: sometimes the mouse works, sometimes it’s unresponsive and I had to force it to quit and try again.

Unity3D’s old dialog launchers still work on Deck (sort of).

Anyway, controller-mapping issue in Linux. The dpad wasn’t working as expected, and the bumper/trigger buttons didn’t work. Unity’s dialog launcher doesn’t work to remap anything. Steam OS tries to come to the rescue with different button configuration templates. The normal default is “Gamepad With Joystick Trackpad,” but I tried some others, and found “Keyboard (WASD) and Mouse” worked much better; the only issue it doesn’t solve is that the right-joystick is now tied to a mouse cursor on screen, and it doesn’t allow the cursor to go infinitely off-screen, setting a min-max limit to where my camera could rotate. I could customize the joystick sensitivity to allow the player to rotate a full 360 degrees, but there’s still a limit. So this makes it playable, if slightly awkward.

But apparently, even for other Linux-native games, it’s recommended to at least try running the Windows version with Proton. You can force this for a game in Steam OS by clicking “Settings (the gear icon)” -> “Properties” ->”Compatibility” -> “Force the use of a specific Steam Play compatibility tool” (then selecting a version of Proton to use). The OS takes a minute to redownload the Windows build, and volia! With no extra tinkering, both of my Unity3D games run perfectly! Controls work, resolutions work, audio works, everything!

The games I made work on Deck!

So I can proudly say that my games “Drew and the Floating Labyrinth” and “Unfinished – An Artist’s Lament” are verified to work well on Steam Deck… sort of. If I had no Linux build of these in Steam, then I could truly say they’re verified to work, but their existence requires the user to do some extra tinkering. I don’t know if Steam allows developers to enforce a default on whether to use Proton from their admin pages, or if this is just something that devs need to communicate to users that pay attention. Anyway, it’s disappointing how bad Linux’s handling of old apps is, but it’s super cool how much progress Steam, Proton and Wine have made to fix this for the future.

Running Non-Steam Games

So cool, I can run Steam games, including ones I’ve made. But can I run developer builds without using Steam to upload them? Can I run my vast library of games from GOG.com or Itch.io?

I started by trying to plug in an external USB hard drive to the USB-C port while in Steam OS. I was surprised that there was seemingly no recognition of the device there. Somewhere, I was able to set it as an install location for future downloads, but I couldn’t search and find the hundreds of existing games folders I already had. This was true for both Steam and non-Steam folders on the drive.

The trick was the following: 1) boot into Desktop mode. 2) launch the Steam desktop client in Desktop mode. 3) Go through the process of adding a non-Steam game to show up in Steam, by clicking “+ Add Game” on the bottom left -> “Add a Non-Steam Game…”. 4) Find the location of your Windows .exe for the game (on a USB drive, search under “/run/media/deck/”) 5) After adding, change the settings to force it to use Proton.

From there, you can launch the game with Steam in Desktop Mode. Or you can go back to Steam OS, and find the new game under a menu tab for “non-Steam games” (with a message from Valve saying they know how silly this process is, and plan to update it later). It seems to work: I tested with a Windows version of “Bastion” from GOG. Presumably, I can do this with my personal Unity builds too. And if you unplug a drive, the games are still in the Steam menu, they just can’t be launched until you plug in the drive again.

Running a non-Steam game on Deck from an external hard drive.

It might sound silly, but there is a use-case here. I keep my game collection on an external hard drive, and the games work great when I move the drive between Windows computers. Thanks to Proton, I can use these on Steam Deck with Linux too, without downloading them again or relying on expensive storage. And as a developer that’s constantly updating prototypes, this type of workflow is important.

… but even in Desktop Mode, I can’t just click on an .exe in a folder an run it. I MUST first add it to Steam. I MUST do this for every game, one at a time. That’s kind of a nuisance. Also, I can “safely remove” a drive in Desktop Mode, but can’t find such a thing in Steam OS, so frequently unplugging a drive might corrupt the data. Of course, a game’s save data isn’t always in the same place as the game itself, so this doesn’t necessarily mean you can just continue a game from one device to the other (Steam games might do this with their Cloud Save feature)

Conclusion

New devices always have little growing pains. That’s made a lot easier here with the Steam Deck’s amazing price point for what you get. I imagine the software and OS will get a little better, although some of these complaints have been in plain Steam for over a decade without fixes. The only serious complain I have is that I want this to be smaller, half the size or less, and would happily accept a less-powerful device for it.

But in the meantime, this is an exciting new product type, and should be a cool way to show off what I’m working on… if I can actually finish something…