Je suis curieux de savoir quelles solutions les développeurs de jeux ont trouvées pour sérialiser les différents types de données avec lesquels ils traitent pour leurs jeux. Utilisez-vous une hiérarchie GameObject monolithique qui héberge une interface de sérialisation pour les types dérivés, utilisez-vous une sorte de solution RTTI personnalisée, effectuez-vous une sérialisation de flux explicite pour certaines classes, ou utilisez certaines des solutions open source (boost :: serialization, s11n, etc).
c++
serialization
Mark
la source
la source
Réponses:
Les tampons de protocole de Google peuvent être une assez bonne approche pour sérialiser des objets c ++. Vous devrez peut-être créer des objets intermédiaires dans le cadre du processus de sérialisation, mais cela fonctionne également sur de nombreuses plates-formes et langages.
la source
Dans notre jeu, nous utilisons simplement boost.serilization , c'est facile à utiliser et très rapide, mais c'est à mon avis juste utile pour les sauvegardes. Si vous essayez de créer des personnages, je vous recommande quelque chose basé sur XML'ish ou JSON, car ils sont faciles à lire et modifiables même si vous n'avez pas l'éditeur.
la source
J'aime plutôt JSON pour la sérialisation. Il est assez simple à analyser et il existe des bibliothèques gratuites telles que http://jsoncpp.sourceforge.net/ Je n'ai jamais été fan de boost ou RTTI en C ++. Tinyxml fonctionne également bien pour la sérialisation et la désérialisation xml.http://www.grinninglizard.com/tinyxml/ En fin de compte, je ne veux pas avoir à passer plus de temps que je n'en ai pour la sérialisation.
la source
la source
Le pack de messages est aussi une excellente alternative! (http://msgpack.org)
la source
XDS a été conçu spécialement à cet effet, il vous offre les avantages de XML pendant le développement et les avantages d'une représentation binaire compacte au moment de la distribution.
la source
Si vous êtes sur une plateforme Linux, vous pouvez directement utiliser la
json.h
bibliothèque pour la sérialisation. Voici un exemple de code que j'ai rencontré. Source: Json Serializerla source
Les tampons jsonCpp et Protocol sont de bonnes options. À ma connaissance, les deux vont seulement vous permettre de créer des structures d'arborescence en série (veuillez me corriger si je me trompe). boost :: serialization peut gérer des graphes arbitraires, mais n'a pas un bon format de texte comme json (je pense qu'il y a un format xml)
Personnellement, je pense que l'approche de sérialisation json que Dojo a adoptée est la meilleure
http://docs.dojocampus.org/dojox/json/ref
J'en ai fait ma propre version en c ++ en utilisant jsoncpp, qui désérialisera également les objets typés (j'ai une sorte de grosse usine pour tous mes types). Cela me permet de créer une scène à partir d'une collection de fichiers json qui peuvent être référencés de toute façon, je le souhaite.
la source