Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
I have not dug into the actual versions as shipped by the three versions, though.
https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/slr-for-game-developers.md
They did: the Steam Linux Runtime.
But you also seem to want "the versions of libraries that were included in Ubuntu 12.04", "the versions of libraries that were included in Debian 10“ and "the versions of libraries that were included in Debian 11" to be identical, which is obviously nonsensical.
what steam did helped steam itself, but more so a lot of games, run similarly on all linux distros
it's not too different from how flatpaks work
what's horrible is how inconsistent the steam client is at downloading, installing and listing stuff that's installed... and how heavy and unstable its web UI is (because CEF is ♥♥♥♥♥), regardless of using their own or thesystem's libs
and that's a bad thing.
all game developers target steam Frankenstein libs and don't worry about anything else. then you purchase DRM free game and want to run it from your desktop. you know what will happen - nothing. games become defunct without steam.
game devs should drag their own libs and preload them manually. it should be shipped with game.
using namespaces to provide a standardized and stable environment for games is a good idea because:
1) it makes linux just "linux" instead of a bunch of smaller OSs like "ubuntu", "arch", "fedora", etc... this helps linux be a viable target for game devs
2) games aren't FOSS software, they're mostlyreleased once and forgotten... if a lib API changes a game breaks and the game dev/studio might not be interested in updating the game to fix it, or they might not even exist anymore... FOSS apps can be forked and fixed if the original devs are lost to time
3) games are irreplaceable, unlike utility apps... as much as i like Two Point Hospital, it doesn't really replace Theme Hospital, it's another game and i want to be able to run both forever
had Valve just used the FOSS flatpak runtimes as a target, this part would be a non-issue, because the runtimes would be 100% FOSS and forever replaceable for API-compatible hooks into whatever exists on a newer system
for replacing the proprietary steam APIs, which i agree are an issue in the long term (and i'd love FOSS crossplatform crossvendor alternatives to emerge as defacto standards like SDL is and mod.io is rising up to be), see Goldberg Emulator:
https://mr_goldberg.gitlab.io/goldberg_emulator/
no, that's just making things worse... imagine a game dev drags in their own copy of OpenSSL, and unfortunately it's based on OpenSSL 1.01f:
https://heartbleed.com/
updating the OS's version of OpenSSL fixes the heartbleed vulnerability in FOSS native software using that system-wide lib... the flatpak runtimes are auto-updated in one or two days and all flatpak apps are fixed too... steam pushes an update with the fix to steam linux runtimes 1, 2 and 3 in a couple weeks because people bash them for taking so long... and the game devs are nowhere to be found, they got bought and dispersed by Eletronic Arts or Epic, which just don't care to spend a penny fixing security vulnerabilities on a linux version of the game they wouldn't even have made... this game is a menace forever unless tightly sandboxed, whixh is ironic because now it's sort of a bad flatpak...
I spoke about libraries steam loads with LD_PRELOAD for every game you run. I'd prefer to have no steam API hooks to be present in my games, I don't care about achievements or other social features related to games. Perfect game is what runs from desktop without additional unlinking it from steam API (with goldberg or steamless). however I started to notice a trend in Linux ports where they gradually stop working from desktop because of failed dependencies or steam API requirement. the only way to "fix it" is to invoke "replacement" for steam functionality or manually preload missing libs.
gog ships Linux games without this hassle. their selection isn't as big as Steam store but games do work (within supported mainstream distro). somehow gog managed to deliver Linux ports without preloading Frankenstein library so maybe there is a way to achieve the same for steam games?
Details: https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/container-runtime.md
Edit; BTW, the previous link introduces SR5 (2025+), same as SR2 but newer (Debian 13) bundle.
sometimes they assume system libs (eg: for me the native linux version of crayon physics deluxe broke on newer distros for lack of an old lib) and sometimes they ship their own everything, which breaks them on distros with conflicting libs (mostly mismatched libgcc or something like that)... putting these rebels on an isolated namespace along the stuff they need might fix them...
there are pros and cons to every approach
true, Goldberg Emulator and Steamless are workarounds, not an ideal situation... i've already mentioned how we should ideally have a vendor neutral FOSS solution for whatever is currently provided by Steam APIs
trivia: multiple steam games can be run directly (the game binary) without steam even being present... steam APIs aren't always a hard requirement, some game devs don't use them and some make a single game work with and without them (eg: so the same version can be distributed on steam and gog)