Skip to content

Start typing to see game suggestions. This only suggests apps that have a store page.

Click anywhere outside the search field to close this popup.

Only apps with a store page are suggested. Enter Submit to view all results.

A simple primer to Steam’s DB

A quick, semi-comprehensive guide as to why there’s probably more ‘Signs of Linux Support’ and ‘Game Possibly Works’ listed on the Linux Games page than there needs to be.

Share

A quick, semi-comprehensive guide as to why there’s probably more ‘Signs of Linux Support’ and ‘Game Possibly Works’ listed on the Linux Games page than there needs to be. *

Linux is the latest platform that has been added to Steam, and as such it is still finding its feet with developers and Valve. This post is directed at all platforms. I am sure that as Valve opens up their publishing platform, they will have better resources to explain, detail and debug these issues.

SteamDB is a 3rd party tool that listens to the firehose of data the regular Steam client is sent. It is not affiliated with Valve or Volvo at all. Every check is performed automagically, unless the crowd‐sourced dataset has marked games as ‘working’ in which case that overrides it.

Valve’s database works by a series of ‘links’, from the package level (aka a sub, which can be a collection of subs, apps, and depots), through to apps (which more conventionally are individual games, tools or media), down to depots (collections of files). In deeper terms, it is a direct‐acyclic graph.

When you buy something on Steam, you’re granted that sub and its added to your account.

Let’s have a look at Portal 2, appid 620, and how after buying it you’re able to download that game for Linux. To find out how you own it, open up Steam’s console steam steam://open/console and type licenses_for_app 620.

License Portal 2 PS3 - PC Retail (7397):
 - State   : Active( flags 0 ) - Purchased : Mon May 14 14:13:50 2012 in "GB", CD Key
 - Apps    : 211, 215, 218, 620, 629, 644,  (6 in total)
 - Depots   : 621, 622, 623, 624, 625, 626, 627, 628, 661,  (9 in total)

So you can see my subscription is 7397, yours may be different. It gives access to a list of apps and depots. The included apps are Source SDK 2006/2007, and the Authoring and Publishing Tools. Depots of the pattern 62× grant access to Portal 2’s content, languages and win/mac clients, and 661 is the newer depot ‘Portal 2 linux content’. Without having the 661 depot in this sub, even owning the root game 620, I would not have permission to download the files. One depot missing from this sub is 660, ‘Portal 2 ‐ Sixense Motion’. It is part of a smaller set of subs, and without having one of those I cannot download it.

licenses_for_app 660
No active license found for appID 660.

So thats the basics of the sub/app/depot system. Wasn’t I going to explain why some games can’t be downloaded? That explanation will help now as I’ll be describing the terms SteamDB uses on their site. These are explained tersely on the Linux page, but the checks aren’t thorough ‐ subs are ignored ‐ so we can go into more detail here as to possibly why things aren’t rosy.

  • Signs of Linux Support ‐ this game has depot or config marked for Linux, but does not have linux listed in a valid OS list.
  • Depot Not Public
    • the depot tagged for linux hasn’t been published on a public branch. Yes, there are more levels of complexity, when Steam gives you the option to opt in to beta versions of games, this is the path they take. It means the developer is working on the game in private, or has forgotten to list it publically (yes, it happens).
    • the depot tagged for linux isn’t in any subs. For example, Witcher 2 has a Linux depot, it’s not public nor is it included with the sub that any gamers have bought. It’s only granted if you have sub 40356 ‘The Witcher 2 Linux Beta Retail’.
  • No Linux Launch Config ‐ the vdf is missing launch config for the game. This is a bit of a misnomer as it tends to highlight other issues, such as Limbo which has an empty linux depot. Most of the games here are unreleased on all platforms and have no depots at all.
  • Game Possibly Works ‐ the game might launch! No one has told us. Or, the depot tagged for linux isn’t in a sub. For example, Paranautical Activity doesn’t have their Linux depot in any sub.
  • No Linux Depot ‐ the game has been tagged in oslist as being for Linux but there are no depots defined for linux.
  • Game Has Open Beta ‐ the depot tagged for linux hasn’t been published on a public branch yet there’s another branch the user can opt‐in to download the game. It may require a password to access.
  • No Desktop Icon ‐ the developer hasn’t set linuxclienticon and therefore users get a generic Steam icon in the launcher.

I have tried to be fair in my examples, I do not wish to highlight any one game/developer, as you can see there are a few titles in each category, what was picked was random.

So why are games showing up in client? Because Steam’s database doesn’t use any implicit understanding of the data, it uses oslist to override whatever the game developers underneath have configured. It makes it simple to manage but increasingly fragile as more game developers are greenlit with less understanding of how it works.

Most of the current data issues are resolvable by you, the Steamworks developer. Other issues like adding depots to subs you don’t control rely on Valve. None of these issues are hard, but they are easily ignorable. To your customer’s chagrin.

* ‐ insight derived through playing with the Steam client and following SteamDB as it formed.

Have feedback on this post? Join our Discord

SteamDB has been running ad-free since 2012.
Find out how you can contribute.