Einige Spiele bei Steam sind DRM-Frei. Man benötigt zwar einen Client, um sie herunterzuladen - doch lassen sie sich oftmals ohne Client spielen.
Oftmals ist in Kommentaren oder Posts von "Steam is DRM" die Rede, doch das ist nur die halbe Wahrheit. In erster Linie ist Steam ein Store wie Epic, EA, itch.io, Humble oder GOG. Bei allen benötigt man einen Account, um erworbene Spiele herunterzuladen. Doch während itch.io, Humble und GOG es erlauben, direkt von der Website den Installer der jeweiligen Spiele herunterzuladen, ist es bei den Konkurrenten oftmals nicht ganz so einfach. Für EA gibt es meines Wissens nach bis heute keine Möglichkeit, Spiele außerhalb der grottenschlechten Store-Anwendung herunterzuladen, bei Epic funktioniert dies nur mit einer Drittanbieteranwendung und bei Steam ist dafür ein Kommandozeilenwerkzeug von Nöten.
Angaben, die ihr selbst machen müsst, habe ich im weiteren Verlauf als Token (
$token_name
) angegeben. Setzt an deren Stelle einfach eure eigenen Daten ein, wenn ihr der Anleitung folgt.
SteamCMD
Das Kommandozeilenwerkzeug, um Steam-Spiele herunterzuladen, ist
SteamCMD
. Unter Debian GNU/Linux wird es über den Befehl
apt install steamcmd
installiert, sofern die nonfree-Komponente des Paketarchives aktiviert ist. Alternativ kann es anhand
dieser Anleitung manuell installiert werden.
SteamCMD lässt sich über drei Wege verwenden. In diesem Artikel beschreibe ich den interaktiven Modus, SteamCMD lässt sich darüber hinaus auch über Kommandozeilenparameter oder Skripte steuern. Mehr dazu findet ihr unter
Automating SteamCMD.
Um ein Spiel aus dem Steam-Store herunterzuladen, benötigt ihr zunächst folgende Informationen/Daten:
- Gewünschten Installationspfad (
$install_dir
) - AppID des Spiels (
$app_id
) - Benutzername des Accounts (
$steam_user
) - Passwort des Accounts (
$steam_pass
)
Nach dem ersten Start von
SteamCMD
wird der eigentliche Kommandozeilen-Client ins Profil heruntergeladen und installiert. Sobald uns das Terminal mit
Steam>
begrüßt, ist der Client einsatzbereit. Als erstes legen wir den Installationspfad fest, da
SteamCMD
die Spiele sonst in eine Art Bibliothek herunterlädt. Das Setzen des Installationspfades muss vor dem Login erfolgen:
Steam>force_install_dir $install_dir
Steam>
Nun können wir uns mit unserem Steam-Account anmelden:
Steam>login $steam_user
Logging in user '$steam_user' to Steam Public...
password: $steam_pass
Unter Umständen bekommt ihr nun eine E-Mail mit einem Bestätigungscode (Steam-Guard) zugesendet. Den Code gebt ihr dann ein:
This computer has not been authenticated for your account using Steam Guard.
Please check your email for the message from Steam, and enter the Steam Guard
code from that message.
You can also enter this code at any time using 'set_steam_guard_code'
at the console.
Steam Guard code: $steam_code
Anschließend erfolgt die Anmeldung.
OK
Waiting for client config...OK
Waiting for user info...OK
Steam>
Nun ist
SteamCMD
bereit, deine Spiele herunterzuladen. Ihr benötigt hierfür die AppID des jeweiligen Spiels. Am einfachsten findet man diese bei der
SteamDB, man findet sie aber auch innerhalb der URL des Store-Links auf Steam, wie hier im Beispiel die AppID 396750 von EVERSPACE
https://store.steampowered.com/app/396750/EVERSPACE/
. Die Installation wird wie folgt gestartet:
Steam>app_update $app_id validate
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x61) downloading, progress: 0.02 (1858882 / 10530549192)
Update state (0x61) downloading, progress: 0.16 (16540456 / 10530549192)
Update state (0x61) downloading, progress: 0.69 (73163560 / 10530549192)
…
Der Download wird eine Weile benötigen, anschließend wird der heruntergeladene Content verifiziert.
…
Update state (0x81) verifying update, progress: 6.50 (684342663 / 10530549192)
…
Durch Weglassen des Parameters
validate
kann dieser Schritt übersprungen werden. Nach Abschluss der Überprüfung ist der Download abgeschlossen und SteamCMD kann beendet werden.
Success! App '396750' fully installed.
Steam>exit
Das Tool lädt normalerweise die Version des Spiels herunter, welche zu der aktuellen Plattform passt. Wird der Kommandozeilen-Client also unter Linux ausgeführt, lädt es primär die Linux-Version eines Spiels herunter. Sollte keine Linux-Version existieren, wird die Windows-Version nebst Proton heruntergeladen.
Goldberg Emulator
Manche Spiele benötigen bestimmte Funktionen des Steam-Clients. Das kann die Verwaltung von Savegames beinhalten, aber auch Zugriff auf Profilinformationen oder Multiplayer-bezogene Features. Um die Spiele dennoch lauffähig zu bekommen, kann man sich das wunderschöne Projekt
Goldberg Emulator
zunutze machen. Dieser emuliert einige Funktionen der Steam Client-API, sodass Spiele die davon abhängen auch ohne Steam Client funktionieren. Der Download erfolgt über die
offizielle Seite des Emulators auf GitLab.
Das heruntergeladene Archiv beinhaltet im Hauptverzeichnis zwei DLL-Dateien für Windows-Spiele, ein paar Beispiel-Konfigurationen und in den weiteren Ordnern unter Anderem die Bibliotheken für native Linux-Spiele und den Quelltext.
Je nach Spiel tauscht ihr die vom Entwickler mitgegebene Client-API-Bibliothek einfach durch die gleichnamige Bibliothek aus dem Emulator aus, passt unter Umständen die Konfiguration an und startet anschließend das Spiel.
Viel Spaß! :)