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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
フィア

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

#1

投稿記事 by フィア » 13年前

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

よくわからないのは

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

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

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

salsaww

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

#2

投稿記事 by salsaww » 13年前

基本的には、fopenで開きっぱなしでも問題有りません。

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#3

投稿記事 by softya(ソフト屋) » 13年前

8bitの時代にはやむなく読み込みつつ、シナリオを処理していた時代がありますがメモリが足らなかったので仕方なくやっていただけです。
今日ではシナリオの容量などたかが知れているので、読み込むことを前提に考えて下さい。

ただし、ゲーム全体のシナリオの一度に読み込むのは得策ではありませんが、そういう問題が起きることは考え辛いです。
なぜなら、長大なシナリオファイルを作るの自体面倒で修正が大変なので章などに分割するはずぜすので。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

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

#4

投稿記事 by ISLe » 13年前

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

フィア

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

#5

投稿記事 by フィア » 13年前

なるほどopenで開きっぱなしでも問題はないけれどメモリに読み込ませてから処理したほうがスマートってことですね。

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

閉鎖

“C言語何でも質問掲示板” へ戻る