[SOLVED] [SteamOS] The game crashes at launch on Steam Deck

Hi there!

I spent my afternoon testing our game’s implementation on Steam Deck and despite my best efforts, it doesn’t work.

I followed the steps in these two different tutorials:

https://partner.steamgames.com/doc/steamdeck/loadgames

But I don’t think that’s where the problem lies. In fact, the game transfers well to the Steam Deck and is visible in the Steam library, but when I launch it, I’m faced with an infinite load (with the Steam logo in the background), and then nothing else. I’ve tried waiting a while, but it doesn’t make any difference.

Are there any settings in Unity that I’ve forgotten?

What I’ve already done to build :

  • Switch Backend Scripting to IL2CPP in Player Settings
  • Pass Build Settings on Linux

The build runs correctly and creates the right files. No errors.
So I think it’s my build?
I’ve also tested different versions of Proton but this doesn’t solve the problem.

I can’t find much information on this subject, apart from a few videos that explain mainly how to transfer files to the Deck.

Thanks !

EDIT :

Okay, I solved the problem.

I just made a new build and named the file correctly, as Steam DevKit doesn’t like spaces in the build name.

Previously, I’d already tried manually changing the build name, since DevKit was already telling me that the file name was incorrect, but I think I’d forgotten to rename all the folders associated with the executable in the build folder.

Anyway, after a new clean build, it works. :slight_smile:

You don’t need Proton if you build your game for Linux. Proton is to run Windows games on Linux.

I don’t know what that Steam Deck Dev Kit is. I didn’t have to do anything special to make my game run on the Steam Deck, just a regular Linux build was enough.

My advises:

  • Try building your game with Mono instead of IL2CPP and see if it works. You can make Linux Mono builds from Windows without any dev kit or SDK or whatever. You just need to install Unity’s Linux thing (check your Unity install in the Hub if you don’t have it already). Once you get it to work with Mono you can dig into IL2CPP if you really want to. But the building process is harder.
  • Install Linux on your PC, install Unity on it and try building and testing there. It will be much easier to test and debug your Linux build on Linux. If your build works on Linux then it will work on the Steam Deck too.
1 Like

Hey, thanks for your reply!

I understand a little better how it works, thanks.

To tell the truth, I simply followed the official guide I linked to in my first post. But I actually saw in another video guide on Youtube that the person was using Mono and I didn’t understand why the first guide advised me to use IL2CPP (which is supposedly more optimized for Steam Deck). I understand it better now.

As I said in the EDIT of my first post, I solved the problem by redoing a build. I think the problem was just the spaces in the build name (it’s a guess for now, I’ll have to retest to confirm).
The name of my first build was “Game Name Linux.x86_64” and all the other files and folders in the build included these spaces in their names. I assumed this was the problem, so I rebuilt with the name “MyGameLinux.86_64” and it now works.

The Steam DevKit is just used to create a link via a local network between the PC and the Steam Deck. A little configuration and you can directly upload the build folder. The game can then be launched directly in Steam. I think it’s just a simplified way of transferring your game to the Deck. It’s pretty simple to use, so perfect for me ahah.

Thanks again for the reply!

EDIT : So if I understand correctly, I could technically just make a build for Windows with an .exe and the Steam Deck would be able to launch it using Proton?