sftrabbitが述べたように、これはステートマシンに最適なアプリケーションです。
基本的に、ツリー構造のようなものがあります。各リーフ/ノードには、現在の状態に関する情報と、次の状態に進むためのルールが含まれています。プロット/プレイフローをどの程度複雑にする必要があるかに応じて、各ノードには複数の出口が含まれる場合があります。
これによく似た、非常に緩い類推は、Choose Your Own Adventureブックです。各ページには、ストーリーの一部を説明するテキストと、プレーヤーが行える決定が含まれています。各決定は別のページにつながります。一部のページは、以前にアクセスしたページなどにリンクバックする場合があります。
ZorkやLeather Goddesses of Phobosのような古いテキストベースのアドベンチャーゲーム、悪名高いSierra * Questゲーム(Roger Wilcoが主人公のSpace Quest が私のお気に入りの1つ)は、このタイプのシステムの非常にシンプルなバージョンを使用していました。マップ内の各部屋は州であり、出口は他の州または部屋にリンクされています。アイテムを取得すると、グローバル状態オブジェクトにフラグが設定されます。各部屋はこれらのフラグをチェックして、各部屋でどのキャラクターまたはアイテムが利用可能かを判断します。
そのため、状態はクラスまたは構造体として実装でき、それぞれに次のプロパティがあります。
資産リスト-背景グラフィックスや部屋/状態/レベルを表示するために必要な他のものへのポインターのリスト。
エントリー条件-レベルに入るためにすでに到達していなければならない実績
出口-可能な「次の」出口へのリンク。North、South、East、Westがこの例ですが、Door1、Teleportなどを含めることもできます。部屋を出ようとするとき、または出口/ドアが「開いている」と判断すると、ゲームは次の状態を確認できます入口条件が満たされているかどうかを確認し、出口が画面に表示される方法を変更するか、プレーヤーがその方向に移動できないようにします。
あなたが空想を得たいと思うならば、あなたは部屋がプレーヤーに示される方法、またはその部屋で利用できるアクションを変えるだろう異なるエントリー条件で州の異なるバージョンを含めることができました。
スタート画面、デス/ゲームオーバー画面などはすべて、システム内の状態であり、メニュー画面間を移動する方法と同様です。実際、このようなメニューシステムが適切に配置されている場合、これに使用できます。メニューをナビゲートする上/下矢印と「Enter」の代わりに、ゲームプレイエリア内で特定のイベントを探します。たとえば、テレポートパッドを踏んだり、画面の右側から歩いたりします。
管理者の観点から、ステートマシンを作成できる管理ツールを作成することでメリットが得られるかどうかを検討してください。ルームをマップに追加し、それらの間にリンクを作成し、背景画像などのアセットを割り当てます。これはおそらく最初の試みではやり過ぎです。管理ツールの構築に夢中になるのは簡単すぎて、実際にゲームを終了することはありません。覚えておいてください-あなたはミドルウェアではなく、ゲームを書いています。
お役に立てれば。