Multiplayer: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Greitschus (Diskussion | Beiträge)
Multiplayer mit der Lidgren Bibliothek: Changed LidGren link to new version.
Greitschus (Diskussion | Beiträge)
Zeile 2: Zeile 2:
Da die Implementierung von Netzwerkfunktionalität für Multiplayer-Unterstützung nicht ganz trivial umzusetzen ist wird sie gern als optionales Feature für die spätere Entwicklung angedacht. Das Problem hierbei ist, dass Netzwerkfunktionalität einen entscheidenden Einfluss auf die gesamte Architektur hat. Wenn Netzwerkfunktionalität geplant ist sollte diese daher von vornherein als festes Feature eingeplant werden.
Da die Implementierung von Netzwerkfunktionalität für Multiplayer-Unterstützung nicht ganz trivial umzusetzen ist wird sie gern als optionales Feature für die spätere Entwicklung angedacht. Das Problem hierbei ist, dass Netzwerkfunktionalität einen entscheidenden Einfluss auf die gesamte Architektur hat. Wenn Netzwerkfunktionalität geplant ist sollte diese daher von vornherein als festes Feature eingeplant werden.


Wenn man sich dafür entscheided Netzwerkfunktionalität zu implementieren, sollte man wissen dass es für das XNA Framework zwei grundlegend verschiedene Möglichkeiten gibt:
Wenn man sich dafür entscheidet, Netzwerkfunktionalität zu implementieren, sollte man wissen, dass es für das XNA Framework zwei grundlegend verschiedene Möglichkeiten gibt:
* Man kann die Netzwerk-Funktionalitäten Nutzen die das XNA-Framework zur Verfügung stellt. Hierzu sollte man folgende [http://blogs.msdn.com/xna/archive/2007/11/16/xna-framework-networking-and-live-requirements.aspx Fakten zu XNA Framework Networking and LIVE Requirements] kennen und findet dann alle weiteren Informationen, sowie auch Tutorials, in den [http://msdn.microsoft.com/en-us/library/bb975801.aspx Networking Seiten zu XNA 3.0 in der MSDN]. Auch der Education Catalog des XNA Creators Club verfügt über eine [http://creators.xna.com/en-US/education/catalog/?contenttype=0&devarea=19&sort=1 Sektion mit Samples zu Networking].
* Man kann die Netzwerk-Funktionalitäten Nutzen, die das XNA-Framework zur Verfügung stellt. Hierzu sollte man folgende [http://blogs.msdn.com/xna/archive/2007/11/16/xna-framework-networking-and-live-requirements.aspx Fakten zu XNA Framework Networking and LIVE Requirements] kennen und findet dann alle weiteren Informationen, sowie auch Tutorials, in den [http://msdn.microsoft.com/en-us/library/bb975801.aspx Networking Seiten zu XNA 3.0 in der MSDN]. Auch der Education Catalog des XNA Creators Club verfügt über eine [http://creators.xna.com/en-US/education/catalog/?contenttype=0&devarea=19&sort=1 Sektion mit Samples zu Networking].
* Wenn man die Einschränkungen der ersten Möglichkeit nicht hinnehmen will und/oder nicht mit ''Xbox LIVE'' bzw. ''Games for Windows® - LIVE'' arbeiten möchte, so kann man mit [[.NET]] eigene Netzwerkfunktionalität programmieren oder versuchen eine .NET Network-Library zu integrieren. Auch wenn man bei dieser Alternative mehr flexibilität erreichen kann ist das definitiv die schwerere Variante. Mögliche Einstiegspunkte in das Thema:
* Wenn man die Einschränkungen der ersten Möglichkeit nicht hinnehmen will und/oder nicht mit ''Xbox LIVE'' bzw. ''Games for Windows® - LIVE'' arbeiten möchte, so kann man mit [[.NET]] eigene Netzwerkfunktionalität programmieren oder versuchen eine .NET Network-Library zu integrieren. Auch wenn man bei dieser Alternative mehr flexibilität erreichen kann, ist das definitiv die schwerere Variante. Mögliche Einstiegspunkte in das Thema:
** Der [http://msdn.microsoft.com/de-de/library/system.net.sockets.aspx System.Net.Sockets - Namespace des .NET Frameworks 3.5]
** Der [http://msdn.microsoft.com/de-de/library/system.net.sockets.aspx System.Net.Sockets - Namespace des .NET Frameworks 3.5]
** Die [http://code.google.com/p/lidgren-network/ Lidgren networking library]  
** Die [http://code.google.com/p/lidgren-network/ Lidgren networking library]  
Zeile 12: Zeile 12:
Auf Server Seite:
Auf Server Seite:
* Socket öffnen & Clientverbindungen annehmen
* Socket öffnen & Clientverbindungen annehmen
* Daten gemäß Protokoll transportieren
* Daten gemäß einem definierten Protokoll transportieren


Auf Client Seite:
Auf Client Seite:
* Mit Server Socket verbinden
* Mit Server Socket verbinden
* Daten gemäß Protokoll transportieren
* Daten gemäß einem definierten Protokoll transportieren
 


== Multiplayer mit der [http://code.google.com/p/lidgren-network-gen3/ Lidgren] Bibliothek ==
== Multiplayer mit der [http://code.google.com/p/lidgren-network-gen3/ Lidgren] Bibliothek ==