テキスト アドベンチャー ゲーム (「Interactive Fiction」または「IF」) の作成に興味がある場合は、そのために設計された多くのツールのいくつかを検討する必要があります。
- 伝統的な系譜でテキスト アドベンチャーを作成するためのコンパイラは、IFWikiから見つけることができます。たとえば、これはSpider と Webを実行する Parchment インタープリターです (私のお気に入りの 1 つです)。wikiにも楽しいIFの書き方がたくさん書いてあります。
- Choice of Gamesはクロスプラットフォームの IF を作成する会社で、主にモバイル デバイスを対象としています。IF を記述するための独自のスクリプト言語があり、ゲームを販売したい場合は、それを管理することもできます。
- Twineは、Web ベースの IF を構築するための IDE です。自分で試したことはありませんが、書くのは簡単に見えます。
これが単なる Java プロジェクトの一種である場合は、次のアプローチをお勧めします。
/**
* Represents one location or one state in the game.
*/
public class DecisionTreeNode {
/** Text that gets printed when the user lands on this node */
private final String nodeText;
/** Maps text that the user can enter to the node that they reach by typing that text */
private final Map<String,DecisionTreeNode> choices;
}
そのスタブに記入すると、非常に単純な IF のサブセットを作成できます。いくつかのノードの例を次に示します (質問のサンプル ゲームを使用)。
- 始める
- nodeText: "左右に分岐する回廊にいます"
- 選択肢:
- 「左」 -> Door_no_key
- "右" -> Dead_end_no_key
- Door_no_key
- nodeText: "ここにドアがありますが、鍵を持っていません"
- 選択肢:
- 「右」 ->開始
- Dead_end_no_key
- nodeText: "ここは行き止まりです。ここに鍵があります!"
- 選択肢:
- 「キーを取得」 -> Dead_end_key
- 「左」→スタート
- Dead_end_key
- nodeText: "ここは行き止まりです。あなたは鍵を持っています。"
- 選択肢:
- 「左」 -> Start_key
等々。プレイヤーの状態を追跡すると、ゲーム デザインがすぐに手に負えなくなることがわかります。そのため、深刻な IF ゲームには IF ツールをお勧めします。しかし、これはプログラミングのポインターについて独学するには良い方法かもしれません。