コマンド選択式のアドベンチャーゲーム(ADV)の作り方を解説している本かサイトはないでしょうか?
コマンド選択式というのは「ポートピア連続殺人事件」「探偵 神宮寺三郎」などです。
会話を行うのに「会話>誰?>何について?」というように複数コマンドを経る必要があるものです。
この方式だと、あり得るコマンドに対してそれだけの文章を用意しないといけません。
コマンドを選ぶことによって会話が進むので、会話がどこまで進んでいるかによっても文章を変更しないといけません。
二回目に表示される文章はスキップできるようにもなったりします。
こう考えるとフラグ管理が膨大になりそうな気がするのですが、どのようにすれば効率的に管理できるのでしょうか?
現在はこういうADVは作られてなく、選択肢で分岐するものばかりですので、解説書も見当たりません。
どうかよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
「フラグ管理」で検索して以下のようなページを見つけました。
アドベンチャーゲームに活用できるフラグ管理のやり方
http://codezine.jp/article/detail/164
こちらの「メッセージの構造」の項にあるように
『シーン名』『条件』『処理』『次シーン』『メッセージ』の
項目を持ったデータを作成して、このデータを読み取って処理を
行うプログラムを作成するようになるかとおもいます。
リンク先のは画面クリック形式の場合ですが、コマンド選択式に置き換えると
「クリック範囲」が「見る」「聞く」などのコマンドに相当するということでしょうかね。
つまり「見る」「聞く」などのコマンドごとにこういったデータを用意して、
条件判定で適切なメッセージを表示すると……。
コマンド選択に使うには改造する必要がありそうですが、
参考になりました。ありがとうございました。
No.4
- 回答日時:
>シナリオの長いものだとミスを起こしてしまいそうな気がします。
ですから、『地道に管理』するのです。
フラグ400個、パラメータ用レジスタ(カウンタだったり、好感度だったり)を40個…
とかでも、市販ゲームレベルのものは作成可能です。
# もっとも、シナリオライターの方が嫌がるのか実際に使われたフラグ数はたいしたことありませんでしたけど。
# 1000個用意して、50個程度し使っていなかったり。(後から不足すると困るので最初に必要以上に用意したというのもありますが)
・フラグ1は何の時に設定される。
みたいなメモをテキストファイルで作成して、そちらで管理してました。
# テキストファイルではなく、もっと安全・効率的な管理方法もあるのでしょうが…
# 私の関わったものではファイルサーバに置いたテキストファイルで充分でしたし。
テストプレイの人たちも参照できるようになっていましたから、矛盾が発生したりミスがあった場合にはバグレポートとして報告されてましたね。
そういうのを発見するためのテストプレイでもあるワケですし。
# テストプレイの人たちもシナリオファイルは参照できる環境でしたので、間違いがあったりすると早々に突っ込み入りましたけどね。
ちなみに、ルート管理ではなく表示したメッセージの既読管理(過去に表示したことがあるか)はシステム側でやってくれていました。
>昔の本でもいいので、解説しているものはないでしょうか?
現場の慣例でしたし…そのような本があるかは不明ですね。
地道で単純な管理ですから、手法として解説されているかどうかも……。
まずはやってみて、ダメならその時考えてみてはどうですか?
ありがとうございました。
でも人員に限りがある場合もありますので
> # テキストファイルではなく、もっと安全・効率的な管理方法もあるのでしょうが…
その方法を模索してみようと思います。
No.2
- 回答日時:
あいにく、本などは知らないのですが
選択肢分岐型でも、コマンド選択でも、根は同じだと思います。
選択肢を多層化してたくさんに増やしたら、コマンド入力になりますよね
選択肢分岐型でも、選択肢によっては話が先に進まないものもあります。同じ選択肢を何度も選択することで話が進むこともあります。これって、コマンド選択型の進め方と同じですよね
途中の選択の組合せでエンディグ分岐するようなフラグ管理もやってますよね
こうして見ると、そんなに違いって無いように思えます。
選択肢分岐型の参考書は多いようですから、まずはそちらを読んでみてはいかがでしょうか。そこにあるテクニックはそのまま、あるいは少しの変更で使えるはずです
ありがとうございます。
ただ、どちらもフラグによる分岐でしょうが、
選択肢分岐とコマンド選択ではフラグの数が比較にならないと思います。
コマンド選択では「聞く」を何回か繰り返して会話が進んだりしますが、
そうするとそれだけでフラグを3つも4つも用意しないといけません。
しかもそれはゲームのごく一部分なので、ゲーム全体では膨大になると思います。
それをどうやって管理すればいいのかがわからないんです。
No.1
- 回答日時:
>こう考えるとフラグ管理が膨大になりそうな気がするのですが、どのようにすれば効率的に管理できるのでしょうか?
地道にフラグ管理しているしているのでは?
CMD("話を聞く")
CMD("調べる")
CMD("移動")
コマンド選択待ち
IF(選択コマンドが"話を聞く") {
誰に聞く?
CMD("ヤス")
CMD("とっつぁん")
コマンド選択待ち
IF(聞く相手が"ヤス") {
何について聞く?
IF(フラグCが立っていなかったら) CMD("天気について")
CMD("捜査状況について")
IF(フラグZが立っていたら) CMD("真犯人について")
コマンド選択待ち
IF()~
} ELSE IF(聞く相手が"とっつぁん") {
:
}
} ELSE IF(選択コマンドが"調べる") {
:
} ELSE IF(選択コマンドが"移動") {
:
}
ってな感じでしょうか…。
選択肢だけでも条件分岐と繰り返しでなんとかなりませんか?
この回答への補足
「ポートピア」くらいならそれでもいけるかもしれませんが、シナリオの長いものだとミスを起こしてしまいそうな気がします。
昔の本でもいいので、解説しているものはないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Windows 10 ネットワークプリンターにファイルを直接送る方法・コマンドないですか?(´・ω・`) 3 2023/03/13 23:15
- その他(OS) DOSコマンド『dir』の『/o』オプション 3 2023/03/10 09:29
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Mac OS Mac iPhoneの連絡帳の大量のリストを削除したい 1 2023/05/12 23:30
- Illustrator(イラストレーター) Illustrator アンカーポイント選択について 3 2023/01/30 12:31
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- 大学受験 現代文の中間考査で、センター試験の追試験の過去問と同じ問題、同じ選択肢が5割も出題されます。本試験な 1 2022/10/10 11:40
- Windows 7 Windows11のパソコンについて。 11 2022/11/21 22:29
- その他(パソコン・スマホ・電化製品) LINUXPCに詳しい人に気楽に答えてほしい質問です。 2 2022/10/25 08:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Tera Term Proに関する質問です。
-
コマンドプロンプトが実行中か...
-
ttlで戻り値を取得する方法
-
バッチファイルでキー操作を行う。
-
負の数を正の数に変換
-
コマンドキーがないんですけど...
-
別のユーザーフォームのコマン...
-
PowerShell実行結果をデスクト...
-
シェルスクリプト
-
ディスクの空き容量を取得する...
-
mountのDOSコマンド
-
VBユーザーフォームで時間入力
-
文字の点滅はどうやるのですか?
-
コマンドプロンプトですべてのU...
-
ユーザーフォームのリストボッ...
-
C#でローカルユーザーやグルー...
-
BASICのコマンドリファレンスが...
-
runasで/savecredが指定できない
-
コマンドプロンプトで表示が多...
-
dosバッチ起動後、画面を閉じな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルでキー操作を行う。
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
ttlで戻り値を取得する方法
-
別のユーザーフォームのコマン...
-
VBユーザーフォームで時間入力
-
Tera Term Proに関する質問です。
-
コマンドプロンプトですべてのU...
-
コマンドキーがないんですけど...
-
TEXの表の位置が・・・
-
ルーターにつながっている全て...
-
デフォルトのショートカットキ...
-
dosバッチ起動後、画面を閉じな...
-
文字の点滅はどうやるのですか?
-
EEPROMのデータの初期化について
-
RTX1100の削除コマンド
-
コンボボックス(最終行取得)
-
JP1起動バッチについて
-
makeコマンドのエラー
-
ディスクの空き容量を取得する...
おすすめ情報