Jestem zainteresowany stworzeniem gry, w której obecnie mam doświadczenie w trybie współpracy, jestem jednak ciekaw najlepszej metody implementacji tego w HTML5.
Gry tworzyłem przed użyciem prostych gniazd C, a także z biblioteką Net dla SDL.
Jakie są moje najlepsze opcje, aby to zrobić w środowisku opartym na kanwie?
Obecnie wszystko, co mogę wymyślić, to albo rozwiązania AJAX / bazy danych (o wysokiej częstotliwości odświeżania), albo w jakiś sposób implementacja serwera PHP, który prowadziłby dane przez gniazda.
Ogólna rozgrywka byłaby typem platformówki 2.5D, więc obaj klienci musieliby być stale aktualizowani o pozycje gracza, pozycje wroga, pociski, dane środowiskowe itp.
networking
multiplayer
html5
ciebie
źródło
źródło
Odpowiedzi:
Socket.IO oferuje system zbudowany na kilku innych warstwach (w tym websockets, flash, techniki komet) z pełnym wdzięku wyborem.
Node.js jest jedną z opcji uruchamiania po stronie serwera.
źródło
Zobacz tę odpowiedź :
źródło
„ Kometa ” jest prawdopodobnie terminem parasolowym, którego można by tutaj użyć. WebSockets będą jednak bardziej pożądaną opcją (gdy będą zadowoleni, że jest to bezpieczne).
źródło
Node.js jest odpowiedzią. Użyłem go do opracowania strzelanki wieloosobowej w czasie rzeczywistym, a od początku do końca zajęło to około miesiąca. Przedstawił kilka wyjątkowych wyzwań, takich jak konieczność minimalnego opóźnienia, a wszyscy gracze muszą pozostać zsynchronizowani w innym, aby koncepcja mogła zadziałać.
Zarówno strona klienta, jak i serwera są napisane javascript i dzielą między sobą klasy / logikę. To zaczyna się liczyć podczas próby naprawy błędów, ponieważ nie musisz implementować wszystkiego dwa razy.
Gra została uruchomiona przez około 2 miesiące bez ponownego uruchomienia i rozegrano tysiące meczów.
Socket.io jest implikacją gniazd i używa node.js, jednak w tym momencie jest zbyt rozdęty dla gry. Istnieją inne implementacje websocket na github dla node.js, a także przykłady gier, które go używają.
źródło
Zawsze możesz po prostu użyć AJAX i jakiejś kolejki komunikatów. ActiveMQ jest dobrym przykładem. Uruchamiasz ActiveMQ na serwerze, a następnie JavaScript może wysyłać i odbierać wiadomości. Po prostu spraw, aby każdy gracz miał unikalną nazwę i wysyłaj wiadomości do drugiego gracza.
źródło
Możesz spróbować użyć http://easywebsocket.org/ , jest łatwy do wdrożenia i jest rozwiązaniem bez serwera opartym na websocket :)
źródło
Obecnie używam tego: http://code.google.com/p/phpwebsocket/ jako mojego serwera gniazd do testowania. Wykonuje połączenia z gniazdami C, do których jesteś przyzwyczajony. Może być przydatny.
źródło
Pracujemy nad platformą dla wielu graczy, która może być dla Ciebie interesująca. Możesz zobaczyć nasz projekt na www.16cubes.com - zapewniamy prostą warstwę javascript do komunikacji peer to peer. Opiera się on nieco na zasadzie komety, a my planujemy przejść na korzystanie z gniazd sieciowych, ponieważ staje się to nieco bardziej znormalizowane. Z drugiej strony udostępniamy niektóre funkcje z półki .. takie jak automatyczne dopasowywanie przeciwników, czat w grze, zaproszenia do znajomych z Facebooka jednym kliknięciem itp.
Mamy demo kółko i krzyżyk. Prawdopodobnie możesz uzyskać lepszy pomysł, jeśli go zobaczysz. I tak, możesz też grać anonimowo. Rejestracja nie jest wymagana, jeśli nie chcesz. Istnieje mniej niż 10 javascript API, na których musisz kodować, i jest on dostępny na stronie www.16cubes.com/documentation
Aktywnie szukamy informacji zwrotnych, więc daj nam znać zarówno dobre, jak i złe
źródło
Spójrz na ten framework, który stworzyłem specjalnie do tworzenia gier HTML5 dla wielu graczy w czasie rzeczywistym przy użyciu node.js w podejściu klient / serwer. Gdzie serwer uruchamia symulację gry, a gracze wysyłają tylko dane wejściowe.
demo: http://vimeo.com/24149718
repo: https://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs
źródło