Netzwerkebenenbibliotheken [geschlossen]

12

Ich suche nach Netzwerkebenen, die verfügbar sind, um mein Spiel zu erweitern, entweder kostenlos oder zu fairen Preisen für Indie-Spiele.

Mit Netzwerkebenen meine ich eine Art Bibliothek, mit der ich eine Schnittstelle herstellen kann, mit der ich Nachrichten senden und von der ich Nachrichten empfangen kann, und die alle Informationen auf niedriger Ebene selbst handhabt.

Ich bin besonders auf der Suche nach:

  • Hochwertige Bibliotheken, die komplexe Dinge wie Netzwerkstaus verstehen und damit umgehen.
  • Skalierbare Bibliotheken, die es mir ermöglichen, viele Spieler zusammen zu spielen.
  • Vorzugsweise eine Peer-to-Peer-Lösung und keine serverbasierte.
  • Vorzugsweise eine Bibliothek mit Bindung für Hochsprachen (wie Java oder C #).

Ein Beispiel für das, wonach ich suche, ist Grapple , aber ich weiß, dass andere Bibliotheken verfügbar sind.

Eiche
quelle
Obwohl dieses Thema sehr hilfreich ist, ist es wahrscheinlich nicht für das Stackexchange-Format geeignet, da es wirklich um einen Funktionsvergleich verschiedener Bibliotheken und damit eine offene Diskussion geht.
Cameron Fredman

Antworten:

8

Ich habe das Bedürfnis, ENet zu dieser Liste hinzuzufügen . Zugegeben, es kommt nicht mit Bindungen zu anderen Sprachen, aber da es in C geschrieben ist, ist es trivial, Bindungen dafür zu erstellen.

Ich habe festgestellt, dass ENet robust, gut geschrieben und skalierbar ist und Peer-to-Peer-Spiele sehr gut beherrscht.

Blair Holloway
quelle
5

Wir haben RakNet eine Weile benutzt und es hat uns sehr gut gefallen. Andere Studios haben es positiv bewertet. http://www.jenkinssoftware.com/

Das Schöne an RakNet ist, dass es sich zum größten Teil um eine plattformübergreifende Plattform handelt. Wenn Sie also den Konsolenbereich betreten möchten, ist dies eine gute Möglichkeit.

Jeff
quelle
Ich mag, wie kostenlos es für Indy-Spiele ist
Oak
Ich habe auch RakNet verwendet und es ist ziemlich nett. Es ist nicht perfekt, aber die Samples sind gut, Sie haben vollen Zugriff auf die Quelle und die Indie-Lizenz ist sehr verzeihend.
Logan Kincaid
4

Ich habe mich für Zoidcom (C ++) entschieden, weil es gut gestaltet ist und hervorragende Dokumentation + Beispiele enthält:

Die Zoidcom-Netzwerkbibliothek ist eine UDP-basierte Netzwerkbibliothek auf hoher Ebene, die Funktionen für die automatische Replikation von Spielobjekten und die Synchronisierung ihrer Status über eine Netzwerkverbindung auf eine sehr bandbreiteneffiziente Weise bietet. Dies wird durch Multiplexen und Demultiplexen von Objektinformationen von und in Bitströme erreicht, wodurch das Senden redundanter Daten auf einfache Weise vermieden werden kann. Bools benötigen nur ein einziges Bit. Ganzzahlen und Gleitkommazahlen werden auf die benötigte Anzahl von Bits reduziert.

Ein Großteil der mühsamen Arbeit, die bei der Entwicklung eines effizienten Netzwerkprotokolls anfällt, wird von Zoidcom erledigt. So entscheidet Zoidcom, wann welche Daten an welchen Client gesendet werden sollen, wie diese effizient und zuverlässig über die Leitung übertragen werden sollen und was zu tun ist, wenn Daten eingehen verloren und vieles mehr.

Einige Open-Source-Spiele, die mit Zoidcom erstellt wurden:

Lizenz:

Zoidcom ist für den nichtkommerziellen Gebrauch frei verfügbar und wird dies auch bleiben. Kommerzielle Lizenzen und Shareware-Lizenzen sind auf Anfrage erhältlich. Die Veröffentlichung der offiziellen Lizenzen erfolgt mit Release 1.0.

Leftium
quelle
2

Wenn C # kein Problem ist, können Sie es auschecken Lidgren umsehen . Gegenwärtig ist es in der 3. Generation und beinhaltet (unter anderem):

  • MIT-Lizenz
  • Peer-to-Peer (NetClient / NetServer basieren auf NetPeer)
  • Lag Simulation
  • Paketverschlüsselung
  • Sehr effizient (Puffer für null Müll wiederverwendet)
  • Aktiver und reaktionsschneller Entwickler!
Jason Kozak
quelle
1

Da Sie Java erwähnt haben, würde ich vorschlagen, sich mit JGN (http://forum.captiveimagination.com/index.php/board,4.0.html) zu befassen. Ich habe es nie wirklich persönlich verwendet, aber ich habe gute Dinge darüber gehört es auf dem JME-Forum. Die Dokumentation scheint jedoch rar zu sein.

Raoul
quelle