Mein Dokumentenordner ist mit Unterordnern verschiedener Spiele überflutet, einschließlich einiger neuerer AAA-Titel. Als professioneller Anwendungsentwickler ohne Erfahrung in der Spieleindustrie ist dies einfach falsch. Diese Dateien gehören zu% APPDATA% oder% LOCALAPDATA%.
Meine Frage ist, gibt es eine bewusste Entscheidung, diese Dateien in% UserProfile% \ Documents abzulegen, um bestimmte Vorteile zu erzielen, oder ist dies nur ein altes Verhalten, das aus den Tagen von Windows XP übernommen wurde? Oder gibt es einen noch besseren Grund, wie z. B. Steam, der dies erfordert oder empfiehlt, oder eine beliebte Engine, die dies standardmäßig tut?
Verwandte: In welchem Verzeichnis soll das Spiel speichern Dateien / Daten schreiben? (um unnötige Diskussionen zu vermeiden)
Antworten:
Nein nicht wirklich.
Spieleentwickler haben die von einem Betriebssystem festgelegten Konventionen traditionell nicht besonders beachtet. Um fair zu sein, tun dies auch viele reguläre Anwendungsentwickler nicht.
In den
%AppData%
Ordnern und documents werden Benutzerdaten gespeichert. Der Unterschied zwischen ihnen für die Zwecke dieser Frage besteht hauptsächlich darin, dass%AppData%
Dinge, die der Benutzer nicht sehen oder mit denen er interagieren muss, im Ordner "Dokumente" für die Dokumente des Benutzers abgelegt werden : Dinge, die er sehen und mit denen er interagieren möchte .Spiele speichern manchmal ihre Einstellungen und speichern Dateien im Ordner "Dokumente", weil sie dadurch sichtbar werden. Dadurch werden weniger technische Benutzer auf sie aufmerksam und können sicher sein, dass sie vorhanden sind, oder sie werden mit größerer Wahrscheinlichkeit korrekt gesichert, wenn die Sicherungsmethode a lautet "Kopieren Sie das Zeug in meinem Benutzerordner auf ein anderes Laufwerk."
Spiele speichern auch manchmal Dateien dort, weil sie das Verhalten des relevanten Codes gegenüber älteren Betriebssystemversionen nicht geändert haben, wie Sie vermuten, oder einfach, weil es ihnen egal ist, über das Problem so viel nachzudenken.
Es ist albern und normalerweise falsch, aber es ist was es ist.
quelle
%appdata%
Rückseite gespeichert hat, als ich sie erhalten habe. Als ich in seinen Ordner schaute, wurden meine Kreaturen alle als PNG-Bilder gespeichert, was ziemlich erstaunlich war, und ich denke, es wurde absichtlich in den Dokumentenordner gelegt, damit die Leute einfach mehr Kreaturen und Fahrzeuge teilen und herunterladen konnten. Vor diesem Hintergrund habe ich keine Ahnung, warum Spiele, bei denen nur Rohstoffesave.dat
zum Einsatz kommen, sich dazu entschließen, ihre Inhalte dort abzulegen.SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)
die standardmäßig verwendet wird%UserProfile%\Saved Games
. Auf diese Weise kann der Benutzer seine gespeicherten Spieldaten leicht finden und sichern, aber es wird ihm nicht im Wege stehen. Andere Daten als der Fortschritt und / oder die Konfiguration (z. B. kompilierte Shader, plattformoptimierte oder heruntergeladene Assets usw.) sollten in appdata gespeichert werden.Wenn ich auf meine Festplatte schaue, habe ich
%APPDATA%
%LOCALAPPDATA%
%APPDATA%
%LOCALAPPDATA%
%UserProfile%\Saved Games
%UserProfile%\Documents
...%UserProfile%\Documents\My Games
Das ist ein Verhältnis von 1: 9 für Spielstände in gespeichert wurde
%APPDATA%
,%LOCALAPPDATA%
, im%UserProfile%\Saved Games
Vergleich zu%UserProfile%\Documents\*
. In meinem Beispiel sind alle 4 Spiele, die keine Savegames enthalten%UserProfile%\Documents\
oder%UserProfile%\Documents\My Games\
aus winzigen Studios stammen. Ich muss also davon ausgehen, dass die großen Studios mit mehreren Millionen Entwicklungskosten einen Grund haben, alle ihre Dateien - einschließlich temporärer Dateien - einzuspielen%UserProfile%\Documents\*
.Obwohl altes Verhalten einige davon erklären kann, denke ich nicht, dass es ein starker Grund genug ist, zu erklären, dass jedes große Studio seine Dateien am falschen Ort abgelegt hat. Es muss also einen besseren Grund geben.
Der beste Grund, den ich mir vorstellen kann, besteht darin , die Kosten für den Kundensupport zu senken . Das Problem ist, dass
%APPDATA%
und%LOCALAPPDATA%
versteckte Verzeichnisse sind, und niemand scheint zu wissen%UserProfile%\Saved Games
. Durch das Ablegen der DateienDocuments
können Studios Geld bei Supportanrufen sparen, bei denen Sie gefragt werden, wie Sicherungskopien von Spielständen erstellt oder wie die Sicherungskopien von einem Computer auf einen anderen migriert werden sollen. Beispiele für Benutzer, die keine Spielstände finden konnten, weil sie sich%APPDATA%
hier , hier , hier und hier befanden .Ein weiterer Grund könnte sein, dass Benutzer danach fragen , wie in diesem Beispiel .
quelle
steam\userdata
und 5 Spielen mit speichert / Daten in%ProgramData%
. Dies gilt nicht für Spiele, die all dieses Zeug in ihrem Installationsverzeichnis haben oder es geschafft haben, einen anderen Ort zum Speichern von Daten oder Speichern zu finden.Es ist mir egal, wie viele Spiele ich nach einem Backup / Restore oder ähnlichen Vorgängen neu starten musste, weil ich alle wichtigen Dateien aus meinen Dokumenten verschoben habe, aber die Daten der Benutzeranwendung, z. B. das Speichern von Dateien, völlig vergessen habe oft in mit den Programmdateien oder anderen seltsamen Orten (wie in einem versteckten Ordner wie appdata).
Persönlich mag ich es aus diesem Grund in meinen Dokumenten zu haben, obwohl ich sicher bin, dass mich jemand anweisen wird, einfach ein richtiges Backup-System zu bekommen, anstatt es manuell zu machen.
Ein wenig Konsistenz wäre schön, und noch schöner wäre es, wenn Dienste wie Steam irgendwo Kopien von Sicherungsdateien in einem Netzwerk aufbewahren.
quelle
Aus eigener Erfahrung habe ich mich dazu entschlossen, in% UserProfile% zu speichern, da der Benutzer immer Lese- / Schreib- / Änderungszugriff darauf hatte, ohne die Berechtigungen ändern zu müssen.
Dies war bei% APPDATA% nicht der Fall. Insbesondere bei eingeschränkten Benutzerkonten haben Sie häufig keinen Schreibzugriff auf Dateien, die von anderen Konten in% APPDATA% erstellt wurden. Ich stelle mir vor, dass die AAA-Titel die Wahl aus demselben Grund getroffen haben wie wir. Wir wollten keine Kopfschmerzen.
quelle
Aus meiner persönlichen Sicht als Benutzer unterscheide ich in erster Linie zwischen Daten, von denen ich Sicherungskopien haben möchte, und Daten, die mir egal sind.
Das Erstellen inkrementeller Sicherungen von
%LOCALAPPDATA%
ist ein Chaos, da die Sicherung mit Zehntausenden temporärer Dateien überladen wird, von denen viele von Hintergrunddiensten gesperrt werden. Dies macht Backups langsam (hoher Overhead von vielen kleinen Dateien) und unnötig groß (häufig wechselnde temporäre Dateien sabotieren den "inkrementellen" Teil). Um dies zu verhindern, muss manuell eine Ausschlussliste geführt werden.%APPDATA%
ist etwas besser, da es keine temporären Dateien wie Caches enthalten soll - leider sowieso und viele Programmeinstellungen wirklich keine Sicherung rechtfertigen.Letztendlich sind Save Games eine Art von Daten, mit denen ich als Benutzer interagieren möchte , und das
%UserProfile%\AppData
bietet sich nicht an.quelle
Warum nicht / "Spieleinstallationsordner" / savegame / wie ältere Spiele benutzen? Ich habe nie verstanden, warum Savegames in versteckten Ordnern oder sogar in meinen Dokumenten auf dem Systemlaufwerk abgelegt werden?
Früher wussten Sie immer, wo sich Spielstände befanden.
quelle
"game installation folder"
ist%ProgramFiles%\<gamename>
.%ProgramFiles%
soll nur während der Installation / Deinstallation von Programmen geändert werden. Da Windows XP / Vista-Anwendungen, die in dieses Verzeichnis schreiben, als Administrator ausgeführt werden müssen, muss beispielsweise ein Virus word.exe durch eine infizierte Version von word.exe ersetzen. Ein weiterer Grund ist, dass Microsoft wollte, dass mehrere Benutzer die gleichen Programme verwenden können, ohne ihre persönlichen Dateien teilen zu müssen, in diesem Fall Spielstände. Es gibt andere / bessere Möglichkeiten, um diese Probleme anzugehen, aber sie wurden zu diesem Zeitpunkt nicht ausgewählt.