XNAおよびXbox 360でのネットワークの可能性は何ですか?


11

Xbox 360のXNAはネットワーキングへのアクセスが制限されており、他のXbox 360ユニットへのマイクロソフトのプロトコルを介した通信のみを許可すると噂されています。

XNAが提供するネットワークの可能性は何ですか?同じサブネットにXbox 360ユニットをいくつ接続できますか?最大16ですか?Xboxはピアツーピア通信のようにサブネット上の他のXboxにデータを送信できますか?XboxはWindows PCのXNAと通信できますか?通信できる他のデバイスはありますか?

そして、ゲームサーバーはどうですか?独自のマルチプレイヤーゲームサーバーをセットアップして、Xboxに接続して自由に通信させることはできますか?ゲームサーバーのコードはどのプラットフォームに記述しますか?Unix上のC ++?一度にいくつのXboxユニットがサーバーに接続できますか?独自のゲームサーバーをセットアップできない場合、インディーズの開発者がゲームサーバーを開発して実行できるようにする非公式の「ハック」はありますか?

私はXbox開発者ではない(つまり、$ 10000開発キットを所有していない)ため、ZoidcomなどのC ++ライブラリを使用できません。

回答:


10

LANまたはインターネットを介したデータ転送

XNA Game Studioでネットワーク化されたゲームを作成する場合、2種類のオンラインマルチプレイヤーゲームを利用できます。

  1. システムリンクゲームセッション(LAN)
  2. LIVEセッション。(インターネット)

利用可能なセッションタイプ

  1. ローカルエリアネットワークのゲームプレイにシステムリンクを使用する
  2. Xbox LIVEおよびGames for Windows-LIVEサーバーにサインインする
  3. ゲームの開発中に、LIVEを使用してインターネット経由で他のマシンに接続する

接続されたXboxとPCユニット間のデータ転送は、LocalNetworkGamerクラス(Xbox 360でサポート)を使用して実装され、データはPacketWriterを使用して次のように書き込まれます。

foreach (LocalNetworkGamer gamer in session.LocalGamers)
{
    // Get the tank associated with this player.
    Tank myTank = gamer.Tag as Tank;
    // Write the data.
    packetWriter.Write(myTank.Position);
    packetWriter.Write(myTank.TankRotation);
    packetWriter.Write(myTank.TurretRotation);
    packetWriter.Write(myTank.IsFiring);
    packetWriter.Write(myTank.Health);

    // Send it to everyone.
    gamer.SendData(packetWriter, SendDataOptions.None);

}

ネットワークトポロジー

システムリンクゲームの場合、次のハードウェア構成のいずれかを使用して、ネットワークゲームをテストできます

  • 1台の開発コンピューターと1台のXbox 360
    開発コンピューターで1つのゲームのインスタンスを実行し、Xbox 360で 1つのインスタンスを実行)。Xbox 360でコードを実行するには、作成者が1つのXbox LIVEシルバーと1つのCreators Clubメンバーシップを必要とします。

  • 1台の開発コンピューターと1台のクライアントコンピューター
    (各コンピューターでゲームの1つのインスタンスを実行)。クリエイターは、同じコンピューター上で同時に2つのネットワーク化されたXNA Frameworkゲームを実行することはできません。作成者は、テスト目的で2番目のゲームインスタンスを実行するために2番目のマシンを必要とします。このシナリオでは、Xbox LIVEメンバーシップやクリエーターズクラブのメンバーシップは必要ありません。

  • 1台の開発コンピューターと2台のXbox 360コンソール
    (各Xbox 360でゲームの1つのインスタンスを実行)。ここでは、クリエイターが2つのXbox 360にゲームを展開してデバッグします。このシナリオでは、クリエーターは少なくとも2つのXbox LIVEシルバーメンバーシップと2つのクリエーターズクラブメンバーシップ(Xbox 360ごとに1ペア)が必要です。

ネットワークを介した音声転送

音声データは自動的に送信され、タイトルを一切努力することなく再生されます。タイトルはこれを使用して、チームチャットまたは近接音声を実装できます。

XNA Frameworkは、音声データストリームへの直接プログラムアクセスを公開していません。

  • 音声でアクセスできますか?-NetworkGamer.HasVoice
  • 彼らは現在話していますか?-NetworkGamer.IsTalking
  • ミュートされていますか?-NetworkGamer.IsMutedByLocalUser

4

XNA Games on 360を使用しており、使用する必要がありますLive-私が覚えているように、「ゲーム」あたりの最大ユーザー数は32であり、外部サービスにまったく接続できません。


更新 1:32プレーヤーの最大を確認するフォームの投稿-http : //forums.create.msdn.com/forums/t/27446.aspx


更新2:XNA on Windows != (XNA on Xbox | XNA on Windows Phone) Windowsでは、XNAは他の.NETアプリケーションと同じことを何でもできることに注意してください。XboxおよびWP7の場合XNAは、Xbox Liveゲームサービスの使用に限定されています。

Xbox LiveおよびXNAに関するMSDNドキュメント-http ://msdn.microsoft.com/en-us/library/bb975642.aspx


同じフォーラムページ:「私にとっては、ネットワークコンポーネントの構築ベースとしてSystem.Netを使用しています。「socket」、「bind()」のようなものを提供できる十分な低レベルが好きです。など。しかし、他のネットワークライブラリを使用することもできます。個人の好み
次第

1
混乱は理解できますが、Windows XNAでは.NETコードにすぎないため、Windows XNAでは任意のネットワークコンポーネントを使用できます。ただし、Xboxでは.NET FrameworkのXboxの実装には、Liveゲームネットワーク以外のネットワーク実装が含まれていないため、Liveを使用する必要があります。
2010年

2
XNA Games on 360 use and are required to use Live-間違いです。MSDN自体は、Xbox 360ゲームがシステムリンク(LAN)またはLIVEゲームサーバーをマルチプレイヤーゲームプレイに使用できることを確認しています。非常に無知な答え。リンクしたMSDNの記事を開き、「XNAクリエーターズクラブとXbox LIVEメンバーシップの要件」セクションにアクセスして、最初の段落をお読みください。
Robinicks、2010年

私は質問がインターネットベースのゲームに関するものであると仮定しました。私の経験では、LAN上のシステムリンクは非常にまれなシナリオです...
Nate

私の質問の目的は可能性を尋ねることであり、あなたの答えはネットワーキングにおけるオープンな可能性の広い分野全体を締めくくったので、それは奇妙な仮定です。幸いなことに、私はあなたをすぐには信じなかったし、自分のために研究しました。それ以外の場合、Xbox 360にはLIVEサーバーとの通信を除いて、実質的にネットワーキング機能がないと私たちの多くは信じられません。
Robinicks、2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.