2008-09-05 18 views
6

Ich entwickle ein Online-Strategiespiel mit .Net v2. Obwohl das Spiel hauptsächlich strategisch ist, hat es einige taktische Elemente, die eine vernünftige Netzwerkleistung erfordern. Ich plane, TCP-Pakete für strategische Daten und UDP-Pakete für taktische Daten zu verwenden.C# Spiel Netzwerkbibliothek

{EDIT} Ich habe vergessen zu erwähnen, dass ich mich aus verschiedenen Gründen von WCF und .NET 3+ lehne. Erstens, weil ich meinen Download klein halten möchte und die meisten meiner Kunden bereits .NET 2.0 haben. Zweitens, weil ich die Möglichkeit haben möchte, auf Mac und Linux zu portieren, und mich nicht sicher bin, ob WCF in Mono verfügbar ist. {/ EDIT}

Ich bin auf der Suche nach Netzwerkbibliothek Empfehlungen.

http://www.opentnl.org/ http://www.jenkinssoftware.com/ http://code.google.com/p/lidgren-network/

Hat jemand Echt: Ich habe ein paar Möglichkeiten, wie Garagegames Torque Network Library (C++), RakNet (C++), und der Lidgren Netzwerk-Bibliothek (C#) gefunden Welterfahrung mit diesen oder anderen Bibliotheken?


Ich stolperte auf RakNetDotNet:

http://code.google.com/p/raknetdotnet/

Diese könnte sein, was ich suche ...

Antwort

1

Warum sich .NET 2.0 begrenzen. .NET 3.0 (oder 3.5) enthält WCF und ist ein solides, performantes Kommunikationssubsystem mit guter Sicherheit. .NET 3.0 ist nur .NET 2.0 mit zusätzlichen Bibliotheken (WCF, WF, WPF).

5

Microsofts eigene .NET basierte XNA können Sie vernetzte Spiele auf Windows und XBox 360.

+2

Laut [wiki] (http://en.wikipedia.org/wiki/Microsoft_XNA#License_Agreement): * "Die Microsoft XNA Framework 2.0 EULA verbietet ausdrücklich die Verteilung von kommerziellen Netzwerk-Spiele, die mit Xbox Live und/oder verbinden Games for Windows Live in Abwesenheit einer spezifischen Vereinbarung, die sowohl vom Entwickler als auch von Microsoft unterzeichnet wurde. "* –

2

ich, dass „Games for Windows“ beachten möchten auch schaffen, die XNA auf Fenster mit Live nutzt! APIs Vernetzung ist jetzt frei ... was bedeutet, dass, wenn Sie ein XNA-Spiel schreiben, die die Netzwerk-Funktionen, die Benutzer verwendet nicht eine Gold-Mitgliedschaft :-)

http://www.engadget.com/2008/07/22/games-for-windows-live-now-free/

+0

Laut [wiki] (http://en.wikipedia.org/wiki/Microsoft_XNA#License_Agreement): *" Das Microsoft XNA Framework 2.0 EULA verbietet ausdrücklich den Vertrieb kommerzieller Netzwerkspiele, die mit Xbox Live und/oder Games for Windows Live verbunden sind, wenn keine spezielle Vereinbarung zwischen dem Entwickler und Microsoft vorliegt. "* - Ist das nicht mehr der Fall? –

+0

leider ist es immer noch mein Wissen :-(Ich wünschte wirklich, sie würden die Geschichte darüber aufklären –

0

Wenn Sie haben, haben‘ Wieder neu in der Spieleentwicklung, würde ich XNA empfehlen - es ist einfach zu programmieren. Der Vorteil von Torque ist jedoch, dass es Tools zur Erstellung von Assets gibt, die ebenfalls von unschätzbarem Wert sein können. Für ein höheres Endspiel oder FPS ist die Source-Engine großartig.

0

Sie könnten einen Blick auf Entanglar (http://entanglar.dunnchurchill.com) werfen, wenn Sie nach etwas höherem Niveau suchen. Entanglar bietet vollständigen Entity-Lebenszyklus und Synchronisierung.

1

Obwohl diese Frage eher alt ist, ist ein etwas höheres Level-System speziell für Spiele entwickelt APlay - unter den unterstützten Plattformen ist auch C#. Es gibt Testversionen und es ist kostenlos für den persönlichen Gebrauch.

Sie definieren Ihre Spielobjekte auf UML-ähnliche Weise und ein Online-Code-Generator erstellt Assemblys, die Ihre Spielobjekte enthalten. Das Senden von Statusaktualisierungen ist dann so einfach wie das Aufrufen von Setter-Methoden.

Nicht das Richtige, wenn Sie selbst mit Sockeln umgehen wollen. Bitte beachte auch, dass ich ein Entwickler von APlay bin, also ist dies eine voreingenommene Antwort.

4

http://code.google.com/p/lidgren-network-gen3/

Lidgren.Network ist ein Netzwerkbibliothek für .NET Framework, die eine einzelne UDP-Sockets verwendet für den Anschluss eines Client einen Server, Lesen und Senden von Nachrichten eine einfache API zu liefern.

0

Eine uralte Frage, aber ich werde das für irgendjemanden veröffentlichen, der darüber stolpert. Wir verwenden OpenTNL für unser Spiel Bitfighter und ich bin immer wieder überrascht, wie gut es funktioniert. Und es ist kostenlos, wenn Sie mit GPL leben können.