エロゲのシステムまわりを考える(A・H・OP ver.7)

このエントリーをはてなブックマークに追加
793名無しさん@初回限定
>>790
それでいい>全てのセリフでセーブ

シナリオデータを、全行についての保存データと操作コマンドの連続として準備してある。
ロード時には保存データを復帰させて、進行時は操作コマンドを順に実行していく
行単位の差分ってさほどないから、シナリオデータは案外小さく圧縮かかるんだな。これが。
これでシーンIDと行IDだけで任意の位置から再開できるので、
ゲーム変数保存を足せばゲームのセーブデータとしては成立する状態になる

バックログジャンプ用にはさらに履歴を保持する必要があるので、そのデータを最小限にするために、
「変数変更はシーン冒頭または末尾のみ」「分岐はシーン末尾のみ」という制約を付けてある

これでシーン中は変数が変わらないので「通過シーンのID」「各シーン冒頭のゲーム変数」の記録だけで全行記録相当になる
普通はせいぜい数十シーン以内にエンディングにはたどり着くので、1つのセーブデータとして十分許容できるサイズにおさまる
変数を差分記録にしたらさらに容量減るのが確実だけど作業できてない

ちなみにこのスタイルにすると、セーブデータが修正耐性に強くなるというメリットもある。
記録してるのがIDと境界での変数だけなので、ID廃止にならない限りはそのまま使えるセーブデータになる