XNA和Xbox 360可以联网吗?


11

我知道Xbox 360的XNA只能访问网络,据传它仅允许通过Microsoft协议与其他Xbox 360进行通信。

XNA提供哪些联网可能性?多少个Xbox 360单元可以连接到同一子网?最多16个?任何Xbox都可以像对等通信一样将数据发送到子网上的任何其他Xbox?Xbox也可以与Windows PC上的XNA通信吗?您还可以与其他设备通信吗?

那游戏服务器呢?您可以设置自己的多人游戏服务器并让Xbox与之连接并自由通信吗?您将在哪个平台上编写游戏服务器代码?Unix上的C ++?一次可以有多少Xbox单元连接到服务器?如果您无法设置自己的游戏服务器,是否有非官方的“黑客”使独立开发人员能够开发和运行游戏服务器?

由于我不是Xbox开发人员(即,我没有10000美元的devkit),所以我不能使用Coid库,例如Zoidcom

Answers:


10

通过LAN或Internet进行数据传输

使用XNA Game Studio创建网络游戏时,有两种类型的在线多人游戏

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

可用的会话类型

  1. 使用系统链接进行局域网游戏
  2. 登录Windows的Xbox LIVE和游戏-LIVE服务器
  3. 在游戏开发过程中,使用LIVE通过Internet连接到其他计算机

使用LocalNetworkGamer类(Xbox 360支持)在连接的Xbox和PC单元之间进行数据传输,并使用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和一个Creators Club成员身份才能在Xbox 360上运行代码。

  • 一台开发计算机和一台客户端计算机
    (在每台计算机上运行一个游戏实例)。创建者不能在同一台计算机上同时运行两个联网的XNA Framework游戏。创建者需要第二台机器来运行第二个游戏实例以进行测试。在这种情况下,不需要Xbox LIVE成员身份或Creators Club成员身份。

  • 一台开发计算机和两个Xbox 360控制台
    (在每个Xbox 360上运行一个游戏实例)。在这里,创建者在两个Xbox 360上部署和调试游戏。在这种情况下,创建者至少需要两个Xbox LIVE Silver成员和两个Creators Club成员(每个Xbox 360一对)。

网络语音传输

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

XNA Framework不会公开程序对语音数据流的直接访问。

  • 他们有语音访问权吗?-NetworkGamer.HasVoice
  • 他们目前在说话吗?-NetworkGamer.IsTalking
  • 他们被静音了吗?-NetworkGamer.IsMutedByLocalUser

4

XNA Games可以使用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 Gaming Services。

Xbox Live和XNA上的MSDN文档-http: //msdn.microsoft.com/zh-cn/library/bb975642.aspx


在同一论坛页面上:“对我来说,我将System.Net用作网络组件的构建基础。我喜欢它的底层功能如何为我提供诸如“ socket”,“ bind()”之类的东西,等等。但是您也可以使用任何其他网络库,这取决于个人的口味。:)“
Robinicks 2010年

1
您的困惑是可以理解的,但是在Windows XNA上可以使用任何网络组件,因为在Windows XNA上只是.NET代码。但是,在Xbox上,您被迫使用Live,因为Xbox的.NET Framework实现不包含Live游戏网络以外的任何网络实现。
Nate

2
XNA Games on 360 use and are required to use Live-绝对错 MSDN本身确认Xbox 360游戏可以使用系统链接(LAN)或LIVE游戏服务器进行多人游戏。高度不知情的答案。打开您链接的非常MSDN文章,然后转到“ XNA Creators Club和Xbox LIVE成员资格要求”部分,并阅读第一段。
罗宾尼克斯(Robinicks)2010年

我假设问题是关于基于Internet的游戏的。根据我的经验,LAN上的系统链接是非常罕见的情况……
Nate

这是一个奇怪的假设,因为我的问题的目的是寻求可能性,而您的答案则关闭了网络中所有可能的开放领域。幸运的是,我不立即相信您,而是为自己进行了研究。否则,我们很多人会认为Xbox 360除了与LIVE服务器通信外几乎没有网络功能。
罗宾尼克斯(Robinicks)2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.