Muszę zapisać niektóre niestandardowe dane gry. Mapa, odtwarzacz itp.
Wszystkie będą miały „obiekty podrzędne”. Na przykład mapa i mapa będą miały „tablicę” kafelków. tj. dane hierarchiczne. Mam nadzieję, że nic binarnego.
Jaki byłby dla nich dobry format?
Do tej pory rozważałem:
Serailizacja: To jest SZYBKIE i łatwe, ale ma tendencję do pękania , gdy zmieniam podstawowe klasy :(
XML: Naprawdę nienawidzę analizować tego. Mój przypadek testowy zawierał ponad 100 wierszy kodu i wydawał się lubić mnóstwo „pracowitej pracy” dla nawet bardzo prostego formatu.
INI: byłoby naprawdę niezręczne w przypadku danych hierarchicznych.
Protobuf: Nigdy go nie używałam , ale przeczytaj, że musisz zrobić wiele ręcznego mulczowania i psuje się, jeśli zmienisz klasę.
Inne opcje? Dlatego tu jestem!
Edycja: to jest Java Btw.
Edycja 2:
Zdecydowałem się na „kontrolowaną serializację binarną” (patrz poniżej).
Plusy:
to jest szybkie
jest mały (na dysku) i może być łatwo skompresowany / zdekompresowany podczas odczytu / zapisu.
jest bardzo łatwy do odczytu / zapisu z gry i zestawu narzędzi.
Potrafię zdecydować, co włączyć / wyłączyć obiekt.
Obiekty / dane można zagnieżdżać.
Cons:
Nie można go edytować ręcznie (np. XML, YAML itp.)
Nie można go łatwo odczytać / zmodyfikować za pomocą skryptów
Serializacja Java domyślnie jest dość powolna / rozdęta w porównaniu z innymi implantacjami, ale jest stabilna i działa