複数のストーリースレッドを持つRPGゲームを設計しました。つまり、ユーザーの選択に応じて、発生する場合と発生しない場合があり、いくつかの方法で同じことを達成でき、エンディングが異なる場合があります。
私は単純な意思決定エンジンを実装しましたが、それはうまく機能しますが、1つの大きな欠陥があります。あなたが決定を下す瞬間に、ストーリーはあなたの決定によってすぐに影響を受けます。 。これは、ストーリーがツリー構造のブランチのように展開し、常に次のノードを知る必要があるためです。内部では、キューを使用して決定が実装されます。各ノードは前のノードと次のノードを認識します(または、決定ノードの場合は、ユーザー入力を待って次のノードを設定します)
複雑な決定エンジンを持つゲームをたくさん見ましたが、どのように作られているのでしょうか?物事を本当に簡単にする特別なデザインはありますか?誰かが似たようなことをして、これに取り組む方法のヒントをくれましたか?
更新1:
重要な側面は、外部コードから操作できるように、ストーリーコードを何らかの形で独立させて管理することです。これをエンジンとして使用する予定であるため、可能な選択肢も外部ファイルから取得する必要があります。コードは完全に抽象的でなければなりません。
また、私はデザインソリューション、それを行うための良い方法、他の人がそれをどのようにやったか、に興味があります。
if (isTree)
、isTree
グローバル変数をチェックしたり保持したりすることはできません。ストーリーにはその選択がある場合とない場合があります。わかる?複数のストーリーを提供する選択エンジンのようなものです。
isTree=true
、その後、彼は学校の仲間と戦うなど、何か他のことをします。彼はお尻を蹴られたので。これで、isTree==true' and
didFightBrat == false`の存在に影響する2つの変数があります。わかる?そして、連鎖は永遠に続く可能性があり、木の存在は未知の数の要因によって影響を受ける可能性があります。わかる?