Ich benötige eine definitive Liste von Verzeichnissen, eines oder mehrere pro Plattform, in denen sich gespeicherte Spieledateien und andere vom Spiel generierte Daten befinden . Entweder basierend auf der Betriebssystem-Entwicklerspezifikation oder weil es üblich ist, wenn es keine Empfehlung gibt.
Bitte geben Sie eine Antwort pro Plattform mit unterschiedlichen Verzeichnissen an. Ein Beispiel für das Abrufen des Verzeichnispfads in C ++ oder C ist ebenfalls am besten , da dies die Sprache ist, die Ihnen schwerer fällt.
Standorte:
- Spieldaten des Spielers (gespeicherte Spiele, Konfiguration).
- Geteilte Spieldaten (wie Highscore oder Konfiguration für alle Computerbenutzer).
- Temporäre Spieldaten (auch Cache-Verzeichnis genannt).
Antworten:
Windows (XP und folgende)
Beyogen auf:
Diese Speicherorte setzen voraus, dass Windows auf dem Datenträger C: installiert ist. Fügen Sie in diese Verzeichnisse Ihr eigenes Verzeichnis mit dem Namen des Spiels oder der Spielefirma und anschließend den Namen des Spiels ein.
Wenn Sie eine Windows 8-Anwendung im Metro-Stil verwenden , müssen Sie eine bestimmte API verwenden, anstatt zu versuchen, auf Verzeichnisse zuzugreifen. Lesen:
Spieldaten des Spielers
Windows Vista und folgende:
Windows XP:
Sie können automatisch die richtige benutzernamenabhängige Adresse ermitteln, indem Sie die
APPDATA
Umgebungsvariable abrufen .Standard C (alle Compiler):
Visual Studio 20xx ( vermeiden Sie die Warnung getenv (), die besagt, dass es nicht sicher ist ) - Nicht-Metro-Stil:
Boost-Benutzer : Im Moment schreibe ich dieses boost.filesystem (das auch ein Entwurf der Dateisystembibliothek ist, die für den nächsten C ++ - Standard vorgeschlagen wurde) und implementiert noch keine Funktion, um das richtige Verzeichnis bereitzustellen. Allerdings gibt es Diskussionen , bevor darüber . Bitte aktualisieren Sie diesen Abschnitt, wenn sich etwas ändert.
Freigegebene Spieldaten
Windows Vista und folgende:
Windows XP:
Sie können automatisch die richtige Adresse ermitteln, indem Sie die
PROGRAMDATA
Umgebungsvariable abrufen .Standard C (alle Compiler):
Visual Studio 20xx ( vermeiden Sie die Warnung getenv (), die besagt, dass es nicht sicher ist ) - Nicht-Metro-Stil:
Boost-Benutzer : Im Moment schreibe ich dieses boost.filesystem (das auch ein Entwurf der Dateisystembibliothek ist, die für den nächsten C ++ - Standard vorgeschlagen wurde) und implementiert noch keine Funktion, um das richtige Verzeichnis bereitzustellen. Allerdings gibt es Diskussionen , bevor darüber . Bitte aktualisieren Sie diesen Abschnitt, wenn sich etwas ändert.
Temporäre Spieldaten
Windows Vista und folgende:
Windows XP:
Sie können automatisch die richtige Adresse ermitteln, indem Sie die
TEMP
Umgebungsvariable abrufen .C ++ Boost - Benutzer : Es gibt eine einfache plattformübergreifende Boost.Filesystem Funktion für diese
Standard C (alle Compiler):
Visual Studio 20xx ( vermeiden Sie die Warnung getenv (), die besagt, dass es nicht sicher ist ) - Nicht-Metro-Stil:
quelle
Mac OS
Beyogen auf:
Unter Unix-basierten Betriebssystemen befindet sich das
~
Verzeichnis automatisch im Ausgangsverzeichnis des Benutzers, in dem sich benutzerspezifische Daten befinden. Dies bedeutet, dass Sie auf diesen Plattformen unabhängig von der Sprache automatisch auf diesen Ordner zugreifen können, indem Sie~
anstelle einer betriebssystemspezifischen Funktion verwenden. Beachten Sie auch, dass dies/
der Stammpfad des gesamten Systems ist und nicht der Pfad zum Stamm der Hauptfestplatte.Fügen Sie in diese Verzeichnisse Ihr eigenes Verzeichnis mit dem Namen des Spiels oder der Spielefirma und anschließend den Namen des Spiels ein.
Spieldaten des Spielers
Die Apple-Richtlinie lautet: Suchen Sie dort nach Speicher- und Konfigurationsdateien, damit diese, sofern verfügbar, automatisch in der Cloud gespeichert werden.
Es ist jedoch besser (und wird häufiger verwendet), diese Dateien zu finden in:
Beachten Sie, dass in diesem Fall die Dateien nicht automatisch in der Cloud gespeichert werden. Wenn Sie möchten, dass der Player eine Auswahl trifft, verwenden Sie die API der Plattform, um ihn zur Auswahl zu bringen.
Freigegebene Spieldaten
Beachten Sie, dass dies nicht der Fall ist
~
. Es bezieht sich nicht auf das Haus des Benutzers, sondern auf das Stammverzeichnis des Systems.Temporäre Spieldaten:
Wenn die Daten zwischen den Ausführungen nicht aufbewahrt werden müssen:
Wenn die Daten zwischen den Ausführungen aufbewahrt werden müssen;
C ++ Boost - Benutzer : Es gibt eine einfache plattformübergreifende Boost.Filesystem Funktion für diese
quelle
~/Documents
. Das ist für den Benutzer zu organisieren; Sie sollten niemals in Dokumente auf einen festen Pfad schreiben. Ihr Spiel sollte~/Library/Application Support/Your App Name/
für Spielstände und andere Benutzerdaten verwendet werden.Linux Debian (Ubuntu, Fedora usw.)
Beyogen auf:
Unter Unix-basierten Betriebssystemen befindet sich das Verzeichnis ~ automatisch im Ausgangsverzeichnis des Benutzers, in dem sich benutzerspezifische Daten befinden. Dies bedeutet, dass Sie auf diesen Plattformen unabhängig von der Sprache automatisch auf diesen Ordner zugreifen können, indem Sie ~ anstelle einer betriebssystemspezifischen Funktion verwenden. Beachten Sie auch, dass / der Stammpfad des gesamten Systems ist und nicht der Pfad zum Stamm der Hauptfestplatte.
Fügen Sie in diese Verzeichnisse Ihr eigenes Verzeichnis mit dem Namen des Spiels oder der Spielefirma und anschließend den Namen des Spiels ein.
Spieldaten des Spielers
Für das Spiel Aquaria wäre es traditionell:
Beachten Sie, dass Verzeichnisse und Dateien, die mit beginnen
.
, dem Benutzer standardmäßig verborgen bleiben.Die meisten Desktops versuchen nun, sich an die empfohlene XDG-Spezifikation zu halten
oder
stattdessen für Konfiguration und Spielstände.
Wenn
$XDG_CONFIG_HOME
nicht gesetzt, verwenden Sie:oder
Dies geschieht hauptsächlich, um das Home-Verzeichnis des Benutzers freizugeben und den Benutzern zu ermöglichen, mehrere Profile einer Anwendung auszuführen, wenn sie dies für erforderlich halten. Es gibt auch andere dedizierte benutzerspezifische Verzeichnisse in der Spezifikation.
Freigegebene Spieldaten
Freigegebene Konfigurationsdateien sollten sich in befinden
Temporäre Spieldaten
quelle