Skocz do zawartości

Browser-Based Massively Multiplayer Online Game (DT)


Piotr
 Udostępnij

Rekomendowane odpowiedzi

Browser-Based Massively Multiplayer Online Game

Tytuł: Demo Technologiczne (DT).

Opis: Test protokołu sieciowego. Własna implementacja protokołu P2P dla przeglądarek internetowych. Wygląda jak podstawa pod grę RPG Online. Prawdopobnie projekt pójdzie w tym kierunku, ale to zależy przyszłego teamu. Jest to pierwsza wersja protokołu, więc pewnie wyjdą na wierzch błędy i o to chodzi. Dostępny jest chat oraz plansza do zwiedzania. W czasie gry wszyscy gracze znajdują na tej samej planszy. Piszemy wiadomości na klawiaturze, a myszką zwiedzamy mapę. Protokół jest wielowarstwowy, korzysta z trackera, który przechowuje adresy podłączonych graczy. Dane są przesyłane od przeglądarki do przeglądarki, nie obciążają serwera, podobnie jak w torrentach.

Wymagania odnośnie PC: Dwurdzeniowy procesor, zaktualizowana przeglądarka. Polecam Chrome, IE 9. Osobiście Firefoxa używam. Na Safari gra działa niestabilnie i prędzej czy później zakończy się wysypaniem przeglądarki.

Muzyką i grafiką proszę się nie sugerować, bo nie jest to cel prezentacji. W wolnym czasie zostanie ona zastąpiona. Dźwięki dotyczące ruchu są dodane w celach testowych (sprawdzałem czy kanały się miksują, zmienia się odległość od źródła itp). Odgłosy pozostałych graczy są domyślnie wyłączone.

Link: strona z grą online

Autorzy:
Programowanie: Piotr.
Grafika: David Gervais (Creative Commons license).

Pomocnicy:
Mateusz (Tester, być może przyszły tile mapper).

Screeny:
sm7fhu.png
53soia.png

Poszukuję chętnych do wzięcia udziału w tworzeniu gry w oparciu o ten protokół sieciowy.
Ewentualnie mogę zostać wcielony do komercyjnego studia, ale tylko na tym etapie. Jak już zbiorę zespół nie przyjmę takiej propozycji.
Nie udzielam informacji osobom, które nie są zainteresowane udziałem w projekcie.

Chętnie przyjmę do projektu osoby:
- posiadające dużo chęci
- komunikatywne przynajmniej raz w tygodniu, przynajmniej żeby poinformować nad czym pracują.

W szczególności będą potrzebne:
- osoby układające mapy z gotowych zestawów grafiki.
- koderzy do pisania skryptów - funkcji (głównie w GML). Każdy programista będzie pisał w miarę niezależnie grupy współpracujących funkcji.
- graficy i muzycy są zawsze mile widziani choć nie są wymagani do projektu

Gdyby zebrała się większa grupa osób wyznaczę osoby koordynujące, tak aby dana grupa wiedziała do kogo się zwracać z pytaniami.

Najważniejsze komendy konsoli:
start - wymusza rozpoczęcie gry, nawet gdy nie ma graczy.
/name NICK - zmiana nicku np: /name Piotr.
/kolor ANGIELSKA_NAZWA - zmiana koloru postaci np: /kolor white.
/exit - jest to prawidłowe opuszczenie gry, w przeciwnym przypadku peery decydują o usunięciu gracza z trackera.
/w - pomaga wpisać polecenie lub wiadomości do innych graczy, umożliwia używanie polskich znaków.
[Przez bugi w GM STUDIO BETA nie działa poprawnie wykrywanie klawisza ALT pod HTML5, stąd w konsoli nie można używać polskich znaków]
/fps - wyświetla w prawym górnym rogu ilość klatek na sekundę. Max to 30. Jeżeli wartość jest poniżej 20 to oznacza, że mamy za słaby sprzęt.
/music - włącza i wyłącza muzykę.
/dzwiek chodzenia - wyłącza odgłos tupania przy ruchu postaci.
/dzwiek otoczenia - włącza wykrywanie odgłosu chodzenia pozostałych graczy.
(Dźwięki na razie prawidłowo działają na przeglądarce Chrome)

Klawiszologia:
- myszka, klikamy lewym przyciskiem myszy na planszy aby ruszyć naszą postacią.
- klawiszem Escape i Tab rozszerzamy i chowamy konsole.
- klawisz Enter służy do wysłania polecenia/wiadomości.

Ogólnie potencjał jest olbrzymi z p2p można tworzyć gry na setki graczy online, modyfikując odpowiednio topologie sieci.
Co do szczegółów przyszłego projektu to wszystko jest na razie do ustalenia.

Pozdrawiam,
Piotr
Odnośnik do komentarza
Udostępnij na innych stronach

Nie odnaleziono adresu

Firefox nie może odnaleźć serwera adventure.somee.com.

 

Wymagania odnośnie PC: Dwurdzeniowy procesor

:(

 

Dane są przesyłane od przeglądarki do przeglądarki, nie obciążają serwera, podobnie jak w torrentach.

czy to znaczy, ze bede wysylal 3 bity na klatke do kazdego gracza, ktory jest online?

 

e:juz odnajduje serwer

Odnośnik do komentarza
Udostępnij na innych stronach

Nie odnaleziono adresu

Firefox nie może odnaleźć serwera adventure.somee.com.

Nawet przez proxy działa, więc nie powinno być z tym problemu.

 

czy to znaczy, ze bede wysylal 3 bity na klatke do kazdego gracza, ktory jest online?

Każdy jest tu serwerem, wysyłasz dane do wszystkich graczy jednocześnie. Można to zmodyfikować na różne warianty, że gracze o szybszym łączu wysyłają dane od tych ze słabszym itd.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale jakiś main server musi chyba być, no bo gdzie by się miały zapisywać dane graczy.

No właśnie na razie się nie zapisują :jezor:. Potem się oczywiście zrobi połączenie do bazy danych w celu zapisywania stanów gry. Demo obejmuje test protokołu sieciowego, a nie właściwej gry. Gra prawdopodobnie będzie zupełnie inaczej wyglądała.

Odnośnik do komentarza
Udostępnij na innych stronach

Protokół nie jest jeszcze zoptymalizowany, wysyła tyle danych ile zdoła w 30 klatkach na sekundę :P. Na razie ważne, żeby nie gubił pakietów, nie zrywał połączenia, nie mylił adresata itd. Ogólnie gra może działać dużo szybciej, demo jest powiedzmy w wersji "debug".

Odnośnik do komentarza
Udostępnij na innych stronach

Kwestia topologii sieci.

Demo testowe łączy w następujący sposób:

2nl91tt.png

Czyli jak masz słabe łącze to nie pozwoli na grę z dużą ilością graczy.

 

Natomiast nic nie stoi na przeszkodzie, żeby to zmienić:

Dla klientów o słabym uploadzie można zastosować ten sposób:

2dln9mo.png

 

A dla dużej ilości graczy taki sposób:

1e53rb.png

 

Tzn. łączenie się tylko graczy w zasięgu np. dwóch ekranów.

W ten sposób można stworzyć grę nawet na tysiąc graczy. A w rzeczywistości klient będzie się dynamicznie łączył tylko do potrzebnych.

Odnośnik do komentarza
Udostępnij na innych stronach

Może za kilka lat, jak ludzie będą mieli szybszy internet to to się sprawdzi, ale na chwilę obecną chyba będzie ciężko wyeliminować lagi, żeby ping był taki jak w normalnych sieciówkach (klienci podłączają się do 1 serwera). Poza tym i tak potrzebujesz jakiegoś serwera z bazą, który by przechowywał statystyki graczy, IP itp.

Ale ogólnie to nawet ciekawy projekt, tylko, że strasznie dużo czasu zajmuje. Ogólnie rzecz biorąc, życzę powodzenia w projekcie :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...