Welche Netzwerkmöglichkeiten gibt es mit XNA und Xbox 360?


11

Ich weiß, dass XNA für Xbox 360 nur eingeschränkten Zugriff auf Netzwerke hat. Es wird gemunkelt, dass nur die Kommunikation über ein Microsoft-Protokoll mit anderen Xbox 360-Geräten möglich ist.

Welche Netzwerkmöglichkeiten bietet XNA? Wie viele Xbox 360-Geräte können mit demselben Subnetz verbunden werden? Maximal 16? Kann eine Xbox Daten an eine andere Xbox im Subnetz senden, z. B. Peer-to-Peer-Kommunikation? Kann eine Xbox auch auf Windows-PCs mit XNA kommunizieren? Gibt es andere Geräte, mit denen Sie kommunizieren können?

Und was ist mit Spieleservern? Können Sie Ihren eigenen Multiplayer-Spieleserver einrichten und Xbox's mit ihm verbinden und frei kommunizieren? Auf welcher Plattform würden Sie den Spielservercode schreiben? C ++ unter Unix? Wie viele Xbox-Einheiten können gleichzeitig eine Verbindung zu einem Server herstellen? Wenn Sie keinen eigenen Spieleserver einrichten können, gibt es inoffizielle "Hacks", mit denen Indie-Entwickler einen Spieleserver entwickeln und ausführen können?

Da ich kein Xbox-Entwickler bin (dh kein 10000-Dollar-Devkit besitze), kann ich keine C ++ - Bibliotheken wie Zoidcom verwenden .

Antworten:


10

Datenübertragung über LAN oder Internet

Beim Erstellen eines vernetzten Spiels mit XNA Game Studio stehen zwei Arten von Online-Multiplayer-Spielen zur Verfügung:

  1. System Link Game Sessions (LAN)
  2. LIVE-Sitzungen. (Internet)

Sitzungstypen verfügbar:

  1. Verwenden Sie System Link für das lokale Netzwerk-Gameplay
  2. Melden Sie sich bei Xbox LIVE und Games for Windows - LIVE Servern an
  3. Verwenden Sie LIVE, um während der Entwicklung des Spiels über das Internet eine Verbindung zu anderen Computern herzustellen

Die Datenübertragung zwischen verbundenen Xbox- und PC-Einheiten wird mithilfe der LocalNetworkGamer-Klasse (auf Xbox 360 unterstützt) implementiert, und die Daten werden mit einem PacketWriter wie folgt geschrieben:

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);

}

Netzwerktopologien

Für ein Systemverbindungsspiel können Sie eine der folgenden Hardwarekonfigurationen verwenden , um ein vernetztes Spiel zu testen:

  • Ein Entwicklungscomputer und eine Xbox 360
    (eine Instanz des Spiels wird auf dem Entwicklungscomputer und eine auf der Xbox 360 ausgeführt). Der Ersteller benötigt eine Xbox LIVE Silver- und eine Creators Club-Mitgliedschaft, um Code auf der Xbox 360 auszuführen.

  • Ein Entwicklungscomputer und ein Clientcomputer
    (auf jedem Computer wird eine Instanz des Spiels ausgeführt). Ersteller können nicht zwei vernetzte XNA Framework-Spiele gleichzeitig auf demselben Computer ausführen. Entwickler benötigen eine zweite Maschine, um eine zweite Spielinstanz zu Testzwecken auszuführen. Für dieses Szenario sind keine Xbox LIVE-Mitgliedschaften oder Creators Club-Mitgliedschaften erforderlich.

  • Ein Entwicklungscomputer und zwei Xbox 360-Konsolen
    (auf jeder Xbox 360 wird eine Instanz des Spiels ausgeführt). Hier stellt ein Entwickler das Spiel auf zwei Xbox 360 bereit und debuggt es. Der Ersteller benötigt für dieses Szenario mindestens zwei Xbox LIVE Silver-Mitgliedschaften und zwei Creators Club-Mitgliedschaften (ein Paar für jede Xbox 360).

Sprachübertragung über das Netzwerk

Sprachdaten werden automatisch übertragen und ohne Titelaufwand wiedergegeben. Titel können dies verwenden, um Team-Chat oder Proximity-Voice zu implementieren.

Das XNA Framework bietet keinen direkten Programmzugriff auf den Sprachdatenstrom.

  • Haben sie Sprachzugang? - NetworkGamer.HasVoice
  • Sprechen sie gerade? - NetworkGamer.IsTalking
  • Sind sie stumm geschaltet? - NetworkGamer.IsMutedByLocalUser

4

XNA Games on 360 verwenden und müssen verwendet werden Live- was, wie ich mich erinnere, bedeutet, dass die maximale Anzahl von Benutzern pro "Spiel" 32 beträgt und Sie überhaupt keine Verbindung zu externen Diensten herstellen können.


Update 1: Formularbeitrag zur Bestätigung der maximalen Anzahl von 32 Spielern - http://forums.create.msdn.com/forums/t/27446.aspx


Update 2: Es sollte beachtet werden, XNA on Windows != (XNA on Xbox | XNA on Windows Phone)dass XNA unter Windows alles kann, was jede andere .NET-Anwendung kann. Auf Xbox und WP7 ist XNA auf die Verwendung der Xbox Live Gaming Services beschränkt.

MSDN-Dokumentation auf Xbox Live und XNA - http://msdn.microsoft.com/en-us/library/bb975642.aspx


Auf derselben Forenseite: "Für mich verwende ich System.Net als Basis für meine Netzwerkkomponente. Ich mag, wie es auf niedriger Ebene genug ist, um mir Dinge wie" Socket "," Bind () ", usw. Aber Sie können auch jede andere Netzwerkbibliothek verwenden, es
hängt vom

1
Ihre Verwirrung ist verständlich, aber unter Windows XNA kann jede Netzwerkkomponente verwendet werden, da unter Windows XNA nur .NET-Code vorhanden ist. Auf Xbox müssen Sie jedoch Live verwenden, da die Xbox-Implementierung von .NET Framework außer dem Live-Gaming-Netzwerk keine Netzwerkimplementierung enthält.
Nate

2
XNA Games on 360 use and are required to use Live- Absolut falsch. MSDN selbst bestätigt, dass Xbox 360-Spiele System Link (LAN) oder LIVE-Spieleserver für das Multiplayer-Gameplay verwenden können. Sehr uninformierte Antwort. Öffnen Sie den MSDN-Artikel, den Sie verlinkt haben, und gehen Sie zum Abschnitt "XNA Creators Club- und Xbox LIVE-Mitgliedschaftsanforderungen" und lesen Sie den ersten Absatz.
Robinicks

Ich ging davon aus, dass es sich um ein internetbasiertes Spiel handelte. da nach meiner Erfahrung die Systemverbindung im LAN ein sehr seltenes Szenario ist ...
Nate

Das ist eine merkwürdige Annahme, da der Zweck meiner Frage darin bestand, nach Möglichkeiten zu fragen, und Ihre Antwort ein ganzes Feld offener Möglichkeiten in der Vernetzung geschlossen hat. Zum Glück habe ich dir nicht sofort geglaubt und für mich selbst recherchiert. Andernfalls würden viele von uns glauben, dass Xbox 360 praktisch keine Netzwerkfunktionen außer Kommunikation mit LIVE-Servern hat.
Robinicks
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.