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). |
|
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 |
|
Mrovqa |
» 2013-03-14 19:16:37 << deleted >> |
|
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). |
|
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. |
|
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ć? |
|
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ł :) |
|
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. |
|
1 « 2 » |