Divers jeux stockent les choses de différentes manières. Souvent, les sociétés de jeux créent un moyen de le faire, et la plupart de leurs jeux utilisent la même manière. Bien sûr, différents studios utilisent souvent des méthodes différentes. SQL est certainement utilisé pour les jeux, par exemple CCP (EVE) a (ou du moins avait) un réseau de serveurs SQL, je ne sais pas comment ils le font maintenant. Pour d'autres, il suffit d'utiliser de nombreux fichiers.
Peut-être commencer par créer un "mécanisme de courtage de données" agnostique, pour gérer diverses transactions de données de jeu? Comme vous ne faites que tester de toute façon, créez un mécanisme qui vous permet de ne pas trop vous soucier du stockage, du point de vue du jeu lui-même. C'est-à-dire, concentrez-vous sur la façon dont, à partir de l'application hôte, vous allez gérer cela.
Personnellement, je pense que ce serait un grand atout si vous pouviez changer de magasin, sans avoir à réécrire le jeu et le courtier lui-même. Passez simplement à un autre module avec la même interface pour que le courtier puisse parler.
Le stockage des données en soi ne sera probablement pas un problème en soi. Expédier efficacement des données, vers / depuis ce magasin, entre l'hôte et tous les clients, pourrait être plus délicat. Dois-je expédier l'ensemble des données du lecteur, ou si je le décompose en parties, quelle granularité dois-je choisir de partitionner, etc. Laquelle est la plus gourmande en ressources dans quelle situation, etc.
Un format dans lequel envoyer les données pourrait être XML. De cette façon, vous pouvez plus facilement être dynamique dans la façon dont vous pouvez le fragmenter. Un caractère par rapport à plusieurs caractères, ou un élément par rapport à une collection d'éléments, etc. Vous pouvez alors soit «stocker» le XML en XML (en SQL), et / ou demander à SQL de le distribuer de manière plus transactionnelle à partir du XML, vers comment vous voulez que les données soient réellement stockées.
Une autre façon est binaire, qui est plus efficace en termes d'expédition, mais peut entraîner des coûts plus élevés dans d'autres situations.
Avec 1000 clients, vous pouvez commencer et stocker facilement 10 Mo par client et n'utiliser que 10 Go de RAM efficace + ajouter de la RAM administrative système pour gérer ces données, disons un autre Go ou deux. Vous pouvez garder cela en RAM sur l'hôte déjà dans la structure de données prêt à l'emploi. Et chargez / enregistrez dynamiquement, selon qui est en ligne, à différentes fréquences selon l'activité, etc.
Vous pouvez même stocker les informations de chaque client dans un fichier séparé, etc.