複数シナリオのための検討事項
検討のため文字として記述中です。
ちまちまゲームブックアプリを作っていますが、そろそろ複数シナリオについて考慮する必要があります。(要は後からインポートするイメージ)
プレイするのに必要あるいはプレイすると作成されるデータがあります。
必要なデータ(すなわちシナリオデータ)
・最初から入っているシナリオ
・自作のシナリオ
・Webから取り込んだシナリオ
作成されるデータ
・コンティニューデータ
・セーブデータ
最初から入っているデータをのぞけば、(実態が何であれ)ストレージと呼ばれる領域に保存されるわけですが、このストレージから読み込んだり保存したりするのに”キー”と呼ばれる文字列を使います。
例えばコンティニューデータの読み書きに使う文字列を"keycont"とするわけです。
さて、シナリオAで遊んでからシナリオBに浮気をして、またシナリオAを始めようと思った時、シナリオBのコンティニューデータが読み込まれるのは仕様として間違ってます。
となるとシナリオごとにストレージを分けるか、データの読み書きに使用する文字列をシナリオごとにするかの2つの対策が考えられそうです。
単純に、文字列"keycont"の前か後ろにシナリオ固有のIDを付加するのが良いかもと思ったのですが、その場合、シナリオIDをどうやって作る?と言う話につながりますので、一寸却下したいです。
(方法が無い訳でもないのですが、デメリットの方が多い気がします)
次に考えたのが、シナリオ固有ではなくアプリ内で区別つけようという考えです。
例えば、3番目の保存シナリオなら"keycont"に"save3_"をつけて、"save3_keycont"で読み書きをする方法です。
これは悪くない方法だと思うのですが、保存シナリオデータの削除前にセーブデータ付きのエクスポート機能(当然対となるインポート機能)が必要かもと思います。
ただ、とんでもない数のシナリオが無い限り、必要でもないかもですね。
(むしろ倉庫に入れる機能が必要?)
実装までに、もう少し考えてみます。