Мені потрібно зберегти деякі власні дані гри. Карта, плеєр тощо.
Усі вони матимуть «під об’єкти». Наприклад, карта і карта матимуть "масив" плиток. тобто ієрархічні дані. Сподіваємось, нічого бінарного.
Який би це був гарний формат?
Поки я вважав:
Сераїлізація: Це швидке та просте, але має тенденцію до ламання, коли я змінюю основні класи :(
XML: Я дуже ненавиджу аналіз цього. У моєму тестовому випадку було понад 100 рядків коду і, здавалося, сподобалось багато "зайнятої роботи" навіть для дуже простого формату.
INI: було б справді незграбним щодо ієрархічних даних.
Протобуф: Ніколи не користувався ним, але читайте, що ви повинні зробити багато ручного перегляду і перерв, якщо ви зміните клас.
Інші варіанти? Тому я тут!
Редагувати: це Java btw.
Редагувати 2:
Я зупинився на "Керованій бінарній серіалізації" (див. Нижче).
Плюси:
це швидко
він невеликий (на диску) і може легко стискатися / розтискатися під час читання / запису.
це дуже легко читати / писати з гри та набору інструментів.
Я можу вирішити, що включати / виключати об’єкт.
Об'єкти / дані можуть бути вкладені.
Мінуси:
Неможливо редагувати його вручну (наприклад, XML, YAML тощо)
Неможливо легко прочитати / змінити його за допомогою скриптів
Серіалізація Java за замовчуванням є досить повільною / роздутою порівняно з іншими реалізаціями, але вона стабільна і працює