特に該当するファミコンのゲームをプレイしたことある方
どうかご教授をお願いさせて下さい。長文すみません。
昔懐かしいタイプのあどべんちゃーゲーム(以下AVG)を制作しようとしています。
私にはAVGを作った経験がありませんが
勉強も兼ねてDXライブラリを使って1から作りたいと思っています。
完成系のイメージ(参考にしているのは)ですが、
ファミコンでいうところの「オホーツクに消ゆ」「FC探偵クラブ」や「神宮寺三郎」みたいなゲームです。
(簡単な選択肢でルートが変わるだけの
「弟切草」や「かまいたちの夜」などのノベルゲームではありませんので注意してください)
で、AVG制作にトライするのは初めてということで、
今は実際に既存のAVGをいくつかプレイしながらプログラミングの設計を熟考しているのですが
現在自分が構築しようとしている設計が、大外れだと怖いので
知識や経験が豊富な先輩方からアドバイスや参考となるご意見を頂きたく
こちらに投稿させて頂いています。
ストーリーの進行具合を記録するフラグorカウンターがいくつか必須だと思うんですが
それがどれくらい必要なのかで、今パニクっています。
というのも、大筋の進行状況カウンターは当然として、各登場人物に対する尋問(聞込み)シーンにおいては、
各項目ごとのセリフをあてがうカウンターが必要なのではないか?という結論に至りました。
例えば、
主人公が「太郎」という人物に対して聞込みをするシーンだとします。
「聞く」の項目を選択後、さらに「名前」と「アリバイ」があるとします(実際はもっとありますよね)。
各項目を選択すると、それぞれ配列に格納していたセリフが表示されるとします。
この時に、二度同じ項目を選択した時に、セリフが変わる状況はよくあると思います。
例)「聞く」→「名前」→「俺は太郎だ」、もう一度選択「聞く」→「名前」→「太郎だつってんじゃん」
この「二度目」というのを認識させるために、カウンターが必要ですよね?
(三回、四回変化する場合も考慮して、ここはフラグじゃ無く、カウンターが妥当ですよね)
しかし、「アリバイ」という項目も実は二度目に変化する項目だった場合はどうでしょう?
例)「アリバイ」→「その時間は二郎といた」、もう一度選択「アリバイ」→「二郎に聞いてみなよ」
と。ここでも「アリバイ」の項目のカウンターが必要ですよね?
そして問題は、プレイヤーは必ず連続で聞くとは限りません。
「聞く」→「名前」のあとに、「聞く」→「アリバイ」を選択する可能性もあるわけで、
そのあとでまた「聞く」→「名前」を選ぶかもしれない。
別の項目をまたいだあとでも二度目だということを認識させるためには
ひとつのカウンターを使い回すわけにはいかないはずです。
なので、完全に独立したカウンターが必要ですよね?
もっと言えば、その話の途中で(つまり1度目の選択のあとに)プレイヤーが別の場所に
移動する可能性も考慮しなければなりません。
で、舞い戻ってきてから、太郎に対して二度目の「聞く」→「名前」を選択する、という可能性。
なので、つまりは各人物の各項目用のカウンターの変数はいちいちリセットできないわけです。
その変数は他の項目や人物とは使いまわせないわけです。
例)シングルトンで作ったクラスに、全登場人物の全項目に対するカウンターを作るのか、とか今は想像してます。
正直、こんな項目ごとにカウンター(何度目の選択か)を作っていたら
ものすごいカウンターの変数を作ることになりますよね?
この考え方だと今までの規模では無いな、と非常に恐ろしく感じているのですが、
でも、これがAVGを作る上では、定石というか、普通な考え方なのでしょうか?
今まではアクションやシューティングゲームを作った経験しかないので
非常に不安です。
「そうです、そんなもんです」という回答があれば
そういうものなのか、と根気よくがんばりますが、、、、
「お前のやり方、恐ろしいほど手間だぞ。そーいうのはこういう考え方で構築しろ」みたいな
メカラウロコみたいなテクニック、ありますか?どうぞよろしくお願いします。
(ちなみにツール(吉里吉里等)を使うのは考えておりません)
AVG制作においてフラグやカウンターの数が、、!?
Re: AVG制作においてフラグやカウンターの数が、、!?
>ファミコンでいうところの「オホーツクに消ゆ」「FC探偵クラブ」や「神宮寺三郎」みたいなゲームです。
「FC探偵クラブ」だけやった事があります。
>で、AVG制作にトライするのは初めてということで、
>今は実際に既存のAVGをいくつかプレイしながらプログラミングの設計を熟考しているのですが
>現在自分が構築しようとしている設計が、大外れだと怖いので
>知識や経験が豊富な先輩方からアドバイスや参考となるご意見を頂きたく
>こちらに投稿させて頂いています。
実際、作っていくうちに気付きが得られ、それが開発者を成長させる側面も有るとは思います。
>そして問題は、プレイヤーは必ず連続で聞くとは限りません。
>「聞く」→「名前」のあとに、「聞く」→「アリバイ」を選択する可能性もあるわけで、
>そのあとでまた「聞く」→「名前」を選ぶかもしれない。
>別の項目をまたいだあとでも二度目だということを認識させるためには
>ひとつのカウンターを使い回すわけにはいかないはずです。
>なので、完全に独立したカウンターが必要ですよね?
プレイヤーの操作をログとして記録し続ける処理を作成し、イベント発生時には、そのログを参照し、条件に合致するのかどうかを判定するのも、方法の一つとは言えます。
「FC探偵クラブ」だけやった事があります。
>で、AVG制作にトライするのは初めてということで、
>今は実際に既存のAVGをいくつかプレイしながらプログラミングの設計を熟考しているのですが
>現在自分が構築しようとしている設計が、大外れだと怖いので
>知識や経験が豊富な先輩方からアドバイスや参考となるご意見を頂きたく
>こちらに投稿させて頂いています。
実際、作っていくうちに気付きが得られ、それが開発者を成長させる側面も有るとは思います。
>そして問題は、プレイヤーは必ず連続で聞くとは限りません。
>「聞く」→「名前」のあとに、「聞く」→「アリバイ」を選択する可能性もあるわけで、
>そのあとでまた「聞く」→「名前」を選ぶかもしれない。
>別の項目をまたいだあとでも二度目だということを認識させるためには
>ひとつのカウンターを使い回すわけにはいかないはずです。
>なので、完全に独立したカウンターが必要ですよね?
プレイヤーの操作をログとして記録し続ける処理を作成し、イベント発生時には、そのログを参照し、条件に合致するのかどうかを判定するのも、方法の一つとは言えます。
Re: AVG制作においてフラグやカウンターの数が、、!?
> どれくらい必要なのか
…は,シナリオ次第だと思ので,「必要な個数だけ必要」なのだと思いますが……
もし私が作るとしたら(作った経験はないですけど)
逆方向から(?)
「
・2値のフラグ(bool)をN個
・整数型の変数(int)をM個
…
を自由に使えるという制約条件の中でうまくやりくりしてストーリーを作ってね
」
という形にするかな,とか.(ツクール的?)
これ系のゲームには「ある時点まで進んだら以降覚えておかなくて良い情報」が大量にあると思うので,
「それなりの個数」使えるようにしてあれば良いのではないかと想像.
(オホーツクなら,北海道に飛んだあとは,最初にいた場所(東京だっけ?)らへんの処理に使ったフラグとかは以降不要ですよね)
あと,こういうのをわざわざ
> シングルトン
にする必要は無いんじゃないかと思います.
そのクラスのインスタンスを1つしか作れないという不便な制約が生じるだけで,利が無いように思います.
…は,シナリオ次第だと思ので,「必要な個数だけ必要」なのだと思いますが……
もし私が作るとしたら(作った経験はないですけど)
逆方向から(?)
「
・2値のフラグ(bool)をN個
・整数型の変数(int)をM個
…
を自由に使えるという制約条件の中でうまくやりくりしてストーリーを作ってね
」
という形にするかな,とか.(ツクール的?)
これ系のゲームには「ある時点まで進んだら以降覚えておかなくて良い情報」が大量にあると思うので,
「それなりの個数」使えるようにしてあれば良いのではないかと想像.
(オホーツクなら,北海道に飛んだあとは,最初にいた場所(東京だっけ?)らへんの処理に使ったフラグとかは以降不要ですよね)
あと,こういうのをわざわざ
> シングルトン
にする必要は無いんじゃないかと思います.
そのクラスのインスタンスを1つしか作れないという不便な制約が生じるだけで,利が無いように思います.
Re: AVG制作においてフラグやカウンターの数が、、!?
>なので、つまりは各人物の各項目用のカウンターの変数はいちいちリセットできないわけです。
>その変数は他の項目や人物とは使いまわせないわけです。
いちいちリセット出来ず、他の項目や人物とは使いまわせないのならば、そのフラグは独立した専用の領域を持って然るべきです。
仮にゲーム開始時の行動がゲーム終盤で関わってくるのであれば、
そのフラグを何らかの形でゲーム中ずっと保持しておくのは当然ですし、迷う必要はありません。
フラグの数を減らしたいならば、コーディングで変数スコープを狭くしていく時と同じ感覚です。
特定のシーンでしか使わない事が確定したフラグは、逆に言えば他のシーンでは存在しなくても良いわけです。
必要なシーンが始まった段階で管理を開始し、シーンが終了したら破棄してしまいましょう。
>その変数は他の項目や人物とは使いまわせないわけです。
いちいちリセット出来ず、他の項目や人物とは使いまわせないのならば、そのフラグは独立した専用の領域を持って然るべきです。
仮にゲーム開始時の行動がゲーム終盤で関わってくるのであれば、
そのフラグを何らかの形でゲーム中ずっと保持しておくのは当然ですし、迷う必要はありません。
フラグの数を減らしたいならば、コーディングで変数スコープを狭くしていく時と同じ感覚です。
特定のシーンでしか使わない事が確定したフラグは、逆に言えば他のシーンでは存在しなくても良いわけです。
必要なシーンが始まった段階で管理を開始し、シーンが終了したら破棄してしまいましょう。
Re: AVG制作においてフラグやカウンターの数が、、!?
回答ありがとうございます。
RPGでもプレイヤーのいろんな状況を記録していく必要がある
凝った内容のものがありますよね。
例えば、ファミコンのドラクエ2とか、
パスワードが長いですが、あの一桁ごとにプレイヤーのある情報が詰まってるとしたら
あのパスワードの長さは、要はそれだけの数を記録する変数を
ゲーム中用意してるってことですし、
そのゲームの規模が大作になればなるほど
用意するintやboolの変数が膨大になろうが、
それは当然だということですよね。
まあ最初から自分の意見に行き着くと思ってましたが。
びびって不安なってましたが、割り切って
というか堂々と膨大に宣言して制作しようと思います。
もうファミコンなんてやったことねーわ、みたいな新世代の人達ばかりなのか
目からウロコな意見はありませんでしたが、投稿してよかったです。
RPGでもプレイヤーのいろんな状況を記録していく必要がある
凝った内容のものがありますよね。
例えば、ファミコンのドラクエ2とか、
パスワードが長いですが、あの一桁ごとにプレイヤーのある情報が詰まってるとしたら
あのパスワードの長さは、要はそれだけの数を記録する変数を
ゲーム中用意してるってことですし、
そのゲームの規模が大作になればなるほど
用意するintやboolの変数が膨大になろうが、
それは当然だということですよね。
まあ最初から自分の意見に行き着くと思ってましたが。
びびって不安なってましたが、割り切って
というか堂々と膨大に宣言して制作しようと思います。
もうファミコンなんてやったことねーわ、みたいな新世代の人達ばかりなのか
目からウロコな意見はありませんでしたが、投稿してよかったです。