Robię tylko trochę badań nad technologią, którą można wykorzystać w mobilnej grze wieloosobowej.
Obecnie jest to raczej eksperyment, więc na razie jedyną rzeczą, o której Gracze muszą wiedzieć, są inni Gracze.
Gdyby była to typowa aplikacja internetowa, a nie gra, po prostu ciągle wysyłałyby żądania HTTP - ale ponieważ jest to gra, wydajność i dokładność będą stanowić problem.
Ponieważ gra jest kierowana na wiele platform telefonicznych, powiedzmy, że klient zostanie napisany w JavaScript lub w środowisku opartym na JavaScript. Technologia serwerowa jest całkowicie otwarta.
Każdy gracz będzie musiał zrobić odpowiednik postu HTTP i uzyskać tylko przy użyciu szybszego protokołu. Powodem, dla którego gra wieloosobowa jest oparta na sieci, jest to, że gra wieloosobowa przez Bluetooth lub inną sieć lokalną byłaby zbyt zróżnicowana na różnych platformach i mogłaby powodować problemy.
Pytanie sprowadza się więc do tego, jaki dobry protokół / technologię zastosować w JavaScript dla wielu graczy? Wszelkie porady na temat rzeczy po stronie serwera czy to ma znaczenie? Czy jest jakiś powód, dla którego powinienem porzucić tę dwupoziomową architekturę i skorzystać z bezpośredniego połączenia telefon-telefon?
źródło
Zarówno pytanie, jak i zaakceptowana odpowiedź zostały opublikowane w 2011 roku, a czasy się zmieniły od :)
Websockets jest dość powszechny, ale jeszcze lepszą technologią jest WebRTC, który pozwala na niewiarygodne strumienie UDP. Są znacznie lepsze w przypadku gier.
Oprócz komunikacji istnieje wiele innych przeszkód do pokonania podczas pisania gier dla wielu graczy, takich jak uzgadnianie stanu gry, przewidywanie po stronie klienta, serializacja i wiele innych.
<shameless self promotion>
Jestem jednym z pierwszych twórców lance.gg , serwera / biblioteki gier wieloosobowych opartej na node.js, w którym rozwiązaliśmy wiele wspomnianych problemów (i wiele innych!). Naszym celem jest ułatwienie tworzenia gier wieloosobowych dla programistów gier JavaScript. Serdecznie zapraszam do wykorzystania go jako punktu wyjścia do stworzenia gry.
</shameless self promotion>
źródło
Sprawdź to:
źródło