このサンプルは、昔ながらのテキストベースのアドベンチャー ゲームから着想を得たシンプルなマルチプレイヤー テキスト アドベンチャー ゲームです。
インストラクション
- サンプル ブラウザー エクスペリエンスで Orleans Text Adventure Game に移動します。
- [ コードの参照 ] を選択してソース コードを表示します。
- ソース コードを複製し、ソリューションをビルドします。
- 最初に AdventureServer を起動し、次に AdventureClient を起動します。
- その後、コマンド ラインに自分の名前を入力するように求められます。 それを入力してゲームを開始します。
詳細については、 サンプルのビルドを参照してください。
概要
AdventureServer プログラムは、AdventureMap.json ファイルの読み取りから開始します。
森、ビーチ、洞窟、クリアリングなどの一連の「部屋」を設定します。これらの場所は、ゲームの場所とレイアウトをモデル化するために他の部屋に接続します。 サンプル構成では、いくつかの場所についてのみ説明します。
部屋には、キー、剣などの "モノ" を含めることができます。
AdventureClient プログラムはプレーヤーをセットアップし、ゲームをプレイできる単純なテキストベースのユーザー インターフェイスを提供します。
「北へ行く」や「真鍮の鍵を取る」などと言って、簡単なコマンド言語を使って部屋を移動したり、操作したりできます。
なぜ Orleans?
Orleans では、非常に単純な C# コードを使用してゲームを記述し、大規模なマルチプレイヤー ゲームにスケーリングできるようにします。 この動機が意味を持つには、部屋の迷路は非常に大きく、多くの同時プレイヤーをサポートする必要があります。 Orleansの 1 つの価値は、サービスを拡張できるように設計できることです。小規模で実行するオーバーヘッドは大きくなく、必要に応じてスケーリングできることを確信できます。
どのようにモデル化されていますか?
プレイヤーとルームはグレインとしてモデル化されます。 これらのグレインを使用すると、各グレイン モデリングの状態と機能を使用して、ゲームを配布できます。
キーなどのものは、プレーンな古いオブジェクトとしてモデル化されています。これらは、部屋やプレイヤー間を移動する単純な不変のデータ構造です。彼らは穀物である必要はありません。
考えられる改善点
- マップをはるかに大きくします。
- 真鍮のキーで何かを解錠するようにします。
- プレイヤーが互いにメッセージを送信できるようにします。
- 食べ物や飲料水を食べることを可能にし、意味のあるものにします。
.NET