LANまたはインターネットを介したデータ転送
XNA Game Studioでネットワーク化されたゲームを作成する場合、2種類のオンラインマルチプレイヤーゲームを利用できます。
- システムリンクゲームセッション(LAN)
- LIVEセッション。(インターネット)
利用可能なセッションタイプ:
- ローカルエリアネットワークのゲームプレイにシステムリンクを使用する
- Xbox LIVEおよびGames for Windows-LIVEサーバーにサインインする
- ゲームの開発中に、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