J'ai un jeu 2D écrit en C ++ en utilisant SFML. Je veux rendre le jeu extensible de telle manière que du contenu comme des éléments ou des entités puisse facilement être ajouté en ajoutant une ligne / entrée / ligne à un fichier ou une base de données.
Je recherche quelque chose qui n'a pas besoin d'être compilé dans le programme, mais qui peut être lu et écrit au moment de l'exécution. Quand serait-il approprié d'utiliser une base de données?
Réponses:
N'utilisez une base de données que si vous en avez besoin. C'est:
Si les données de votre jeu remplissent l'une de ces conditions, vous pourriez bénéficier de l'utilisation d'une base de données. Notez que ceux-ci ne sont pas très courants et que vous n'en satisfaisez probablement aucun. Si vous le faites, j'irais avec SQLite ou quelque chose avec une idée similaire de ne pas avoir besoin d'un serveur en cours d'exécution et d'être juste une bibliothèque.
Sinon, utilisez des fichiers et chargez des données en mémoire au démarrage. Si vous voulez que le jeu soit modifiable, chargez ces données à partir du répertoire de votre jeu et des répertoires des mods et définissez comment les informations conflictuelles peuvent être fusionnées.
Notez également que, si vous faites utiliser une base de données, il pourrait bénéficier à la fois vous et les développeurs de mods à utiliser encore des fichiers pour lire les données initiales et construire la base de données que lorsque le chargement du jeu. À moins que la taille potentielle de cette base de données soit énorme (c'est-à-dire plus de quelques dizaines de Mio), vous souhaiterez peut-être utiliser une base de données en mémoire, ce qui est possible dans SQLite en spécifiant
:memory:
comme chemin de base de données .la source
SQLite
, même si vos besoins ne sont PAS "complexes" ou "énormes". Il y a en fait beaucoup de raisons pour lesquelles avec quelque chose de petit et intégré comme ça, vous pouvez grandement bénéficier d'avoir une base de données à portée de main.J'aime beaucoup MongoDB pour le développement de jeux, il a de très bonnes performances et il est vraiment flexible, facile à utiliser et basé sur json.
Vous pouvez simplement ajouter n'importe quel champ dont vous avez besoin dans n'importe quelle collection car il s'agit de NoSQL Arch, il s'intègre donc très bien dans n'importe quel environnement "dynamique" comme les jeux.
Donnez-lui un coup d'oeil .
Si vous développez une sorte de jeu de stratégie basé sur MMO Turn, vous devriez probablement lire sur CouchDB , c'est une base de données NoSQL qui a un très bon système de version.
la source
CastleDB est une bonne option car il s'agit simplement d'un éditeur qui convertit ensuite une base de données en fichier JSON. J'ai vu beaucoup de réponses disant qu'un fichier texte en clair est le meilleur, donc CastleDB est probablement le meilleur des deux mondes.
la source