Biblioteki warstw sieciowych [zamknięte]

12

Szukam dowolnych warstw sieciowych, które można dodać do mojej gry, albo za darmo, albo w uczciwych cenach dla gier niezależnych.

Przez warstwy sieciowe rozumiem jakąś bibliotekę, z którą mogę się łączyć, z którą będę mógł wysyłać wiadomości i odbierać wiadomości od nich, a on sam będzie obsługiwał wszystkie informacje niskiego poziomu.

Szczególnie szukam:

  • Biblioteki wysokiej jakości, które rozumieją i radzą sobie ze złożonymi sprawami, takimi jak przeciążenie sieci.
  • Skalowalne biblioteki, które pozwolą mi mieć wielu graczy grających razem.
  • Najlepiej rozwiązanie peer-to-peer, a nie oparte na serwerze.
  • Najlepiej biblioteka, która ma powiązanie dla języków wysokiego poziomu (takich jak Java lub C #).

Przykładem tego, czego szukam, jest Grapple , ale wiem, że są dostępne inne biblioteki.

Dąb
źródło
Chociaż jest to bardzo pomocny temat, pytanie to prawdopodobnie nie pasuje do formatu wymiany stosów, ponieważ naprawdę wymaga porównania funkcji różnych bibliotek, a tym samym otwartej dyskusji.
Cameron Fredman

Odpowiedzi:

8

Czuję potrzebę dodania ENet do tej listy. To prawda, że ​​nie ma powiązań z innymi językami, ale biorąc pod uwagę, że jest napisany w C, tworzenie powiązań jest banalne.

Przekonałem się, że ENet jest solidny, dobrze napisany i skalowalny, i bardzo dobrze radzi sobie w grach peer-to-peer.

Blair Holloway
źródło
5

Przez jakiś czas korzystaliśmy z RakNet i podobało nam się to. Otrzymaliśmy pozytywną opinię od innych studia z niego korzystających. http://www.jenkinssoftware.com/

Zaletą RakNet jest to, że jest to platforma wieloplatformowa, więc jeśli chcesz wejść do przestrzeni konsoli, jest to dobra możliwość.

Jeff
źródło
Podoba mi się, jak to jest darmowe dla gier indywidualnych
Oak
Użyłem także RakNet i jest całkiem niezły. To nie jest idealne, ale próbki są dobre, masz pełny dostęp do źródła, a licencja Indie jest bardzo wybaczająca.
Logan Kincaid,
4

Wybrałem Zoidcom (C ++), ponieważ jest dobrze zaprojektowany i ma doskonałą dokumentację + przykłady:

Biblioteka sieciowa Zoidcom jest biblioteką sieciową wysokiego poziomu opartą na UDP, zapewniającą funkcje automatycznej replikacji obiektów gry i synchronizacji ich stanów przez połączenie sieciowe w wysoce wydajny sposób. Osiąga się to poprzez multipleksowanie i demultipleksowanie informacji o obiektach zi do strumieni bitów, co umożliwia łatwe uniknięcie wysyłania zbędnych danych. Booly biorą tylko jeden bit, liczby całkowite i zmiennoprzecinkowe są redukowane do tylu bitów, ile potrzeba.

Znaczną część żmudnej pracy, która pojawia się podczas próby opracowania wydajnego protokołu sieciowego, zajmuje się Zoidcom, np. Decydowanie, kiedy wysłać dane do którego klienta, jak uzyskać je skutecznie i niezawodnie przez linię, co zrobić, gdy dane zostaną otrzymane zgubiony i wiele więcej.

Niektóre gry open source wykonane przy użyciu Zoidcom:

Licencja:

Zoidcom jest darmowo dostępny do użytku niekomercyjnego i tak pozostanie. Licencje komercyjne i shareware są dostępne na żądanie, oficjalne ogłoszenie licencji zostanie udostępnione w wersji 1.0.

Leftium
źródło
2

Jeśli C # nie stanowi problemu, możesz sprawdzić Lidgren . Obecnie w trzeciej generacji oferuje (między innymi):

  • Licencja MIT
  • Peer-to-Peer (NetClient / NetServer są oparte na NetPeer)
  • Symulacja opóźnienia
  • Szyfrowanie pakietów
  • Bardzo wydajny (bufory używane ponownie dla zerowego śmieci)
  • Aktywny i elastyczny programista!
Jason Kozak
źródło
1

Ponieważ wspomniałeś o Javie, sugeruję zajrzeć do JGN (http://forum.captiveimagination.com/index.php/board,4.0.html), nigdy tak naprawdę nie korzystałem z niego osobiście, ale słyszałem o nim dobre rzeczy na forum JME. Dokumentacja wydaje się jednak niewielka.

Raoul
źródło