J'ai besoin d'une liste définie de répertoires, un ou plusieurs par plate-forme, indiquant où placer les fichiers de sauvegarde du jeu et les autres données générées . Soit sur la base de la spécification de développeur du système d'exploitation, soit parce qu'il s'agit d'une utilisation courante s'il n'y a pas de recommandation.
Veuillez fournir une réponse par plate - forme , avec des répertoires différents. En outre, il est préférable d’obtenir l’emplacement du répertoire en C ++ ou C , car c’est le langage dans lequel vous aurez plus de difficultés.
Emplacements:
- Données de jeu du joueur (parties sauvegardées, configuration).
- Données de jeu partagées (comme les meilleurs scores ou la configuration pour tous les utilisateurs de l'ordinateur).
- Données de jeu temporaires (répertoire de cache).
Réponses:
Windows (Xp and following)
Based on:
These locations assume that Windows is installed on the C: disk. Append your own directory with game name or game company then game name to these directories.
If you use Window 8 Metro-style application, you'll have to use a specific API instead of trying to reach directories. Read:
Player's game data
Windows Vista et suivants:
Windows XP:
Vous pouvez automatiquement obtenir la bonne adresse dépendante du nom d'utilisateur en récupérant la
APPDATA
variable d'environnement .Standard C (tous les compilateurs):
Visual Studio 20xx ( évitez que getenv () ne soit averti que ce n'est pas sûr ) - Style non métropolitain:
Utilisateurs Boost : au moment où j'écris ce fichier boost.filesystem (c'est aussi un brouillon de la bibliothèque de système de fichiers proposée au prochain standard C ++) n'implémente pas encore une fonction pour fournir le bon répertoire. Cependant, il y a eu des discussions à ce sujet auparavant . N'hésitez pas à mettre à jour cette section si les choses ont changé.
Données de jeu partagées
Windows Vista et suivants:
Windows XP:
You can automatically get the right address by getting the
PROGRAMDATA
environment variable.Standard C (all compilers):
Visual Studio 20xx (avoid getenv() warning saying it's not safe) - non Metro Style:
Boost users: at the moment I write this boost.filesystem (that is also a draft of the filesystem library proposed to the next C++ standard) doesn't implement yet a function to provide the right directory. However, there have been discussions about this before. Please feel free to update this section if things changed.
Temporary game data
Windows Vista and following:
Windows Xp:
You can automatically get the right address by getting the
TEMP
environment variable.C++ Boost users: there is a simple cross-platform boost.filesystem function for this
Standard C (all compilers):
Visual Studio 20xx (avoid getenv() warning saying it's not safe) - non Metro Style:
la source
MacOS
Based on:
In unix-based OS, the
~
directory is automatically located at the user's home directory where user-specific data are located. This means that whatever the language, on these platforms you can access automatically this folder by using~
instead of using a OS-specific function. Also note that/
is the root path of the whole system, not a path to the root of the main disk.Append your own directory with game name or game company then game name to these directories.
Player's game data
Apple's guideline is to locate save and config files there to make them saved automatically in the cloud if available:
However, it is better (and more often used) practice to locate these files in:
Just know that in this case the files will not be saved automatically to the cloud. If you want the player to choose, use the platform's API to make him choose.
Shared game data
Notice that there is no
~
, it's not relative to user's home but to system's root.Temporary game data:
If the data don't need to be kept between executions:
If the data need to be kept between executions;
C++ Boost users: there is a simple cross-platform boost.filesystem function for this
la source
~/Documents
. That is for the user to choose to organize; you should never write to a fixed path inside Documents. Your game should use~/Library/Application Support/Your App Name/
for saves and other user data.Linux Debian (Ubuntu, Fedora, etc.)
Based on:
In unix-based OS, the ~ directory is automatically located at the user's home directory where user-specific data are located. This means that whatever the language, on these platforms you can access automatically this folder by using ~ instead of using a OS-specific function. Also note that / is the root path of the whole system, not a path to the root of the main disk.
Ajoutez votre propre répertoire avec le nom du jeu ou la société du jeu, puis le nom du jeu à ces répertoires.
Données de jeu du joueur
Traditionnellement, pour le jeu Aquaria, ce serait:
Notez que les répertoires et les fichiers commençant par
.
will be hidden by default to the user.La plupart des ordinateurs de bureau essaient maintenant de se conformer à la spécification XDG , qui recommande
ou
pour la configuration et les sauvegardes à la place.
Si
$XDG_CONFIG_HOME
non défini utiliser:ou
Cela consiste principalement à désencombrer le répertoire de base de l'utilisateur et à permettre aux utilisateurs d'exécuter plusieurs profils d'une application s'ils le jugent nécessaire. Il existe également d'autres répertoires dédiés spécifiques à l'utilisateur dans la spécification.
Données de jeu partagées
Shared config files should be located in
Temporary game data
la source