Transferência de dados pela LAN ou Internet
Existem dois tipos de jogos multiplayer online disponíveis quando você cria um jogo em rede com o XNA Game Studio:
- Sessões de jogos de link do sistema (LAN)
- Sessões LIVE. (Internet)
Tipos de sessão disponíveis:
- Use o link do sistema para jogar na rede local
- Entre no Xbox LIVE e Games for Windows - LIVE Servers
- Use o LIVE para conectar-se a outras máquinas pela Internet enquanto o jogo estiver em desenvolvimento
A transferência de dados entre as unidades Xbox e PC conectadas é implementada usando a classe LocalNetworkGamer (suportada no Xbox 360) e os dados são gravados usando um PacketWriter da seguinte maneira:
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);
}
Topologias de rede
Para um jogo de link do sistema, você pode usar qualquer uma das seguintes configurações de hardware para testar um jogo em rede:
Um computador de desenvolvimento e um Xbox 360
(executando uma instância do jogo no computador de desenvolvimento e outra no Xbox 360). O criador precisa de uma associação do Xbox LIVE Silver e de um clube do criador para executar o código no Xbox 360.
Um computador de desenvolvimento e um computador cliente
(executando uma instância do jogo em cada computador). Os criadores não podem executar dois jogos do XNA Framework em rede ao mesmo tempo no mesmo computador. Os criadores precisam de uma segunda máquina para executar uma segunda instância do jogo para fins de teste. Não são necessárias associações ao Xbox LIVE ou associações ao Creators Club para este cenário.
Um computador de desenvolvimento e dois consoles Xbox 360
(executando uma instância do jogo em cada Xbox 360). Aqui, um criador implanta e depura o jogo em dois Xbox 360s. O criador precisa de pelo menos duas associações do Xbox LIVE Silver e duas associações do Creators Club (um par para cada Xbox 360) para esse cenário.
Transferência de voz pela rede
Os dados de voz são automaticamente transmitidos e reproduzidos sem nenhum esforço de título. Os títulos podem usar isso para implementar o bate-papo em equipe ou a voz de proximidade.
O XNA Framework não expõe o acesso direto do programa ao fluxo de dados de voz.
- Eles têm acesso por voz? - NetworkGamer.HasVoice
- Eles estão conversando no momento? - NetworkGamer.IsTalking
- Eles estão silenciados? - NetworkGamer.IsMutedByLocalUser