Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Gra multiplayer

Ostatnio zmodyfikowano 2013-03-20 17:26
Autor Wiadomość
pekfos
» 2013-03-14 19:03:09
Tak, możesz wystarczy wpisać IP Hamachi, ale ten client musi być w Hamachi w twojej grupie. Sam to sprawdzałem.
Czy mogę do tworzenia serwera skorzystać z gotowca np. Hamachi?
On mówi o tworzeniu(pisaniu) serwera, a hamachi to program do tworzenia wirtualnych sieci lokalnych (czyli do czegoś zupełnie innego).
P-78351
RazzorFlame
» 2013-03-14 19:07:19
@UP sory źle zrozumiałem, jednak jeśli chcesz korzystać z stałego ip to możesz w Hamachi ;p
P-78354
Mrovqa
» 2013-03-14 19:16:37
<< deleted >>
P-78358
Wasilek
» 2013-03-14 20:04:16
Hamachi jedynie może się przydać jeżeli będziesz miał problem z samym połączeniem się z innym komputerem (jak już wcześniej ktoś powiedział -> tworzy sieć lokalną), a wszystko co ma zostać przesyłane pomiędzy komputerami (dane) musisz samemu napisać (SFML jest w dość dobry na początek bo załatwia za nas sporo roboty).
P-78368
hubr
Temat założony przez niniejszego użytkownika
» 2013-03-16 10:06:26
To spróbuję coś zrobić z tym SFML, jakoś nie mogę pojąć WinSocka.
P-78510
hubr
Temat założony przez niniejszego użytkownika
» 2013-03-18 17:34:34
Dziękuję za pomoc, napisałem w SFML Network klienta, który wysyła zmienną o położeniu gracza do serwera, a serwer do gracza, lecz pojawiły się problem:
1. Wysyłam co 80 klatek zmienną graczx i graczy, jak serwer ma te zmienne odróżnić, by do klienta nr.2 wysłał odpowiednią zmienną, a klient nr.2 uaktualnił, by pozycję klienta nr.1 na ekranie, serwer myli te zmienne, wysyłam również zmienną online, jeśli zmienna jest mniejsza niż 5 serwer wie, że klient się odłączył, co pętle ustawia tą zmienną na 6, ale pojawia się komunikat, że klient się odłączył, ponieważ myli tą zmienną z dwoma pozostałymi. Jak temu zaradzić?
P-78765
Mrovqa
» 2013-03-18 21:14:42
Zasada jest prosta:
Klient - input wysyła do serwera, pozycje i resztę info pobiera od niego, renderuje obraz u siebie
Serwer - odbiera input od klientów, zajmuje się logiką gry, potrzebne info (pozycje graczy itp.) wysyła do każdego z klientów.
Tyle. Jeżeli klient ma jakieś opóźnienie, to po prostu będzie mieć lagi - wina łącza tudzież niezbyt dobrego rozplanowania przesyłu danych i ich ilości.

PS na sieciówkach zbytnio się nie znam, bowiem niewiele pisałem, ale ja bym tak to zrealizował :)
P-78810
Chlorek
» 2013-03-20 17:26:52
Osobiście zanim zacznie się brać za pisanie gier multiplayer co jest na prawdę trudne, radzę najpierw dobrze przestudiować jak to działa i nauczyć się C++ lepiej, skoro WinSock sprawia trudności to znaczy, że to nie czas.
Ale żeby nie było, że tylko krytyka z mojej strony. Ja osobiście w różnych programach (w grach też) wykorzystuję taką metodę, która zdaje się być raczej dobra, ale to ja tak robię, może być źle ;)

1. Tworzę socket na serwerze, który nasłuchuje połączeń do klientów
2. Klient łączy się z serwerem
3. Serwer tworzy nowy wątek do obsługi każdego połączonego gracza (każdy ma potem przydzielany swój własny socket, jakoś przecież trzeba odróżniać graczy...)
4. Dla przykładu GRACZ1 wysyła informacje o tym, że chce się poruszyć w jakimś kierunku, serwer odbiera tą informację, a następnie wysyła ją do innych graczy, np GRACZ2 i GRACZ3, a graczowi GRACZ1 wysyła informację o tym, czy ruch został przeprowadzony pomyślnie, jeśli nie to wymusza powrót na poprzednią pozycję.

W sumie to tyle mówiąc dużym skrótem. Nigdy nie pisałem niczego z obsługą sieci używając czegoś innego niż WinSock, ale zasada działania będzie ta sama.

#Edit
Właśnie tak sobie pomyślałem jeszcze, że jeśli chcesz zrobić czysty kod (nie śmietnikową grę/serwer) to najlepiej stworzyć jakiś na prawdę prosty system zdarzeń obsługujący też pakiety z sieci. Poza tym później będzie prościej dodawało się kolejne rzeczy poza poruszaniem się, bez konieczności zmiany połowy gry.
P-78938
1 « 2 »
Poprzednia strona Strona 2 z 2