2013-03-04 4 views
1

Je suis environ 20% dans mon premier jeu et je me demandais quelle était la meilleure façon de stocker des données locales. J'ai besoin de stocker les statistiques des objets, tels que les niveaux, les dégâts par niveau, etc, dans une base de données de la mode. Est-il considéré comme une bonne pratique de stocker ces données dans une base de données "locale", puis d'interroger en utilisant SQL? Ou y a-t-il un autre moyen? Je travaille dans .NET 4 et XNA 4Stockage de données pour les jeux

Merci!

+1

[Cette question sur GameDev] (http://gamedev.stackexchange.com/questions/7952/how-to-choose-how-to-store-data) est similaire, peut-être vous pouvez la trouver utile (la seule la différence est qu'elle n'est pas focalisée sur un framework concret) –

+1

A moins d'avoir des besoins de performance très spécifiques, et d'avoir besoin d'interroger les données par des attributs arbitraires, utiliser une DB et SQL ou EF intégrée est une approche assez générale. (En supposant que XNA vous permette d'obtenir une ancienne poignée de fichier.) – millimoose

Répondre

2

Je ne pense pas qu'il y ait une règle générale et c'est l'une des nombreuses choses qui dépendent simplement de ce que vous faites et de la façon dont vous allez utiliser vos données.

Il existe plusieurs façons de stocker des données. Je vois normalement les formats de fichiers binaires étant les plus courants dans les jeux. Si vous voulez utiliser SQL sans utiliser un serveur de base de données réel, cependant, je vous recommande de regarder embarqué bases de données, telles que SQLite, SQL Server Compact Edition ou Firebird (il existe d'autres). Ces données de stockage dans un seul fichier, mais vous pouvez les interroger en utilisant SQL.

+0

Mais l'utilisateur sera-t-il autorisé à modifier la base de données intégrée? C'est ma plus grande peur. Cela ne me dérange pas si l'utilisateur triche en hacker la mémoire (ce sera un jeu solo après tout), mais je ne veux pas que ce soit aussi facile que d'ouvrir un fichier de base de données. – TheGateKeeper

+1

Vous pouvez le protéger par mot de passe. Je l'ai fait avec SQL Compact et Firebird dans le passé. – Gigi

+0

J'ai décidé d'utiliser SQLLite, nous verrons comment ça se passe. Merci pour l'aide man! – TheGateKeeper

3

L'approche standard consiste en fait à utiliser le support XNA intégré pour le stockage basé sur les fichiers Title et User. S'il vous plaît jeter un oeil à this overview pour les meilleures pratiques de stockage MSFT XNA.

+0

Bien qu'un bon indice, le stockage de l'utilisateur résout seulement le problème de l'endroit où stocker les données, pas comment le gérer. – millimoose

1

Sérialisation. Si vous voulez des fichiers lisibles, choisissez le sérialiseur XML/JSON. Si vous avez besoin de performance: protobuf ou sérialisation binaire manuelle.

+0

La sérialisation est sans doute meilleure pour les sauvegardes qui sont écrites par lots, ce qui n'est peut-être pas ce que l'OP essaie de faire. (Voyant qu'il mentionne quelques statistiques qui pourraient avoir besoin d'être constamment mises à jour tout au long du jeu.) – millimoose

Questions connexes