Open3
xsystem4-androidのセーブデータ管理
現状
現バージョンのxsystem4-androidでは、セーブデータは以下の場所に保存される。
Android/data/io.github.kichikuou.xsystem4/files/.xsystem4/<GameName>/<SaveFolder>
<GameName>
と<SaveFolder>
はSystem4ゲームの設定ファイルSystem40.ini
またはAliceStart.ini
の同名のフィールドによって指定される。
例えば、戦国ランスのSystem40.ini
には以下のように記述されている。
GameName = "戦国ランス"
SaveFolder = "SaveData"
この場合、セーブデータはAndroid/data/io.github.kichikuou.xsystem4/files/.xsystem4/戦国ランス/SaveData
に保存される。
以下の点に注意が必要である。
- 複数のゲームが同じ
GameName
を持つ場合、それらはセーブデータを共有する -
GameName
が変わるとセーブデータの場所が変わる
問題点
アリスソフト純正のゲームに関しては上記の仕様で特に問題はないが、MODに関しては以下のような問題がある。
- ルドラサウム大陸版・大戦国ランスは
GameName
にバージョン番号が含まれているため、バージョンアップするとセーブデータの場所が変わってしまう - Darkness Hero Rance (DHR) は
System40.ini
を提供しないため、普通に導入するとバニラ(MangaGamer版)とセーブデータが同じ場所に保存されてしまう
解決策
.xsystem4
以下にセーブフォルダを作るのではなく、ゲームのパッケージディレクトリにセーブフォルダを作るようにする。例えばユーザーが戦国ランスをAndroid/data/io.github.kichikuou.xsystem4/files/SengokuRance
にインストールした場合、セーブデータはAndroid/data/io.github.kichikuou.xsystem4/files/SengokuRance/<SaveFolder>
に保存されるようにする。
この方式には以下のような利点がある。
- ゲームのインストールとセーブデータが一対一に対応するため、ユーザーにとってわかりやすい
- アリスソフトのある時期までのゲームは、インストールフォルダ内の
SaveData
サブフォルダにセーブデータを保存するようになっている(最近のゲームはデフォルトではマイドキュメント以下に保存する)。ユーザーがSaveData
フォルダごとゲームをxsystem4-androidにインストールするだけでセーブデータが引き継がれる
欠点としては、ゲームが複数ある場合にセーブデータのバックアップが現状に比べて面倒になる(が、ほとんどのユーザーは少数のゲームしかインストールしていないと思われる)。