テキストベースのMUDを作成しようとしているので、XNAフレームワークの要素の多くは、必要なものに適しているように見えます。特に一般的なゲームループ、ネットワーキングなどのようなものです。XNAはUIとオーディオを備えたインタラクティブな環境に密接に結合されているようです。そのため、適切な方法かどうかはわかりません。
これらの種類の側面を自分で再作成する方が簡単ですか、XNAフレームワークを必要なものに曲げようとするのですか、それともこのタイプの作業に適したフレームワークはありますか?
テキストベースのMUDを作成しようとしているので、XNAフレームワークの要素の多くは、必要なものに適しているように見えます。特に一般的なゲームループ、ネットワーキングなどのようなものです。XNAはUIとオーディオを備えたインタラクティブな環境に密接に結合されているようです。そのため、適切な方法かどうかはわかりません。
これらの種類の側面を自分で再作成する方が簡単ですか、XNAフレームワークを必要なものに曲げようとするのですか、それともこのタイプの作業に適したフレームワークはありますか?
回答:
XNAフレームワークが、テキストベースのゲームのサーバー側で多くの使用を提供することはないと思います。そのユースケースの標準.NETフレームワーククラスライブラリを確認する必要があります。
しかし、質問を少し広げると、XNAフレームワークは実際にはクライアント側の2Dおよび3Dゲーム開発を対象としていますが、2Dまたは3Dゲームのサーバー側でそれらの一部を使用する原因がある可能性があります。サーバーはクライアントと同じように可視性や衝突テストなどを行う必要があるため、サーバーでグラフィックエンジンの一部を再利用するのが一般的です。そのシナリオで、エンジンがXNAの数学ライブラリを使用している場合は、サーバーコードでもリンクする必要があります。
C#を使用している場合は、WCFを使用してネットワーク層を抽象化することを検討する必要があります。相対的に言えば、MUDにはネットワークトラフィックがそれほど多くないので、このルートを使用すると、処理が非常に簡単になります。私はターンベースの戦略ゲームにWCFを使用してきましたが、それはかなりうまくいきました。
telnet
は、より堅牢なAPI(WCF上に構築されたものなど)の上にインターフェイスをレイヤーにすることが理にかなっています。
XNAルートにアクセスして、必要な特定の要素(オーディオ、ネットワークなど)を使用できます。しかし、それはプロジェクトの複雑さを増し、コードベースの「即時の理解」を減少させます。
基本的に、ミドルウェアを追加すると、ミドルウェアの実装を詳しく調べない限り、コードが実際に動作する方法に関する知識が減少します。距離を置くと、効率、能力、理解が失われます。
したがって、上記のように、C#と適切な非XNAライブラリーを使用する方がはるかに有益です。
あなた自身の啓発のためにこれをしているなら、あなたはその地域に興味があるところにあなた自身を転がすこともできます-あなたはこの方法でより多くを学ぶでしょう。
頑張れ!楽しんで!
それはあなたの要件に大きく依存します。
オーディオ、友人の招待などのサポートに興味がある場合は、XNAが適していると思います。
ネットワーキングにXNAを使用する際に直面する主な制限は、ゲームあたり32プレイヤーというプレイヤー制限です。
XNAフレームワークを使用してゲームを開発する場合、すべてのさまざまなAPIに結合する必要はありません。多くの人々はXNAフレームワークを使用していますが、ネットワーキングは他のフレームワークに依存しています。
私の提案は、物理的に(メモ帳などでそれらを書き留めて)ネットワークの側面についてのニーズと要望をリストすることです。次に、さまざまなフレームワークを比較対照します。
私は「ゼロから作成する」と言いがちですが、それはC#とMUDのコードを別々に処理したことに基づいた単なる直感です。とにかく、XNAから使用できる可能性のあるものの独自のバージョンをロールすることで、より多くの制御が可能になり、より多くを学ぶことができます。
少なくとも参考までに、既存のMUDエンジンを使用しない理由はありますか?
telnet
接続をサポートしていません。通常のテキストベースのMUDの場合、ユーザーがtelnet
サーバーにアクセスできるようにすることは当然です。