Tengo curiosidad por saber qué soluciones han desarrollado los desarrolladores de juegos para serializar los diferentes tipos de datos que manejan para sus juegos. ¿Ustedes usan alguna jerarquía monolítica de GameObject que alberga una interfaz de serialización para tipos derivados, usan una especie de solución personalizada basada en RTTI, realizan serialización de flujo explícito para ciertas clases o usan algunas de las soluciones de código abierto (boost :: serialization, s11n, etc)
c++
serialization
Mark
fuente
fuente
Respuestas:
Los buffers de protocolo de Google pueden ser un enfoque bastante bueno para serializar objetos c ++. Puede que tenga que hacer algunos objetos intermedios como parte del proceso de serialización, pero también funciona en muchas plataformas e idiomas.
fuente
En nuestro juego simplemente usamos boost.serilization , es fácil de usar y muy rápido, pero en mi opinión es útil para los juegos guardados. Si intentas crear personajes, te recomiendo algo basado en XML o JSON, porque son fáciles de leer y editar incluso si no tienes el editor.
fuente
Prefiero JSON para la serialización. Es bastante simple de analizar y hay bibliotecas gratuitas disponibles, como http://jsoncpp.sourceforge.net/ Nunca he sido fanático de boost o RTTI en C ++. Tinyxml también funciona bien para la serialización y deserialización xml. http://www.grinninglizard.com/tinyxml/ En última instancia, no quiero tener que pasar más tiempo del necesario para la serialización.
fuente
fuente
¡El paquete de mensajes también es una gran alternativa! (http://msgpack.org)
fuente
XDS fue diseñado solo para este propósito, le brinda los beneficios de XML durante el desarrollo y los beneficios de una representación binaria compacta en el momento de la distribución.
fuente
Si está en una plataforma Linux, puede usar directamente la
json.h
biblioteca para la serialización. Aquí hay un código de muestra que he encontrado. Fuente: Serializador Jsonfuente
Tanto los buffers jsonCpp como los Protocolos son buenas opciones. Que yo sepa, ambos solo le permitirán serializar las estructuras de árbol fuera de la caja (corríjame si me equivoco). boost :: serialization puede manejar gráficos arbitrarios, pero no tiene un buen formato de texto como json (creo que hay un formato xml)
Personalmente, creo que el enfoque para la serialización json que Dojo ha tomado es el mejor
http://docs.dojocampus.org/dojox/json/ref
Hice mi propia versión en c ++ usando jsoncpp, que también deserializará los objetos mecanografiados (tengo una especie de gran fábrica para todos mis tipos). Me permite hacer una escena de una colección de archivos json a los que se puede hacer referencia de todos modos, por favor.
fuente