Передача данных через локальную сеть или Интернет
Существует два типа многопользовательских онлайн-игр при создании сетевой игры с XNA Game Studio:
- Системные ссылки игровых сессий (LAN)
- ЖИВЫЕ сессий. (Интернет)
Типы сессий доступны:
- Используйте System Link для локальной игры
- Войдите в Xbox LIVE и Игры для Windows - LIVE Servers
- Используйте LIVE для подключения к другим машинам через Интернет, пока игра находится в разработке
Передача данных между подключенными устройствами Xbox и ПК осуществляется с использованием класса 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);
}
Сетевые топологии
Для игры с системной связью вы можете использовать любую из следующих конфигураций оборудования для тестирования сетевой игры:
Один компьютер для разработки и один Xbox 360
(один экземпляр игры на компьютере разработчика и один на Xbox 360). Создателю требуется один член Xbox LIVE Silver и одно членство в Клубе авторов, чтобы запустить код на Xbox 360.
Один компьютер разработчика и один клиентский компьютер
(один экземпляр игры на каждом компьютере). Создатели не могут запускать две сетевые игры XNA Framework одновременно на одном компьютере. Создателям нужна вторая машина для запуска второго игрового экземпляра в целях тестирования. Для этого сценария не требуется членство в Xbox LIVE или членство в Клубе создателей.
Один компьютер для разработки и две консоли Xbox 360
(по одному экземпляру игры на каждом Xbox 360). Здесь создатель развертывает и отлаживает игру на двух Xbox 360. Для этого сценария создателю необходимо как минимум два членства в Xbox LIVE Silver и два членства в Клубе создателей (по одной паре на каждый Xbox 360).
Передача голоса по сети
Голосовые данные автоматически передаются и воспроизводятся без каких-либо усилий по названию. Названия могут использовать это, чтобы реализовать командный чат или голос близости.
Платформа XNA Framework не предоставляет прямого доступа программы к потоку голосовых данных.
- Есть ли у них голосовой доступ? - NetworkGamer.HasVoice
- Они сейчас разговаривают? - NetworkGamer.IsTalking
- Они приглушены? - NetworkGamer.IsMutedByLocalUser