アプリケーションアプリのアドベンチャー(ノベル)ゲームの製作をするにあたって、自分用のプログラム命令語を作って
アドベンチャーゲームで表示させる文章や表現をまとめてひとつのファイル(Aファイルとします)に書き込む方法があるのは理解できました。
よくわからないのは
・ゲームの進行がAファイルの部分のときは、プログラム実行中ずっとfopenで開き続けても問題ないのでしょうか?
今まで作ったコンソールアプリではファイルを一気に読み込んで一気に終わる感覚だったのですが、文章を一時停止したり、音を鳴らしたりしたことがなかったので予期せぬ実行エラーとか起きないか不安なのです。
・もし問題がおきるならプログラム内部でtmpfileとかの関数を使って一時的にファイルの内容をコピーして書き込んでおき、終わったら開放させるという手法で問題はおきませんか?
アドベンチャー(ノベル)ゲームの製作方法
-
salsaww
Re: アドベンチャー(ノベル)ゲームの製作方法
基本的には、fopenで開きっぱなしでも問題有りません。
ただ、一般的には、命令が書かれているファイル自体は、そんなに大きなファイルになる事は無いと思われるので、
一気にメモリに読み込ませてしまう方法だと思います。
ただ、一般的には、命令が書かれているファイル自体は、そんなに大きなファイルになる事は無いと思われるので、
一気にメモリに読み込ませてしまう方法だと思います。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: アドベンチャー(ノベル)ゲームの製作方法
8bitの時代にはやむなく読み込みつつ、シナリオを処理していた時代がありますがメモリが足らなかったので仕方なくやっていただけです。
今日ではシナリオの容量などたかが知れているので、読み込むことを前提に考えて下さい。
ただし、ゲーム全体のシナリオの一度に読み込むのは得策ではありませんが、そういう問題が起きることは考え辛いです。
なぜなら、長大なシナリオファイルを作るの自体面倒で修正が大変なので章などに分割するはずぜすので。
今日ではシナリオの容量などたかが知れているので、読み込むことを前提に考えて下さい。
ただし、ゲーム全体のシナリオの一度に読み込むのは得策ではありませんが、そういう問題が起きることは考え辛いです。
なぜなら、長大なシナリオファイルを作るの自体面倒で修正が大変なので章などに分割するはずぜすので。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: アドベンチャー(ノベル)ゲームの製作方法
ゲームのデータファイルはシナリオデータに限らず複数のデータを結合したものであることが多く、結合する前の個々のデータはオンメモリに読み込めるサイズになるよう調整・分割されます。
fopenで開いて、fseekで個々のデータのファイル内のオフセット位置に移動し、一気に読み込み、という方法を取ります。
データ改ざんのチェックなどはオンメモリで読み込める単位のほうが楽ですし。
fopenで開いて、fseekで個々のデータのファイル内のオフセット位置に移動し、一気に読み込み、という方法を取ります。
データ改ざんのチェックなどはオンメモリで読み込める単位のほうが楽ですし。
-
フィア
Re: アドベンチャー(ノベル)ゲームの製作方法
なるほどopenで開きっぱなしでも問題はないけれどメモリに読み込ませてから処理したほうがスマートってことですね。
ありがとうございました。
ありがとうございました。