[GameDev]セーブデータの実装 その1(とりあえず内部保持)

画面に出ない部分だから乗っける画像がない…。

要件

・int/bool/string型のデータ読み書き
 …いちおう入りうる値の制限くらいはかけておこうか。
 途中で気づいたけど、値の制限(最大/最小値)もつけておいたほうがよさげか。
・セーブデータに含まれる値と、リセットで揮発する値
 …敵の撃破情報やら直前マップやらステージギミックの状態とか。
  別にセーブに含まれなくていい値は、保存はされないけど各種フラグと同じように取り回したい。
・セーブデータから計算される値の取得
 …カギレベルやらレベルスターの使用数とか。
  別データで持たせるよりも取得時に計算するほうが不整合が発生しないのでベター。
  v2では後付けで非常にアレな実装になっているので、追加修正しやすくする。
・値の計算
 …これもv2では必要になってから実装したから、最初から想定に入れておく。
  イベントif命令も計算で真偽を出せるように。

方針

・セーブデータの名前
 カテゴリーごとにスラッシュで区切る感じで。
 例:ポラリスが存在している… (旧 elem_001) (新 elements/001/party)
 離脱等を考慮して、パーティインと取得済みは切り分ける。(elements/001/partyとelements/001/get)
 とりあえずwikiに枠だけ作る。
 

・揮発系
 上記参照。カテゴリーはtemp/*にする。
・セーブデータから計算される値
 おなじく上記参照。カテゴリーはext/*に。
 追加時はPG修正要。これはまあ仕方ないか。
・セーブデータのデフォルト値
 いちいちコンパイルしなくていいように外部に置く。
 名前と型とデフォルト値の羅列で。

実装

タイトルどおり、とりあえずセーブ以外の部分はOK。
このまま続きをやるかどうかは…どうしたもんか。