ページ 11

アドベンチャー(ノベル)ゲームの製作方法

Posted: 2013年2月08日(金) 04:01
by フィア
アプリケーションアプリのアドベンチャー(ノベル)ゲームの製作をするにあたって、自分用のプログラム命令語を作って
アドベンチャーゲームで表示させる文章や表現をまとめてひとつのファイル(Aファイルとします)に書き込む方法があるのは理解できました。

よくわからないのは

・ゲームの進行がAファイルの部分のときは、プログラム実行中ずっとfopenで開き続けても問題ないのでしょうか?

今まで作ったコンソールアプリではファイルを一気に読み込んで一気に終わる感覚だったのですが、文章を一時停止したり、音を鳴らしたりしたことがなかったので予期せぬ実行エラーとか起きないか不安なのです。

・もし問題がおきるならプログラム内部でtmpfileとかの関数を使って一時的にファイルの内容をコピーして書き込んでおき、終わったら開放させるという手法で問題はおきませんか?

Re: アドベンチャー(ノベル)ゲームの製作方法

Posted: 2013年2月08日(金) 06:06
by salsaww
基本的には、fopenで開きっぱなしでも問題有りません。

ただ、一般的には、命令が書かれているファイル自体は、そんなに大きなファイルになる事は無いと思われるので、
一気にメモリに読み込ませてしまう方法だと思います。

Re: アドベンチャー(ノベル)ゲームの製作方法

Posted: 2013年2月08日(金) 11:30
by softya(ソフト屋)
8bitの時代にはやむなく読み込みつつ、シナリオを処理していた時代がありますがメモリが足らなかったので仕方なくやっていただけです。
今日ではシナリオの容量などたかが知れているので、読み込むことを前提に考えて下さい。

ただし、ゲーム全体のシナリオの一度に読み込むのは得策ではありませんが、そういう問題が起きることは考え辛いです。
なぜなら、長大なシナリオファイルを作るの自体面倒で修正が大変なので章などに分割するはずぜすので。

Re: アドベンチャー(ノベル)ゲームの製作方法

Posted: 2013年2月08日(金) 17:44
by ISLe
ゲームのデータファイルはシナリオデータに限らず複数のデータを結合したものであることが多く、結合する前の個々のデータはオンメモリに読み込めるサイズになるよう調整・分割されます。
fopenで開いて、fseekで個々のデータのファイル内のオフセット位置に移動し、一気に読み込み、という方法を取ります。
データ改ざんのチェックなどはオンメモリで読み込める単位のほうが楽ですし。

Re: アドベンチャー(ノベル)ゲームの製作方法

Posted: 2013年2月14日(木) 12:40
by フィア
なるほどopenで開きっぱなしでも問題はないけれどメモリに読み込ませてから処理したほうがスマートってことですね。

ありがとうございました。