Dodawanie gry wieloosobowej do gry HTML5 [zamknięte]


15

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.


1
Gdy websockets ( en.wikipedia.org/wiki/WebSockets ) zostanie sfinalizowane (i zaimplementowane itp.), Prawdopodobnie byłby to dobry sposób, do tego czasu uważam, że AJAX (bez X, bez XML wymaganego do tego) byłby prawdopodobnie najlepszym sposobem (wciąż chyba niezbyt dobry sposób).
Elva

Wygląda na to, że obsługa gniazd sieciowych szybko spada ...
the_e

Czy chcesz postawić czy grać? Jeśli chcesz zrobić grę; nie zawracaj sobie głowy html5.

@stefan: dlaczego nie jedno i drugie? to, że nie zostało jeszcze sfinalizowane, nie oznacza, że ​​nie mogę z tym pracować!
the_e

Odpowiedzi:


12

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.


5

Zobacz tę odpowiedź :

Możesz jednak użyć Flasha, jeśli jest dostępny, aby zapewnić skryptowi awarię, dopóki WebSocket nie będzie powszechnie dostępny. Gimite's web-socket-js jest tego darmowym przykładem. Jednak podlegają ci te same ograniczenia co Flash Sockets, a mianowicie, że Twój serwer musi być w stanie wypluć zasady międzydomenowe na żądanie do portu gniazda i często będziesz miał trudności z serwerami proxy / zaporami ogniowymi. (Gniazda Flash są tworzone bezpośrednio; jeśli ktoś nie ma bezpośredniego publicznego adresu IP i może wyjść z sieci tylko przez serwer proxy HTTP, nie będzie działać).


3

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).


3

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ą.


2

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.




2

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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.