Since this comes up so often when testing games for developers and surprisingly often for newly released Linux games, I thought it might help to give developers a quick hint.
The Issue
You've deployed your shiny new game onto Steam, later you've added a Linux version and it works fine for you. However, users are reporting a "Missing Executable" error that might look something like this:
The Cause
It's usually very simple, it's a case of the Linux version not being correctly setup on Steam and it's something only the developer can fix.
A super easy way to check, is to look at the game on the handy SteamDB website, comparing the Linux and Windows lists from the Depots link you will find on the left hand side.
Here's an example - Take a look at this content depot taken from SteamDB for a Linux game (thanks to the developer of Rings of Saturn for allowing me to show their game as the example - they've fixed it since):
Now, compare that to the Windows version which clearly shows it having Store purchases and another additional package which the Linux version above did not:
The issue there, should be obvious. The Linux version needs setting up in the same way as the Windows version, being linked to all packages of keys and the Steam store purchase, otherwise we get the issue.
Note: I can't show the actual Steam developer area where you do it, since I am not a Steam developer and all that stuff Valve usually keep confidential. Valve have been emailed to confirm if we can show this.
However, in this video on the Steamworks Development YouTube channel, if you look at about 3:04 it shows the Configuring Depots section, that should be what you're after. Make sure the operating system dropdown box is set to the correct systems. Additionally, you can find this Steamworks Documentation page that explains some of it.
I see this multiple times per week, so hopefully this little tip will help a few developers.
Quoting: EikeThe article really needs a screenshot from the Steam internals. I gues someone will read this who can do it.As noted, Valve keep that from the public eye and as far as I and developers I spoke to are aware, you can't go around sharing shots of Steam's private configuration area.
Quoting: liamdaweAs noted, Valve keep that from the public eye and as far as I and developers I spoke to are aware, you can't go around sharing shots of Steam's private configuration area.
Hm. It's not like it contains anything secret, and it's there to help people bringing games on Steam. I can't see any reason for Valve to not want it.
Quoting: EikeWell, remember developers were only recently actually allowed to share any kind of sales info. So it doesn't surprise me developers are being cautious about sharing the Steam developer area. I have emailed Valve to confirm and will update with a shot if allowed.Quoting: liamdaweAs noted, Valve keep that from the public eye and as far as I and developers I spoke to are aware, you can't go around sharing shots of Steam's private configuration area.
Hm. It's not like it contains anything secret, and it's there to help people bringing games on Steam. I can't see any reason for Valve to not want it.
Quoting: liamdaweQuoting: EikeWell, remember developers were only recently actually allowed to share any kind of sales info. So it doesn't surprise me developers are being cautious about sharing the Steam developer area. I have emailed Valve to confirm and will update with a shot if allowed.Quoting: liamdaweAs noted, Valve keep that from the public eye and as far as I and developers I spoke to are aware, you can't go around sharing shots of Steam's private configuration area.
Hm. It's not like it contains anything secret, and it's there to help people bringing games on Steam. I can't see any reason for Valve to not want it.
Everything you see on SteamDB is gathered by the public APIs/means that Valve developed and put in place. Some info is gathered through developer commands in the Steam client itself and the files it generates. If you donate a CD key for a particular app. to the Steam account that powers SteamDB, some extra information can be gathered about that app.
Of course, everything that is not exposed by the public APIs/means and/or everything that is not "published" is kept secret (exact marketing stuff for example).
In a nutshell, anyone could acquire the same data as SteamDB by his/her own. SteamDB just centralize everything.
Valve is aware of SteamDB and hasn't taken any action against it so you are safe of posting SteamDB screenshots.
The SteamDB FAQ and even Valve instruct the developer to be careful when publishing changes to Steamworks (branches, depots, achievements, stats...) to prevent leaking.
The only barrier that you are not allowed to breach is to publish anything marked as "confidential", this is an immediate termination of the NDA between you (the developer) and Valve if you don't move ASAP.
About the "missing executable" subject, I wish developers could setup a default branch per OS. In the case of Zombie Panic! Source, the Linux client is only available in the "unstable" branch (for now) so we have to tell every Linux user: "if you want to play the game, use that branch, not the default 'public' one that Steam download/install/update by default".
Quoting: TheBardThanks Liam for talking about it. I'm very suprised that such a thing could not be caught on the release test phase. On the first release to a platform, it is a good idea to test the release process by acting as a regular user.
Then again it sounds like something Steam could check fully automatically.
Quoting: liamdawe...we're waiting on confirmation about getting a shot from Steam's own developer section which likely is confidential.I have released a game half year ago on Steam and every page in administration has noted in footer that it is under NDA (or something similar).
That said, I did some "ducking" and found tutorial videos on steamworks are public, so maybe take a screenshot from those? https://www.youtube.com/watch?v=SoNH-v6aU9Q
Quoting: monnefYeah that video is quite old now and by the looks like what a developer showed me, possibly a little different now too. However, the basics of it seem the same, so I will add a link to the article - thanks!Quoting: liamdawe...we're waiting on confirmation about getting a shot from Steam's own developer section which likely is confidential.I have released a game half year ago on Steam and every page in administration has noted in footer that it is under NDA (or something similar).
That said, I did some "ducking" and found tutorial videos on steamworks are public, so maybe take a screenshot from those? https://www.youtube.com/watch?v=SoNH-v6aU9Q
I've been an avid reader for a while though, frequently linking GoL articles on Steam for Linux forums, and (as this article shows) I've noticed you have a good know-how on frequent rookie linux game developer mistakes, even if not a dev yourself.
Not long ago this came up in a conversation about a botched linux release:
https://partner.steamgames.com/doc/store/application/platforms/linux
Obviously there should be more documentation (this is what is visible for non-devs), but as a public document that newbies might stumble upon, it looks seriously outdated and incomplete...
Is this something you can contact Valve about, and maybe help them include pointers on those frequent mistakes and such?
Off the top of my head I can remember a couple things you usually mention:
- case sensitive (linux) vs case insensitive (windiws) file paths
- actually uploading linux game files to the linux entry instead of a single upload to the windows entry also containing linux files
- long-standing Unity bugs and their workarounds (eg: duplicated input)
Also, maybe you could do more articles focused on such issues and have a dedicated "game development" tag for them?
As for the tag, we have a Game Dev tag this was missing, it's now on.
Last edited by Liam Dawe on 13 August 2019 at 12:00 pm UTC
I'd like to encourage you (and anyone else reading this who might feel inspired) to contact someone at Steam with this info so they might make it available to developers there. Given the Valve's nurturing of Linux as a gaming platform, I'm surprised that they don't have an internal support system for Developers looking to get their games onto Linux. And if they do have such a system, then this information needs to be an underlined, all caps, in flaming letters, part of it.
I'm really glad Liam pointed the solution out for me, I lost half of previous night trying to figure it out.
Quoting: koderThe setting itself is actually a bit of Gotcha, because Linux builds work for all Beta and generated keys *except* actual purchase. That's how it slipped my attention - we have quite a few Linux players testing the game, but they all had keys, so this didn't affect them.Always happy to help :)
I'm really glad Liam pointed the solution out for me, I lost half of previous night trying to figure it out.
Quoting: Shepard62FRAbout the "missing executable" subject, I wish developers could setup a default branch per OS. In the case of Zombie Panic! Source, the Linux client is only available in the "unstable" branch (for now) so we have to tell every Linux user: "if you want to play the game, use that branch, not the default 'public' one that Steam download/install/update by default".
Another detail worth mentioning...
There is an option called Enable Steam Play for all other titles in the Steam client settings.
- When enabled, all games are lumped into both the Games and SteamOS + Linux category in the Library.
- When NOT enabled, the Games category is all games and the SteamOS + Linux category contains only Linux games. I prefer this because reasons.
The downside to not enabling this option is that you cannot properly add F2P Windows-only games to your Library.
They are actually added, but cannot be installed as it will error out with 'Unsupported platform' and also cannot be seen in the Library as they do not have a valid Linux version.
This is true with Zombie Panic! Source even though a Linux version now exists in a 'beta' branch.
The only solution is to enable this option, restart Steam client, game is now visible in your Library, force Proton in the game properties, disable the option and restart Steam client again. Then it works... :|
edit: clarified the category statement
Last edited by dpanter on 13 August 2019 at 8:53 pm UTC
I enabled the 'Steam play for all titles' option and restarted Steam beta client. Tried to find both Zombie Panic! Source and Path Of Exile in my Library just now... none of them showed up. However they can be installed from the Store page and clicking 'Play now'
1. There is a difference between packages and depots. A package is something you sell, or give away keys for, like the main game or DLC etc. A depot, on the other hand, is a place where you can store a single version of your game; you can have separate depots for separate OSes, but also for separate languages or 32/64 bit. A package can contain multiple depots.
2. Depots are configured in the Steamworks settings, but packages are not. To configure packages, go the main app admin of the game and click 'All Associated Packages, DLC, Demos and Tools'. This shows an overview of the various packages available for the game, in various categories.
The solution was to make sure the Linux depot was in ALL packages.
Quoting: BigJSorry for the necrobump but I was trying to play Into the Breach today because they have a new native Linux build and got this error :/Fix in the article.
https://www.gamingonlinux.com/articles/into-the-breach-from-subset-games-ftl-now-supports-linux.16475
See more from me