Preciso salvar alguns dados personalizados do jogo. Mapa, jogador, etc.
Todos eles terão "subobjetos". Por exemplo, um mapa e um mapa terão uma "matriz" de blocos. isto é, dados hierárquicos. Esperemos que nada de binário.
Qual seria um bom formato para isso?
Até agora eu considerei:
Serailization: Isso é RÁPIDO e fácil, mas tende a quebrar quando eu altero as classes subjacentes :(
XML: Eu realmente odeio analisar isso. Meu caso de teste tinha mais de 100 linhas de código e parecia ter toneladas de "trabalho ocupado", mesmo para um formato muito simples.
INI: seria realmente desajeitado para dados hierárquicos.
Protobuf: Nunca usei, mas leia que você precisa fazer muitas manobras manuais e quebras se mudar de classe.
Outras opções? É por isso que estou aqui!
Edit: este é o Java btw.
Edição 2:
Eu decidi pela "Serialização binária controlada" (veja abaixo).
Prós:
É rápido
é pequeno (no disco) e pode ser facilmente compactado / descomprimido durante a leitura / gravação.
é super fácil de ler / escrever no jogo e no conjunto de ferramentas.
Eu posso decidir o que incluir / excluir do objeto.
Objetos / dados podem ser aninhados.
Contras:
Não é possível editá-lo manualmente (como XML, YAML etc.)
Não é possível ler / modificar facilmente com scripts
A serialização Java por padrão é bastante lenta / inchada em comparação com outras implantações, mas é estável e funciona