Gibt es einen praktischen Grund für das Speichern von Spieldaten in% UserProfile% \ Documents anstelle von% AppData%?

33

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)

Peter
quelle
4
@Loren Nein, ein gespeichertes Spiel ist eine anwendungsspezifische Datei / Daten = APPDATA. Benutzerdokumente sind vom Benutzer bewusst gespeicherte Dokumente. So werden diese Orte definiert.
Peter
1
Man könnte so oder so argumentieren. Ich würde erwarten, speichert in Dokumenten, Konfiguration in AppData zu finden.
Loren Pechtel
2
Wie werden Kampagnen in einem Spiel nicht "bewußt gespeichert"? Und wie sind Photoshop-Dokumente (PSD) nicht "anwendungsspezifisch"?
Damian Yerrick
4
Das hat mich lange geärgert. Der Ordner "Dokumente" ist ein schlechter Ort, um Dateien automatisch abzulegen, unabhängig davon, ob es sich um einen geeigneten Speicherort handelt oder nicht. Der Ordner "Meine Dokumente" sollte für MEINE Dokumente reserviert sein , die ich ausdrücklich dort abgelegt habe, damit ich meine persönlichen Daten nachverfolgen kann. Keine Daten, die sich auf die Hälfte der Software auf meinem System beziehen. Was für eine gottlose Sauerei! Ich verwende nicht einmal mehr den Ordner "Dokumente". Ich verwende mein eigenes, auf einem separaten Laufwerk, dann habe ich dieses Verzeichnis in meiner Dokumentbibliothek und habe das Standardverzeichnis entfernt.
Fuzzy Logic,

Antworten:

35

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.

Josh
quelle
2
Ein weiterer Vorteil ist, dass Benutzer Welten, Texturpakete usw. installieren können, ohne% APPDATA% eingeben zu müssen.
Bardi Harborow
14
Ich erinnere mich, dass SPORE seine Daten in meinem Dokumentenordner statt auf der %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 Rohstoffe save.datzum Einsatz kommen, sich dazu entschließen, ihre Inhalte dort abzulegen.
Gustavo Maciel
Irgendwo gibt es eine gute Beschreibung darüber, wie Spore es geschafft hat. Ich wünschte, ich könnte es finden.
TankorSmash
2
Jemand hat hier auf dieser Seite danach gefragt . Eine der Antworten verweist auf eine Beschreibung, an die Sie vielleicht denken (die sich hier befindet ).
Josh
6
Theoretisch ist die beste Vorgehensweise für Vista oder neuere Versionen, 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.
Crist
18

Wenn ich auf meine Festplatte schaue, habe ich

  • 1 Spiel, in dem Spielstände gespeichert werden %APPDATA%
  • 1 Spiel, in dem Spielstände gespeichert werden %LOCALAPPDATA%
  • 2 Spiele, die "andere Sachen" speichern %APPDATA%
  • 3 Spiele, die "andere Sachen" speichern %LOCALAPPDATA%
  • 2 Spiele, in denen Spielstände gespeichert werden %UserProfile%\Saved Games
  • 21 Spiele, die Spielstände und jede Menge andere Dinge speichern, außer %UserProfile%\Documents...
  • 15 Spiele, die Spielstände und jede Menge andere Inhalte speichern %UserProfile%\Documents\My Games

Das ist ein Verhältnis von 1: 9 für Spielstände in gespeichert wurde %APPDATA%, %LOCALAPPDATA%, im %UserProfile%\Saved GamesVergleich 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 Dateien Documentskö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 .

Peter
quelle
1
Um nur einen weiteren Datenpunkt hinzuzufügen (und weil ich neugierig war), sind die Zähler für meinen PC 19, 10, 10, 17, 6, 45 und 31. Es gibt auch 50 Spiele mit Speicherspielen und / oder anderen Daten in steam\userdataund 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.
Ross Ridge
@ RossRidge Danke, das ist nützlich. Sehen Sie in Ihrer Stichprobe eine Tendenz zu Indie-Spielen im Vergleich zu großen Studio-Spielen?
Peter
Es scheint wahrscheinlicher zu sein, dass Indie-Spiele in eine der ersten vier Kategorien fallen, schon allein deshalb, weil dort die Laufzeitumgebung (z. B. Flash) angesiedelt ist.
Ross Ridge
4

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.

Patrick
quelle
1
Steam hat seit 2009 Cloud-Speicher. Entwickler müssen sich jedoch für die Verwendung entscheiden. Dies funktioniert nur, wenn der Benutzer dies aktiviert hat. Die meisten neueren Spiele unterstützen es jetzt, viele ältere jedoch immer noch nicht.
Crist
Ich werde jede Ausrede benutzen, um den Leuten mitzuteilen, dass sie Backups machen müssen, und ich mag auch die Konsistenz, aber das Anwendungsdatenverzeichnis ist kein 'seltsamer Ort' zum Speichern von Anwendungsdaten, sondern der Dokumentenordner. Das Speichern von Dateien, zu denen sie nicht gehören, erschwert mir die Verwaltung meiner Backups erheblich.
Marcks Thomas
0

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.

David
quelle
3
Ich bin mir ziemlich sicher, dass Sie APPDATA (C: \ Users \ Username \ AppData) erhalten, das vom Benutzer geschrieben werden kann, und PROGRAMDATA (C: \ ProgramData), das häufig nicht vom Benutzer geschrieben werden kann. windows.microsoft.com/de-de/windows-8/what-appdata-folder
Patrick M
1
Der springende Punkt bei% APPDATA% ist, dass es benutzerbeschreibbar ist. Es ist speziell da, weil C: \ Programme nicht vom Benutzer beschreibbar sind.
Bardi Harborow
@PatrickM Du hast Recht, ich habe über ProgramData gesprochen. Es tut uns leid. Wie kann die Antwort am besten gelöscht werden?
David
0

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%\AppDatabietet sich nicht an.

kdb
quelle
-3

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.

Sektor
quelle
3
Dieser Ordner ist schreibgeschützt. Sie müssten Ihr Spiel als Administrator starten. Dies ist ärgerlich und steht nicht allen Benutzern zur Verfügung (z. B. einem Elternteil, der seinen Computer vor den Kindern schützen möchte, die etwas installieren).
Vaillancourt
1
"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.
Peter