プロが教えるわが家の防犯対策術!

コマンド選択式のアドベンチャーゲーム(ADV)の作り方を解説している本かサイトはないでしょうか?
コマンド選択式というのは「ポートピア連続殺人事件」「探偵 神宮寺三郎」などです。
会話を行うのに「会話>誰?>何について?」というように複数コマンドを経る必要があるものです。

この方式だと、あり得るコマンドに対してそれだけの文章を用意しないといけません。
コマンドを選ぶことによって会話が進むので、会話がどこまで進んでいるかによっても文章を変更しないといけません。
二回目に表示される文章はスキップできるようにもなったりします。

こう考えるとフラグ管理が膨大になりそうな気がするのですが、どのようにすれば効率的に管理できるのでしょうか?
現在はこういうADVは作られてなく、選択肢で分岐するものばかりですので、解説書も見当たりません。

どうかよろしくお願いいたします。

A 回答 (4件)

「フラグ管理」で検索して以下のようなページを見つけました。



アドベンチャーゲームに活用できるフラグ管理のやり方
http://codezine.jp/article/detail/164

こちらの「メッセージの構造」の項にあるように
『シーン名』『条件』『処理』『次シーン』『メッセージ』の
項目を持ったデータを作成して、このデータを読み取って処理を
行うプログラムを作成するようになるかとおもいます。
    • good
    • 0
この回答へのお礼

リンク先のは画面クリック形式の場合ですが、コマンド選択式に置き換えると
「クリック範囲」が「見る」「聞く」などのコマンドに相当するということでしょうかね。
つまり「見る」「聞く」などのコマンドごとにこういったデータを用意して、
条件判定で適切なメッセージを表示すると……。

コマンド選択に使うには改造する必要がありそうですが、
参考になりました。ありがとうございました。

お礼日時:2009/12/27 19:45

>シナリオの長いものだとミスを起こしてしまいそうな気がします。



ですから、『地道に管理』するのです。
フラグ400個、パラメータ用レジスタ(カウンタだったり、好感度だったり)を40個…
とかでも、市販ゲームレベルのものは作成可能です。
# もっとも、シナリオライターの方が嫌がるのか実際に使われたフラグ数はたいしたことありませんでしたけど。
# 1000個用意して、50個程度し使っていなかったり。(後から不足すると困るので最初に必要以上に用意したというのもありますが)

・フラグ1は何の時に設定される。
みたいなメモをテキストファイルで作成して、そちらで管理してました。
# テキストファイルではなく、もっと安全・効率的な管理方法もあるのでしょうが…
# 私の関わったものではファイルサーバに置いたテキストファイルで充分でしたし。
テストプレイの人たちも参照できるようになっていましたから、矛盾が発生したりミスがあった場合にはバグレポートとして報告されてましたね。
そういうのを発見するためのテストプレイでもあるワケですし。
# テストプレイの人たちもシナリオファイルは参照できる環境でしたので、間違いがあったりすると早々に突っ込み入りましたけどね。
ちなみに、ルート管理ではなく表示したメッセージの既読管理(過去に表示したことがあるか)はシステム側でやってくれていました。

>昔の本でもいいので、解説しているものはないでしょうか?

現場の慣例でしたし…そのような本があるかは不明ですね。
地道で単純な管理ですから、手法として解説されているかどうかも……。

まずはやってみて、ダメならその時考えてみてはどうですか?
    • good
    • 0
この回答へのお礼

ありがとうございました。
でも人員に限りがある場合もありますので

> # テキストファイルではなく、もっと安全・効率的な管理方法もあるのでしょうが…

その方法を模索してみようと思います。

お礼日時:2009/12/27 19:48

あいにく、本などは知らないのですが



選択肢分岐型でも、コマンド選択でも、根は同じだと思います。

選択肢を多層化してたくさんに増やしたら、コマンド入力になりますよね

選択肢分岐型でも、選択肢によっては話が先に進まないものもあります。同じ選択肢を何度も選択することで話が進むこともあります。これって、コマンド選択型の進め方と同じですよね

途中の選択の組合せでエンディグ分岐するようなフラグ管理もやってますよね

こうして見ると、そんなに違いって無いように思えます。
選択肢分岐型の参考書は多いようですから、まずはそちらを読んでみてはいかがでしょうか。そこにあるテクニックはそのまま、あるいは少しの変更で使えるはずです
    • good
    • 0
この回答へのお礼

ありがとうございます。

ただ、どちらもフラグによる分岐でしょうが、
選択肢分岐とコマンド選択ではフラグの数が比較にならないと思います。

コマンド選択では「聞く」を何回か繰り返して会話が進んだりしますが、
そうするとそれだけでフラグを3つも4つも用意しないといけません。
しかもそれはゲームのごく一部分なので、ゲーム全体では膨大になると思います。
それをどうやって管理すればいいのかがわからないんです。

お礼日時:2009/12/27 19:44

>こう考えるとフラグ管理が膨大になりそうな気がするのですが、どのようにすれば効率的に管理できるのでしょうか?



地道にフラグ管理しているしているのでは?

CMD("話を聞く")
CMD("調べる")
CMD("移動")
コマンド選択待ち
IF(選択コマンドが"話を聞く") {
 誰に聞く?
 CMD("ヤス")
 CMD("とっつぁん")
 コマンド選択待ち
 IF(聞く相手が"ヤス") {
  何について聞く?
  IF(フラグCが立っていなかったら) CMD("天気について")
  CMD("捜査状況について")
  IF(フラグZが立っていたら) CMD("真犯人について")
  コマンド選択待ち
  IF()~
 } ELSE IF(聞く相手が"とっつぁん") {
   :
 }
} ELSE IF(選択コマンドが"調べる") {
  :
} ELSE IF(選択コマンドが"移動") {
  :
}

ってな感じでしょうか…。
選択肢だけでも条件分岐と繰り返しでなんとかなりませんか?

この回答への補足

「ポートピア」くらいならそれでもいけるかもしれませんが、シナリオの長いものだとミスを起こしてしまいそうな気がします。
昔の本でもいいので、解説しているものはないでしょうか?

補足日時:2009/12/25 11:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!