はじめまして。質問をさせてください。
既にユーザへ頒布したゲームがあるとして。
そのゲームに要素を追加したものを再頒布した場合、配布済みのゲームのセーブデータから再頒布のゲームへデータを引き継ぐことは構造的に可能でしょうか?
不可能ではないが問題点がある場合は、その点をご教示いただけると嬉しく思います。
よろしくお願いします。
既に頒布したアプリケーションに対する要素追加について
-
- 記事: 6
- 登録日時: 2023年7月15日(土) 07:05
- Plasma Dark
- 記事: 736
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: 既に頒布したアプリケーションに対する要素追加について
可能ですが注意点はもちろんあります。
パッと思いつく限りだと、以下の点に注意が必要です。
1. ゲームアップデートにより追加されることを想定していないプラグインを追加しない
2. セーブ画面を開くイベント、セーブされ得るマップの並列実行イベント、並列実行のコモンイベントを変更・削除しない
3. 既存のアクターなど、セーブデータに含まれるデータを変更・削除しない
2と3は追加要素というよりは変更が削除が問題になるものですが、これはこれで落とし穴になりやすいです。
それぞれ詳しく説明します。
1. ゲームアップデートにより追加されることを想定していないプラグインを追加しない
世のプラグインには、ニューゲーム時にセーブデータに含まれる情報を追加して、セーブデータをロードする際にその情報が存在することを暗黙の前提としてしまっているものがあります。
プラグインの追加後に、追加前に作られたセーブデータをロードするとエラーが出てゲームが止まってしまう、という状況が起きます。
何かプラグインを追加しようとする場合は、プラグイン追加前のセーブデータを残しておき、追加後にロードしてプラグインの機能が動くことを確認するなど、セーブデータへの影響を考えて慎重に動作確認すると良いでしょう。
セーブデータに影響のあるプラグインの更新や削除にも同様に注意が必要です。
2. セーブ画面を開くイベント、セーブされ得るマップの並列実行イベント、並列実行のコモンイベントを変更・削除しない
イベントの実行中にセーブした場合、実行中のイベントの情報がセーブデータに含まれます。
セーブに含まれたイベントは実行が終わるまで更新前の状態のままです。
たいていの場合あまり問題にならないとは思いますが、何か起きた場合に不具合報告をするプレイヤーと対応する作者の間に混乱が生じる恐れがあります。
セーブするタイミングで実行中になり得るイベントについては変更や削除を避けたほうが無難です。
3. 既存のアクターなど、セーブデータに含まれるデータを変更・削除しない
アクター名やプロフィール、顔グラ、歩行グラなどはデータベースの内容をゲーム内から直接参照しているわけではなく、データベースの内容をセーブデータにコピーして使用しています。
ですので、例えばバージョンアップでデータベース内のアクターのプロフィールにある誤字を直したが、以前のバージョンのセーブデータをロードするとその誤字は直っていない、などという混乱が生じます。
乗り物画像のファイル名もセーブデータに含まれるので、「そういえば乗り物使ってないし、画像消して容量軽くしておくか」などと軽い気持ちで消してしまうと、以前のセーブデータをロードした瞬間にエラーが出てゲームが止まります。
パッと思いつく限りだと、以下の点に注意が必要です。
1. ゲームアップデートにより追加されることを想定していないプラグインを追加しない
2. セーブ画面を開くイベント、セーブされ得るマップの並列実行イベント、並列実行のコモンイベントを変更・削除しない
3. 既存のアクターなど、セーブデータに含まれるデータを変更・削除しない
2と3は追加要素というよりは変更が削除が問題になるものですが、これはこれで落とし穴になりやすいです。
それぞれ詳しく説明します。
1. ゲームアップデートにより追加されることを想定していないプラグインを追加しない
世のプラグインには、ニューゲーム時にセーブデータに含まれる情報を追加して、セーブデータをロードする際にその情報が存在することを暗黙の前提としてしまっているものがあります。
プラグインの追加後に、追加前に作られたセーブデータをロードするとエラーが出てゲームが止まってしまう、という状況が起きます。
何かプラグインを追加しようとする場合は、プラグイン追加前のセーブデータを残しておき、追加後にロードしてプラグインの機能が動くことを確認するなど、セーブデータへの影響を考えて慎重に動作確認すると良いでしょう。
セーブデータに影響のあるプラグインの更新や削除にも同様に注意が必要です。
2. セーブ画面を開くイベント、セーブされ得るマップの並列実行イベント、並列実行のコモンイベントを変更・削除しない
イベントの実行中にセーブした場合、実行中のイベントの情報がセーブデータに含まれます。
セーブに含まれたイベントは実行が終わるまで更新前の状態のままです。
たいていの場合あまり問題にならないとは思いますが、何か起きた場合に不具合報告をするプレイヤーと対応する作者の間に混乱が生じる恐れがあります。
セーブするタイミングで実行中になり得るイベントについては変更や削除を避けたほうが無難です。
3. 既存のアクターなど、セーブデータに含まれるデータを変更・削除しない
アクター名やプロフィール、顔グラ、歩行グラなどはデータベースの内容をゲーム内から直接参照しているわけではなく、データベースの内容をセーブデータにコピーして使用しています。
ですので、例えばバージョンアップでデータベース内のアクターのプロフィールにある誤字を直したが、以前のバージョンのセーブデータをロードするとその誤字は直っていない、などという混乱が生じます。
乗り物画像のファイル名もセーブデータに含まれるので、「そういえば乗り物使ってないし、画像消して容量軽くしておくか」などと軽い気持ちで消してしまうと、以前のセーブデータをロードした瞬間にエラーが出てゲームが止まります。
-
- 記事: 6
- 登録日時: 2023年7月15日(土) 07:05
Re: 既に頒布したアプリケーションに対する要素追加について
>Plasma Darkさん
ご丁寧な返信、ありがとうございました。仔細まで記載されており非常にわかりやすかったです。
つまり、『プラグイン的にバニラ状態のゲームで、かつ既存部の削除・変更をしなければ』ゲームを差し替えても引き継ぎに支障はないということなのですね。
当方ゲームを販売しておりまして、追加要素のあるrevをユーザへの負担なしで配布したかったため助かりました。
他の有識者の方におかれましても、もし懸念事項がありましたら是非お教えいただきたくお願いいたします。
ご丁寧な返信、ありがとうございました。仔細まで記載されており非常にわかりやすかったです。
つまり、『プラグイン的にバニラ状態のゲームで、かつ既存部の削除・変更をしなければ』ゲームを差し替えても引き継ぎに支障はないということなのですね。
当方ゲームを販売しておりまして、追加要素のあるrevをユーザへの負担なしで配布したかったため助かりました。
他の有識者の方におかれましても、もし懸念事項がありましたら是非お教えいただきたくお願いいたします。