ページ 11

ノベルゲームのセーブ・ロードに関して

Posted: 2011年6月14日(火) 17:01
by はすみ
お世話になります、セーブロードに関して二つほど分からないことがあるのでご指導いただけたら幸いです。


①今自分は、ノベルゲームのシステムを自分で作っているのですが、セーブロードの段階で少し詰まってしまいました。
というのも、セーブする項目について、どんな変数を用意すればいいのかが正しく分からないのです。
現在は、背景・キャラ画像・BGM・メッセージなどを変数に格納してバイナリファイルとして書きだす・・・という風なやり方なんですが・・・。
方法としてはこれで間違ってはいないのでしょうか?



②そして一番の問題として、「進行状況を保存する」というのが全く分かりません。
自分は自作のスクリプトでストーリーや演出をテキストに記述して進めているのですが、例えば14行目のテキストまで進行したと言う情報は、どのようにして得ればいいのかが分からないのです。

方法としては、
「ストーリーなどを書いたテキストファイル」 からC++の関数呼び出し→ 「C++」で関数処理
と言う感じの処理の仕方です。


かなり分かりづらい説明になってしまっていますが、よろしければ教えていただけると幸いです。
よろしくお願いします。

Re: ノベルゲームのセーブ・ロードに関して

Posted: 2011年6月14日(火) 17:26
by softya(ソフト屋)
これはプロでも結構悩む問題で難しいですよ。
昨今のノベル系のスキップやロールバック機能も含めると更にややこしいです。
はすみ さんが書きました:現在は、背景・キャラ画像・BGM・メッセージなどを変数に格納してバイナリファイルとして書きだす・・・という風なやり方なんですが・・・。
方法としてはこれで間違ってはいないのでしょうか?
その番号は次回も同じである保証がありませんのでセーブデータとしては不都合のほうが多いんじゃないでしょうか?
背景・キャラ画像・BGMなど定義テーブルの番号などもっと抽象的な番号に置き換えないとマズイでしょう。
メッセージは、シナリオから再現できるのでは?
はすみ さんが書きました: 自分は自作のスクリプトでストーリーや演出をテキストに記述して進めているのですが、例えば14行目のテキストまで進行したと言う情報は、どのようにして得ればいいのかが分からないのです。
すくなくとも、プログラムでどのファイルの何行目までは実行したと把握しているはずですから、その情報を記録すれば良いのでは?
あとシナリオのフラグもセーブしないとまずいと思います。
この方式の弱点は、製作途中でシナリオが変わったときにロードできないデータになってしまう事でしょう。
あと公開後のメンテナンスでも不都合が生じる可能性があります。
ここをどう工夫で乗り切るかがノウハウなんですよね~。

吉里吉里とかNScripterとかの記録データはどう処理してるんでしょうね?調べてみる価値はあるかと思います。

Re: ノベルゲームのセーブ・ロードに関して

Posted: 2011年6月21日(火) 02:13
by はすみ
softya(ソフト屋)さんお早い返信ありがとうございました。

プロでも悩むレベルなんですね・・・・。自分ではどういった解決策を用意すればいいのか全くと言っていいほど思いつかなかったのですが・・・無理もないことなんでしょうか・・・・。
これを返信するまでの間、汎用スクリプトでのコルーチンやなんやといろいろ試行錯誤を重ねてみたんですが、やはり無理でした・・・。


と言う事で自分自身でももう少し研鑽を重ねてからトライしてみたいと思います。
ソフト屋さん、どうもありがとうございました。
いずれどなたかのご指南があるかもしれないので、そちらも少し期待しつつ自分でももっとチャレンジしてみます。

Re: ノベルゲームのセーブ・ロードに関して

Posted: 2011年6月21日(火) 10:47
by softya(ソフト屋)
こういう抽象的な質問だと抽象的な答えしか返せませんので、ソースを見せてもらえばもっと具体的にアドバイスできることもあるかと思います。

それとDXライブラリ本家の「DXライブラリサンプルゲームのダウンロード」でノベルゲームがソースコード付きでダウンロード出来るのをご存知ですか?
http://homepage2.nifty.com/natupaji/DxLib/dxsample.html
参考になると思うのでダウンロードしてみては如何でしょうか?