Мне нужно сохранить некоторые пользовательские данные игры. Карта, игрок и т. Д.
Все они будут иметь «подобъекты». Например, карта и карта будут иметь «массив» плиток. т.е. иерархические данные. Надеюсь, ничего двоичного.
Какой будет хороший формат для них?
До сих пор я считал:
Serailization: это БЫСТРО и легко, но имеет тенденцию ломаться, когда я изменяю базовые классы :(
XML: я действительно ненавижу разбор этого. Мой тестовый пример содержал более 100 строк кода и казался тоннами «занятой работы» даже для очень простого формата.
INI: было бы очень неуклюже для иерархических данных.
Protobuf: Никогда не использовал его, но читайте, вам придется много разводить вручную и ломаться, если вы меняете класс.
Другие опции? Вот почему я здесь!
Изменить: это Java, кстати.
Изменить 2:
Я остановился на «Контролируемой двоичной сериализации» (см. Ниже).
Плюсы:
это быстро
он небольшой (на диске) и может быть легко сжат / распакован во время чтения / записи.
это супер легко читать / писать из игры и набора инструментов.
Я могу решить, что включить / исключить объект.
Объекты / Данные могут быть вложенными.
Минусы:
Невозможно редактировать вручную (например, XML, YAML и т. Д.)
Не могу легко прочитать / изменить его с помощью сценариев
Сериализация Java по умолчанию довольно медленная / раздутая по сравнению с другими внедрениями, но она стабильна и работает