maciek012 Opublikowano 2 Maja 2013 Udostępnij Opublikowano 2 Maja 2013 Witam, ostatnio myślałem by coś podłubać w GM, i chciałbym zapytać was czy istnieje możliwość wykonania takiej czynności w GM z użyciem 39dll lub innej podobnej biblioteki sieciowej. Chciałbym aby każdy klient który stworzy pokój był serwerem danej rozgrywki nawet jeśli nie ma zewnętrznego IP, główny serwer odpowiadał by za lobby i główne przesyłanie danych a klient komunikował się z innymi klientami z jak najmniejszym użyciem głównego serwera. Pytanie czy da się to zrobić w Game Makerze i jakie obciążenie by to wytrzymało? Jeśli dało by radę prosiłbym o trochę teorii :) Z góry dziękuje za sensowne odpowiedzi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 2 Maja 2013 Udostępnij Opublikowano 2 Maja 2013 Da się, ale musi być jakiś server matka, który by tworzył kilka lobby, np. lobby1 to gracze w tablicy players[1,X], a lobby2 to gracze w tablicy players[2,X] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciek012 Opublikowano 2 Maja 2013 Autor Udostępnij Opublikowano 2 Maja 2013 Da się, ale musi być jakiś server matka, który by tworzył kilka lobby, np. lobby1 to gracze w tablicy players[1,X], a lobby2 to gracze w tablicy players[2,X] No myślałem, tak: serwer matka rozdziela dane na temat pokoji (sesji gry) i graczy którzy dołączyli do rozgrywki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 2 Maja 2013 Udostępnij Opublikowano 2 Maja 2013 Takie coś nazywa się UDP hole punching. Sieci P2P tak działają. S - serwer A - klient A B - klient B A wysyła do S że chce stworzyć pokój. S odpowiada A że pomyślnie stworzono B znajduje pokój za sprawą S i chce do niego dołączyć S wysyła do B ip A S wysyła do A ip B Teraz chcą nawiązać połączenie bezpośrednie. Odbywa się to mniej więcej tak: A wysyła do B jakiś pakiet na porcie dajmy na to 4000 B wysyła do A jakiś pakiet też na porcie 4000 Jeśli pakiet UDP nie zginął to znaczy, że najprawdopodobniej został otworzony "tunel" między klientami. Najlepiej sprawdzić to jakimś pingiem czy coś. Mogą się komunikować na porcie 4000 przez UDP. Działanie jest proste. Kiedy A wysyła pakiet UDP do B to router A otwiera się na pakiety pochodzące od tego IP i portu na który został wysłany pakiet. To samo z B. A wyśle pakiet, który zostanie odrzucony przez B, ale za to mamy już "dziurę" na A. W takim wypadku B wysyła pakiet do A. A go odbiera bo ma otworzoną "dziurę", a B ją stworzył u siebie wysyłając pakiet do A. Poszperaj w googlach jak chcesz wiedzieć więcej. Proszę mnie poprawić jeżeli się gdzieś pomyliłem. Od siebie dodam, że udało mi się takie połączenie nawiązać. Co prawda nie w GM'ie ale socket to socket więc bez różnicy. No i jest możliwe również takie coś jak TCP hole punching. Nie zagłębiałem się w to więc nie wiem nic więcej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciek012 Opublikowano 5 Maja 2013 Autor Udostępnij Opublikowano 5 Maja 2013 ooo Dzięki, za porządne wytłumaczenie jak to działa :) Poczytam o tym może mi się uda :) Dzięki wielkie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 9 Maja 2013 Udostępnij Opublikowano 9 Maja 2013 Wiem, że się wciskam z lekkim poślizgiem, ale: Używanie 39dll to kiepski pomysł, jest niepotrzebnie skomplikowany, nawet sam twórca przyznaje, że jest słabo zrobiony w temacie z innym dll'kiem do obsługi sieci, którego osobiście polecam - Faucet Networking. I don't know what Faucenet is (my guess, a new and much better networking lib) but I definitely recommend using it over [39dll], which I wrote when I literally just started programming in c++ />. I'm always surprised to see that it is still popular, as it is very poorly coded. Jest od dość dłuższej chwili, a i tak ludzie na tym forum zdają się wybierać 39dll... http://gmc.yoyogames.com/index.php?showtopic=498062 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 9 Maja 2013 Udostępnij Opublikowano 9 Maja 2013 Ooo polecam faucenet. Znam je od 5 sekund, ale jest podobno szybsze, a po obejrzeniu tutka, ma bardzo podobne funkcje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciek012 Opublikowano 9 Maja 2013 Autor Udostępnij Opublikowano 9 Maja 2013 Większość używa 39dll bo jest bardziej popularne, przyznam nie znałem Faucet Networking, jeśli na prawdę jest prostsze i szybsze to muszę wypróbować :) Dzięki za info. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 9 Maja 2013 Udostępnij Opublikowano 9 Maja 2013 Na pewno szybsze, ale prostrze raczej nie, bo komendy różnią się tylko od 39Dll "literkami" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 9 Maja 2013 Udostępnij Opublikowano 9 Maja 2013 Może mi ktoś wytłumaczyć w jakim sensie szybsze? Bo na pewno nie w szybkości przesyłu, a operacje na buforze to tylko kilka ms. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 9 Maja 2013 Udostępnij Opublikowano 9 Maja 2013 Może mi ktoś wytłumaczyć w jakim sensie szybsze? Bo na pewno nie w szybkości przesyłu, a operacje na buforze to tylko kilka ms.39dll jest pierwszym dll-em pisanym przez 39stera i sam autor miał deklarować, że nie jest najlepszy faucet networking ma być stabilniejszy od 39dll osobiście tego ustrojstwa jeszcze nie sprawdziłem dokładniej (choć wygląda dobrze), działa na nim naprawdę niewiele gier - 39dll jest nadal baaardzo popularny Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 9 Maja 2013 Udostępnij Opublikowano 9 Maja 2013 Nadal nie dostałem odpowiedzi, mówisz że jest szybszy, sprawdziłeś to? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 9 Maja 2013 Udostępnij Opublikowano 9 Maja 2013 Nadal nie dostałem odpowiedzi, mówisz że jest szybszy, sprawdziłeś to?tego nie jestem w stanie jednoznacznie stwierdzić, będziesz musiał sprawdzić to ty Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 9 Maja 2013 Udostępnij Opublikowano 9 Maja 2013 Też sobie chciałem to obadać, w temacie koleś co to tworzy mówił w czym jest lepszy od 39dll. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciek012 Opublikowano 10 Maja 2013 Autor Udostępnij Opublikowano 10 Maja 2013 Powiem ściągnąłem, odpaliłem jest jakieś hmmm inne, nie pasuje mi coś ale to może kwestia przyzwyczajenia, jeśli to na prawde jest lepsze od 39dll to trzeba będzie coś pokombinować a jak nie to wolę 39dll, większe wsparcie przynajmniej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę