XNA和Xbox 360的networking可能性是什么?

我知道Xbox 360对于Xbox 360的networking访问有限,据传只能通过微软协议与其他Xbox 360设备进行通信。

XNA提供的networking可能性是什么? 多less个Xbox 360单元可以连接到同一个子网? 最大16? 任何Xbox都可以将数据发送到子网上的任何其他Xbox,如点对点通信? Xbox能否与Windows PC上的XNA进行通信? 有没有其他的设备可以和你沟通?

那么游戏服务器呢? 你可以设置自己的多人游戏服务器,并让Xbox连接到它并自由沟通? 你会在哪个平台编写游戏服务器代码? Unix上的C ++? 一次可以连接多less台Xbox服务器? 如果你不能设置你自己的游戏服务器是否有非官方的“黑客”,使独立开发者开发和运行游戏服务器?

由于我不是Xbox开发者(也就是说,我没有一个10000美元的开发工具包),我不能像Zoidcom那样使用C ++库。

通过LAN或Internet进行数据传输

当您使用XNA Game Studio创建networking游戏时,有两种types的在线多人游戏可用:

  1. 系统链接游戏会话(LAN)
  2. 现场会议。 (互联网)

会话types可用:

  1. 使用System Link进行局域网游戏
  2. login到Xbox LIVE和游戏的Windows – 实时服务器
  3. 在游戏开发过程中,使用LIVE通过Internet连接到其他机器

连接的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); } 

networking拓扑

对于系统链接游戏,您可以使用以下任何一种硬件configuration来testingnetworking游戏:

  • 一台开发电脑和一台Xbox 360
    (在开发计算机上运行一个游戏实例,在Xbox 360上运行一个游戏实例)。 创作者需要一个Xbox LIVE Silver和一个创作者俱乐部会员才能在Xbox 360上运行代码。

  • 一台开发电脑和一台客户电脑
    (在每台计算机上运行一个游戏实例)。 创作者不能在同一台计算机上同时运行两个联网的XNA Framework游戏。 创作者需要第二台机器来运行第二个游戏实例进行testing。 此场景中不需要Xbox LIVE成员身份或创建者俱乐部成员身份。

  • 一台开发电脑和两台Xbox 360游戏机
    (在每个Xbox 360上运行游戏的一个实例)。 这里创建者在两个Xbox 360上部署和debugging游戏。 创作者至less需要两个Xbox LIVE银牌会员资格和两个创作者俱乐部会员资格(每个Xbox 360一对)。

networking语音传输

语音数据自动传输和重播,无需任何标题努力。 标题可以使用它来实现团队聊天或邻近语音。

XNA框架不公开直接程序访问语音数据stream。

  • 他们有语音访问吗? – NetworkGamer.HasVoice
  • 他们正在说话吗? – NetworkGamer.IsTalking
  • 他们是无声的? – NetworkGamer.IsMutedByLocalUser

XNA游戏在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)上的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/zh-cn/library/bb975642.aspx