Necesito guardar algunos datos personalizados del juego. Mapa, jugador, etc.
Todos ellos tendrán "subobjetos". Por ejemplo, un mapa y un mapa tendrán una "matriz" de mosaicos. es decir, datos jerárquicos. Ojalá nada binario.
¿Cuál sería un buen formato para estos?
Hasta ahora he considerado:
Serailización: esto es RÁPIDO y fácil, pero tiende a romperse cuando cambio las clases subyacentes :(
XML: Realmente odio analizar esto. Mi caso de prueba tenía más de 100 líneas de código y parecía tener toneladas de "trabajo ocupado" incluso para un formato muy simple.
INI: sería realmente torpe para los datos jerárquicos.
Protobuf: nunca lo usó, pero lea que tiene que hacer un montón de trabajo manual y saltos si cambia de clase.
¿Otras opciones? ¡Es por eso que estoy aquí!
Editar: esto es Java por cierto.
Edición 2:
Me decidí por la "serialización binaria controlada" (ver más abajo).
Pros:
es rápido
es pequeño (en el disco) y se puede comprimir / descomprimir fácilmente durante la lectura / escritura.
it's super easy to read/write from game and toolset.
I can decide what to include/exclude of the object.
Objects/Data can be nested.
Cons:
Can't edit it by hand (like XML, YAML, etc)
Can't easily read/modify it with scripts
Java Serialization by default is pretty slow/bloated compared to other implentations, but it's stable and works