- ベストアンサー
コマンド選択式のアドベンチャーゲーム(ADV)の作り方解説本
- コマンド選択式のアドベンチャーゲーム(ADV)について解説している本やサイトはありますか?ADVとは「ポートピア連続殺人事件」「探偵 神宮寺三郎」などのように会話を進めるために複数のコマンドを選択するタイプのゲームです。
- この方式では、すべての可能なコマンドに対応する文章を用意する必要があり、どの選択肢に進んだかによって文章も変化します。フラグ管理が煩雑になる可能性もありますが、効率的な管理方法はまだ見つかっていません。
- 現在、ADVのようなコマンド選択式のゲームはあまり作られておらず、解説書もほとんど存在しません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
「フラグ管理」で検索して以下のようなページを見つけました。 アドベンチャーゲームに活用できるフラグ管理のやり方 http://codezine.jp/article/detail/164 こちらの「メッセージの構造」の項にあるように 『シーン名』『条件』『処理』『次シーン』『メッセージ』の 項目を持ったデータを作成して、このデータを読み取って処理を 行うプログラムを作成するようになるかとおもいます。
その他の回答 (3)
- Wr5
- ベストアンサー率53% (2173/4061)
>シナリオの長いものだとミスを起こしてしまいそうな気がします。 ですから、『地道に管理』するのです。 フラグ400個、パラメータ用レジスタ(カウンタだったり、好感度だったり)を40個… とかでも、市販ゲームレベルのものは作成可能です。 # もっとも、シナリオライターの方が嫌がるのか実際に使われたフラグ数はたいしたことありませんでしたけど。 # 1000個用意して、50個程度し使っていなかったり。(後から不足すると困るので最初に必要以上に用意したというのもありますが) ・フラグ1は何の時に設定される。 みたいなメモをテキストファイルで作成して、そちらで管理してました。 # テキストファイルではなく、もっと安全・効率的な管理方法もあるのでしょうが… # 私の関わったものではファイルサーバに置いたテキストファイルで充分でしたし。 テストプレイの人たちも参照できるようになっていましたから、矛盾が発生したりミスがあった場合にはバグレポートとして報告されてましたね。 そういうのを発見するためのテストプレイでもあるワケですし。 # テストプレイの人たちもシナリオファイルは参照できる環境でしたので、間違いがあったりすると早々に突っ込み入りましたけどね。 ちなみに、ルート管理ではなく表示したメッセージの既読管理(過去に表示したことがあるか)はシステム側でやってくれていました。 >昔の本でもいいので、解説しているものはないでしょうか? 現場の慣例でしたし…そのような本があるかは不明ですね。 地道で単純な管理ですから、手法として解説されているかどうかも……。 まずはやってみて、ダメならその時考えてみてはどうですか?
お礼
ありがとうございました。 でも人員に限りがある場合もありますので > # テキストファイルではなく、もっと安全・効率的な管理方法もあるのでしょうが… その方法を模索してみようと思います。
- kmee
- ベストアンサー率55% (1857/3366)
あいにく、本などは知らないのですが 選択肢分岐型でも、コマンド選択でも、根は同じだと思います。 選択肢を多層化してたくさんに増やしたら、コマンド入力になりますよね 選択肢分岐型でも、選択肢によっては話が先に進まないものもあります。同じ選択肢を何度も選択することで話が進むこともあります。これって、コマンド選択型の進め方と同じですよね 途中の選択の組合せでエンディグ分岐するようなフラグ管理もやってますよね こうして見ると、そんなに違いって無いように思えます。 選択肢分岐型の参考書は多いようですから、まずはそちらを読んでみてはいかがでしょうか。そこにあるテクニックはそのまま、あるいは少しの変更で使えるはずです
お礼
ありがとうございます。 ただ、どちらもフラグによる分岐でしょうが、 選択肢分岐とコマンド選択ではフラグの数が比較にならないと思います。 コマンド選択では「聞く」を何回か繰り返して会話が進んだりしますが、 そうするとそれだけでフラグを3つも4つも用意しないといけません。 しかもそれはゲームのごく一部分なので、ゲーム全体では膨大になると思います。 それをどうやって管理すればいいのかがわからないんです。
- Wr5
- ベストアンサー率53% (2173/4061)
>こう考えるとフラグ管理が膨大になりそうな気がするのですが、どのようにすれば効率的に管理できるのでしょうか? 地道にフラグ管理しているしているのでは? CMD("話を聞く") CMD("調べる") CMD("移動") コマンド選択待ち IF(選択コマンドが"話を聞く") { 誰に聞く? CMD("ヤス") CMD("とっつぁん") コマンド選択待ち IF(聞く相手が"ヤス") { 何について聞く? IF(フラグCが立っていなかったら) CMD("天気について") CMD("捜査状況について") IF(フラグZが立っていたら) CMD("真犯人について") コマンド選択待ち IF()~ } ELSE IF(聞く相手が"とっつぁん") { : } } ELSE IF(選択コマンドが"調べる") { : } ELSE IF(選択コマンドが"移動") { : } ってな感じでしょうか…。 選択肢だけでも条件分岐と繰り返しでなんとかなりませんか?
補足
「ポートピア」くらいならそれでもいけるかもしれませんが、シナリオの長いものだとミスを起こしてしまいそうな気がします。 昔の本でもいいので、解説しているものはないでしょうか?
お礼
リンク先のは画面クリック形式の場合ですが、コマンド選択式に置き換えると 「クリック範囲」が「見る」「聞く」などのコマンドに相当するということでしょうかね。 つまり「見る」「聞く」などのコマンドごとにこういったデータを用意して、 条件判定で適切なメッセージを表示すると……。 コマンド選択に使うには改造する必要がありそうですが、 参考になりました。ありがとうございました。