いくつかのカスタムゲームデータを保存する必要があります。地図、プレーヤーなど
それらすべてに「サブオブジェクト」があります。たとえば、マップとマップにはタイルの「配列」があります。すなわち、階層データ。うまくいけばバイナリはありません。
これらに適したフォーマットは何でしょうか?
これまで私は考えてきました:
シリアル化:これは高速で簡単ですが、基になるクラスを変更すると壊れる傾向があります:(
XML:これを解析するのは本当に嫌いです。私のテストケースは100行以上のコードであり、非常に単純な形式でさえ、「忙しい仕事」のように思えました。
INI:階層データにとっては本当に不器用です。
Protobuf:使用したことはありませんが、クラスを変更した場合は、手作業で何度もいじり、中断する必要があることを読んでください。
別のオプション?だから私はここにいる!
編集:これはJava btwです。
編集2:
「Controlled Binary Serialization」に決めました(以下を参照)。
長所:
これは速い
(ディスク上)小さく、読み取り/書き込み中に簡単に圧縮/解凍できます。
ゲームやツールセットからの読み取り/書き込みは非常に簡単です。
オブジェクトに含める/除外するものを決定できます。
オブジェクト/データはネストできます。
短所:
手動で編集することはできません(XML、YAMLなど)
スクリプトで簡単に読み取り/変更できない
デフォルトでは、Javaシリアル化は他の実装に比べてかなり遅い/肥大化していますが、安定して動作します