Je développe un jeu de plateforme 2D avec des amis uni. Nous l'avons basé sur le kit de démarrage XNA Platformer qui utilise des fichiers .txt pour stocker la carte des tuiles. Bien que cela soit simple, cela ne nous donne pas assez de contrôle et de flexibilité avec la conception de niveau. Quelques exemples: pour plusieurs couches de contenu, plusieurs fichiers sont requis, chaque objet est fixé sur la grille, ne permet pas la rotation des objets, un nombre limité de caractères, etc. Je fais donc des recherches sur la façon de stocker les données de niveau et fichier de carte.
Cela ne concerne que le stockage du système de fichiers des cartes de tuiles, pas la structure de données à utiliser par le jeu pendant son exécution. La carte de tuiles est chargée dans un tableau 2D, donc cette question concerne la source à partir de laquelle remplir le tableau.
Raisonnement pour la base de données: De mon point de vue, je constate moins de redondance des données à l'aide d'une base de données pour stocker les données de tuiles. Les carreaux dans la même position x, y avec les mêmes caractéristiques peuvent être réutilisés d'un niveau à l'autre. Il semble qu'il serait assez simple d'écrire une méthode pour récupérer toutes les tuiles utilisées à un niveau particulier de la base de données.
Raisonnement pour JSON / XML: fichiers visuellement modifiables, les modifications peuvent être suivies via SVN beaucoup plus facilement. Mais le contenu est répété.
L'un ou l'autre présente-t-il des inconvénients (temps de chargement, temps d'accès, mémoire, etc.) par rapport à l'autre? Et qu'est-ce qui est couramment utilisé dans l'industrie?
Actuellement, le fichier ressemble à ceci:
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1 - Point de départ du joueur, Sortie de niveau X,. - Espace vide, # - Plateforme, G - Gemme