Wildwuchs

Spielstände aus dem Documents-Verzeichnis entfernen

Wildwuchs

Müllt mich nicht zu!

Seit Windows Vista existiert im Benutzerverzeichnis ein Unterordner “Saved Games” für Spielstände. Dennoch entscheiden sich Spielehersteller seit Jahren dafür, Spielstände und Konfigurationsdateien nebst weiterem Datenmüll im “Dokumente”-Verzeichnis des Anwenders abzuwerfen und das Verzeichnis damit bis zur völligen Unbrauchbarkeit zuzumüllen. Kann man Anwendungsprogramme meistens davon überzeugen, ihre Daten an einer anderen Stelle abzulegen, ist dies bei Computerspielen fast nie vorgesehen.

Viele im Netz vorgeschlagene Lösungsmöglichkeiten beinhalten das Ausweichen auf einen anderen Ordner und das kampffreie Überlassen des Schlachtfelds an die Spielehersteller. Der Rest appelliert lediglich an die Nutzer, sich damit abzufinden. Basta.

Die Begründung für die feindliche Übernahme des Dokumente-Ordners durch die Spielehersteller bleiben die Hersteller uns schuldig. Die plausibelste Erklärung ist, dass der Spielesupport weniger Arbeit damit hat, die Spieler zu ihren Spielständen zu führen; außerdem kopiert der durchschnittliche Windows-Nutzer das Dokumente-Verzeichnis beim Umzug auf einen neuen Computer selbständig, während der korrekte Ablageort “Saved Games” im Windows-Explorer versteckt ist.

Wo muß eigentlich was hin?

Neben den offensichtlichen Ablageorten für Desktopelemente, Downloads, Dokumente, Bilder, Musik und Videos die im Windows-Explorer standardmäßig exponiert werden, gibt es noch das Verzeichnis “Saved Games”, welches sich lokalisiert und auf Deutsch “Gespeicherte Spiele”[sic!] nennt und eigentlich für erwähnte Spielstände gedacht ist. Folglich wäre eigentlich der lokalisierte Name “Spielstände” geeigneter. Egal: Hier gehören Spielstände rein!

Die Spiele kümmert das wenig. Nach dem Start erwarten sie ihre Spielstände und meist auch Konfigurationsdateien im Dokumente-Ordner desjenigen Anwenders, der das Spiel gestartet hat. Was bedeutet, dass man die Verzeichnisse nicht einfach so verschieben kann. Auch in der realen Welt muss man bei der Post einen Nachsendeantrag stellen. Was eine realistische Idee ist…

Nachsendeantrag

Seitdem das Dateisystem NTFS das alte FAT-System als Standard abgelöst hat, beherrscht Windows auch die von der Unix-Welt bekannten “Symbolischen Links”.

Meine Idee ist also, die Spielstände manuell nach dem ersten Spielstart in das Verzeichnis “Saved Games” zu verschieben. Vor dem nächsten Start des Spiels muss dann “nur noch” ein solcher “Link” vom “Dokumente”-Verzeichnis auf das “Saved Games”-Verzeichnis erstellt werden und nach Beendigung des Spiels wieder gelöscht werden. Das Spiel glaubt dann, auf seine Daten und Spielstände im “Dokumente”-Verzeichnis zuzugreifen. Die Daten liegen aber in Wirklichkeit im Verzeichnis “Saved Games”!

Jetzt brauchen wir nur noch einen netten Agenten, der diese Verknüpfung vor dem Start des Spieles anlegt und danach brav wieder löscht. Dafür gibt es eine tolle und komfortable OpenSource Lösung mit dem schönen Namen “Playnite”.

Playnite eilt zur Hilfe

“Playnite” ist ein Kofferwort aus “Play” (spielen) und “unite” (vereinen, zusammenführen). Es dient der Verwaltung von Spielen der einschlägigen Online-Anbieter:

  • Amazon Games
  • EA app
  • Steam
  • GOG Games
  • Humblebundle

Außerdem kann man eigene installiere Software konfigurieren. Der Clou: Playnite erlaubt die Konfiguration von Skripten, die vor und nach der Spieleausführung ausgeführt werden sollen - und das ist genau das, was für unseren Zweck nötig ist.

Die Installation und Konfiguration von Playnite wird auf der Website von Playnite leider nur in englischer Sprache erklärt. Die Software selber ist aber vollständig eingedeutscht.

Was ist Playnite?

Playnite ist ein All-in-One-Manager und Launcher für Videospielbibliotheken auf Open-Source-Basis. Es vereinfacht Ihr Spielerlebnis, indem es Unterstützung für eine Vielzahl von Bibliotheken von Drittanbietern wie Steam, GOG, EA, Battle.net und Ubisoft Connect sowie für emulierte Spiele bietet. Playnite bietet eine einheitliche Oberfläche sowohl im Desktop- als auch im Vollbildmodus, mit der Sie Spiele mühelos organisieren und starten können. Außerdem bietet es Funktionen wie die Verfolgung der Spielzeit und die Flexibilität, die Funktionalität mit benutzerdefinierten Add-ons und Themen zu erweitern.

Wie funktioniert Playnite?

Playnite importiert Ihre Spiele aus verschiedenen Spielebibliotheken, Diensten und sogar lokal installierten Spielen auf Ihrem Computer. Es fasst sie in einer einzigen Bibliothek zusammen und bietet eine nahtlose Schnittstelle zum Verwalten und Starten Ihrer Spiele direkt von Playnite aus.

Warum Playnite?

Mit der zunehmenden Verbreitung von Spiele-Startprogrammen kann die Verwaltung Ihrer Spiele auf verschiedenen Plattformen mühsam werden. Playnite kommt zur Rettung, indem es als zentraler Knotenpunkt zum Durchsuchen, Organisieren und Starten von Spielen dient, unabhängig von ihrer Quelle. Unabhängig davon, ob deine Spiele über verschiedene Dienste verteilt oder lokal installiert sind, mit Playnite sind sie an einem Ort organisiert und leicht zugänglich.

Wenn Sie nach einer effizienten Lösung für die Verwaltung Ihrer Spielebibliothek suchen, ist Playnite die erste Wahl für Sie.

Für den gewünschten Effekt benötigen wir zwei Hilfsskripte, die von Playnite vor und nach dem Spielstart aufgerufen werden. Dafür stelle ich zwei Batch-Dateien am Ende dieses Post zur Verfügung, die in den Pfad kopiert werden müssen. Das erste Skript, “glink.bat” erstellt eine Verknüpfung im Verzeichnis “Dokumente” auf ein gleichnamiges Verzeichznis in “Saved Games”. Das zweite Skript, “gulink.bat” entfernt diese Verknüpfung, aber nur, wenn es sich wirklich um eine Verknüpfung handelt.

Im zweiten Bild über diesem Text finden Sie eine Beispielkonfiguration eines realen Spiels. Hier sind die beiden Zeilen, die in die Felder “Vor Spielstart auszuführendes Skript” und “Nach Spielende auszuführendes Skript” einzutragen sind:

Vor Spielstart

 

Start-Process -FilePath "$env:comspec" -ArgumentList "/c glink.bat `"The Lord of the Rings Online`""

 

Nach Spielende

 

Start-Process -FilePath "$env:comspec" -ArgumentList "/c gulink.bat `"The Lord of the Rings Online`""

 

Natürlich ersetzen Sie den Namen des Beispiel-Verzeichnisses von “The Lord of the Rings Online” in den Namen des wirklichen Spieleverzeichnisses. Bitte beachten Sie unbedingt die “Backticks” “`” vor den Anführungsszeichen, die das Spielstandverzeichnis umschließen.

Wichtig!

Dieser Mechanismus greift natürlich nur, wenn das Spiel über Playnite gestartet wird. Startet man das Spiel auf einem anderen Weg, wird das Spiel ein neues, leeres Verzeichnis erstellen und sich vermutlich so verhalten, als ob es zum ersten Mal gestartet wird. Passiert das versehentlich, muss man das Spiel beenden und das neu erstellte Verzeichnis aus “Dokumente” löschen.

glink.bat

@ECHO OFF
REM GLINK.bat creates a symbolic link from Documents to Saved Games folder
SET SOURCEDIR = %USERPROFILE%\Documents\%~1
SET DESTDIR = %USERPROFILE%\Saved Games\%~1
IF NOT EXIST "%SOURCEDIR%" (
mklink /J "%USERPROFILE%\Documents\%~1" "%USERPROFILE%\Saved Games\%~1"
)

 

Erstellt die Verknüpfung nur dann, wenn das Verzeichnis im Argument 1 nicht existiert.

gulink.bat

@ECHO OFF
REM GULINK.bat removes a symbolic link from Documents folder
SET SOURCEDIR=%USERPROFILE%\Documents\%~1
IF EXIST "%SOURCEDIR%" (
fsutil reparsePoint query "%~1" > nul:
IF %ERRORLEVEL% == 0 (
rmdir "%SOURCEDIR%"
)
)

 

Mit dem kleinen Trick “fsutil reparsePoint query "%~1" > nul:” wird geprüft, ob es sich bei dem Element in Argument 1 wirklich um eine Verknüpfung handelt und nur dann wird das Verzeichnis entfernt.

tl;dr

Einmalig:

  1. Installieren und konfigurieren von Playnite. Das lohnt sich wegen des Komfortgewinns allemal
  2. Die beiden Batch-Dateien in den Pfad legen

Nachdem man feststellt, dass ein Spiel mal wieder das Dokumente-Verzeichnis zumüllt, folgendes tun:

  1. Das betroffene Spiel darf nicht laufen
  2. Verzeichnis aus “Documents” in “Saved Games” verschieben
  3. Spiel in Playnite eintragen und konfigurieren
  4. In der Spielekonfiguration von Playnite auf der Registerseite “Skripte” die unter “Vor Spielstart” und “Nach Spielende” oben angegebenen Zeilen mit dem korrekten Verzeichnisnamen eintragen

Spiel nur noch über Playnite starten!

Kommentare

Keine Kommentare

Kommentar schreiben

* Diese Felder sind erforderlich

Verwandte Beiträge