Devo salvare alcuni dati di gioco personalizzati. Mappa, giocatore, ecc.
Tutti avranno "oggetti secondari". Ad esempio, una mappa e una mappa avranno un "array" di tessere. cioè, dati gerarchici. Eventualmente niente binario.
Quale sarebbe un buon formato per questi?
Finora ho considerato:
Serailization: questo è VELOCE e facile, ma tende a rompersi quando cambio le classi sottostanti :(
XML: odio davvero analizzare questo. Il mio caso di test era composto da oltre 100 righe di codice e sembrava tonnellate di "lavoro intenso" anche per un formato molto semplice.
INI: sarebbe davvero maldestra per i dati gerarchici.
Protobuf: non l' hai mai usato, ma leggi che devi fare un sacco di schivate e rotture manuali se cambi classe.
Altre opzioni? È per questo che sono qui!
Modifica: questo è Java btw.
Modifica 2:
Ho optato per la "serializzazione binaria controllata" (vedi sotto).
Professionisti:
è veloce
è piccolo (su disco) e può essere facilmente compresso / decompresso durante la lettura / scrittura.
è super facile da leggere / scrivere dal gioco e dal set di strumenti.
Posso decidere cosa includere / escludere l'oggetto.
Oggetti / dati possono essere nidificati.
Contro:
Impossibile modificarlo manualmente (come XML, YAML, ecc.)
Non è possibile leggerlo / modificarlo facilmente con gli script
La serializzazione Java per impostazione predefinita è piuttosto lenta / gonfia rispetto ad altre impianti, ma è stabile e funziona