Skocz do zawartości

Zablokowane Almora 0.7.6 - Dyskusja


gnysek

Rekomendowane odpowiedzi

  • Odpowiedzi 449
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

  • Administratorzy

Żadne pomysły nie są złe, ale ktoś je musi wprowadzić. Kurde, chyba wypadło na mnie :P

 

Pamiętaj, to jest gra online, tutaj każdy przesyłany bajt jest na wagę złota, bo nie wiem czy jesteś świadom, ale o ile Ty jako gracz wysyłasz do serwera jakieś tam dane, to serwer mając 100 graczy musi odebrać 100 razy tyle danych i wysłać 100 razy tyle. Jak jeden gracz wysyła w sekundzie 1kB, to musisz mieć łącze z uploadem minimum 150kB/s (~ 1Mb/s) (doliczyłem 50 kB, bo pakiety się gubią, są opóźnienia, wiec musi być jakiś minimalny zapas, dałem 50%). Większość firm oferuje teraz łącza typu 10Mb/256kb (co daje 1280kB/32kB jak sie nie myle), zatem zobacz, ze upload to jakieś 20 - 30% zapotrzebowania! to znaczy, że przeciętne łącze obsłuży około 30 graczy, jeżeli kazdy z nich wysyła 1kB w ciągu sekundy (1kB = 1024B, a 1B to jest liczba z zakresu 0 do 255 lub -127 do 127). Łatwo możesz policzyć, że do wysłania pozycji x mapy o szerokości 60 000 pikseli potrzeba aż dwóch bajtów o ile będą one bez znaku (0 - 65025), bo ze znakiem uzyskamy tylko połowę zakresu. Jak doślemy pozycję y, to mamy już 4 Bajty. Dane gromadzą sie tak szybko, że niestety - ale byle gówna nie mogę wysyłać i od kilku dni z Tymonem wymyślamy które dane nie będą potrzebne i szukamy sposobów aby serwer i klient wysyłali tylko to co jest naprawdę niezbędne, a resztę generowali sobie sami, każdy po swojej stronie, licząc, że obaj policzyli to samo.

 

Mam nadzieje, ze nie namieszałem w tych obliczeniach, bo godzina już późna ...

 

Dla niekumatych:

8bitów = 1Bajt, czyli np. (10101101) = 173

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

No nie, ale myślę, że koło 100B leci jak nic. I niestety, ale połowa tych danych wcale nie musiała by być wysyłana, lub można by wysyłać tylko część.

Myślę, że wersja 0.8.0 powinna być w stanie obsłużyć tylu graczy, na ile pozwoli Game Maker zanim zacznie zwalniać i to będzie nasze jedyne zmartwienie, bo ilość danych powinna być na tyle rozsądna, że nie będzie większych problemów.

Odnośnik do komentarza
Udostępnij na innych stronach

Łe, mi bateria szybko się rozładowuje i niewiele zrobię. I chyba jednak zabiorę switcha. No. Chyba, że uda mi się uruchomić bezprzewodówkę. =P

 

Ostatecznie zastanawiam się czy warto wprowadzać tak wielką możliwość edycji gry, questy - ok, przedmioty - jeszcze przejdzie. Jednak szkoda mi trochę pozwalać na modyfikację świata gry, w końcu to dalej ma być Almora i przydało by się utrzymać klimat. Może drobne modyfikacje świata, np. nowi NPC...

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Nie, ja myślę, że bez przesady z tymi modyfikacjami, bo z drugiej strony im wiecej bajerów tym więcej błędów do popełnienia xD

 

Dzień i noc - już o tym pisałem, że da się to zrobić bez większego problemu i serwer tylko raz podaje klientowi swoją godzinę i tyle, potem klient sam dolicza sobie czas i np. raz na godzinę się synchronizują dla pewności. Pogoda - jest już teraz w Deep Forest.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie znam się na tworzeniu gier, ale tak na pierwszy rzut oka wydaje mi się że poziom życia mógłby obsługiwać client. Czy tak nie jest ??

 

Rozumiem że wszystkiego nie napiszecie od razu

Mam kilka pomysłów które, można by wprowadzić w jakiejś wersji.
Odnośnik do komentarza
Udostępnij na innych stronach

Znaczy jeśli chcemy unikać oszustw to serwer właśnie powinien być odpowiedzialny za te rzeczy. Klient może tylko interpretować i przedstawiać graficznie otrzymane dane ewentualnie dodawać od siebie kilka bajerów.

Odnośnik do komentarza
Udostępnij na innych stronach

Klient spokojnie mógłby obliczać te wszystkie paski, ale żeby nie dochodziło do oszustw, można by zapisywać pasek życia, many, itd. na serwerze przy każdym wylogowaniu/zerwaniu łącza. Przy następnym logowaniu ostatni stan byłby pobierany. Wtedy nie byłoby potrzeby wysyłania informacji o każdej zmianie stanu wskaźników. Można też wprowadzić synchronizację danych z klienta i serwera, np. co 30 sekund.

 

No chyba, że macie już coś takiego... :P

Odnośnik do komentarza
Udostępnij na innych stronach

Problem w tym, że klient nie koniecznie musi być naszym dziełem. Może sobie ktoś napisać bota i teraz pytanie, czy ma on grać wg własnych reguł czy wg reguł gry? Jeśli ma robić co chce, spoko, piszemy większość po stronie klienta. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Problem w tym, że klient nie koniecznie musi być naszym dziełem. Może sobie ktoś napisać bota i teraz pytanie, czy ma on grać wg własnych reguł czy wg reguł gry? Jeśli ma robić co chce, spoko, piszemy większość po stronie klienta. :)

 

Jeżeli ktoś by chciał, to i teraz napisałby bota... :P

Tylko po co..? :boxed:

Odnośnik do komentarza
Udostępnij na innych stronach

Ty chyba nie rozumiesz sprawy. Jeśli Tymek z Gnyskiem ważne obliczenia dadzą na kliencie - załóżmy, ilość expa za mobki (tylko przykładowo). To ktoś se może napisać swojego klienta, na którym on za robaka dostanie 100000 expa. :P = LIES! Jak synchronizacja życia będzie występować tylko raz na 30s, a nie będzie obliczana przez serwer, to ja se napisze klienta, co każdej sekundy będzie mi +100 życia dodawał :P. I co powiesz?

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem o co chodzi wam z tą synchronizacją.

 

Na serwerze jest uruchomiona tak jakby druga wersja klienta - dla każdego gracza.

I tak kiedy np. gracz używa potiona i zaczyna mu się powoli ładować życie, wysyła informację o użyciu potiona do serwa.

Na SERWIE odejmuje się 1 potionek i i zaczyna dodawanie życia - niezależnie od klienta, na którym również się to powoli doładowuje.

A synchronizacja działa w jedną stronę - serwer wysyła swoje, rzetelne informacje do klienta.

 

I przyznam, że nie grałem w Almorę, ale mogę powiedzieć tyle - jeśli to prawda, że health regeneruje się natychmiastowo to ta gierka jest bidna :P

 

Ty chyba nie rozumiesz sprawy. Jeśli Tymek z Gnyskiem ważne obliczenia dadzą na kliencie - załóżmy, ilość expa za mobki (tylko przykładowo). To ktoś se może napisać swojego klienta, na którym on za robaka dostanie 100000 expa.
O, i np. o to mi chodzi.

Niech se klient niby-dorobi milion expa - serwer lepiej wie, ile epa się rzeczywiście należy, i w pliku usera na serwie serwer SAM zapisuje ilość zdobytego expa - później to ewentualnie wysyła do klienta, dla synchronizacji. Co z tym zrobi klient - jego sprawa - klient nie ma żadnego wpływu na stan serwera.

 

Maksymalnie to upraszczając, to klient wysyła do serwa tylko informacje o tym, jakie klawisze na klawiaturze wciska, oraz pozycję myszki. (jakby ktoś nie zczaił, to to taki ekstremalny przykład :P)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
100 bajtów do sprawdzenia tylko czy klient nie oszukuje? No nie... kiszka. Lepiej od razu dać serwerowi wszystko odwalić. :P

 

Przecież bot taki klucz i tak przerobi tak samo jak klient, więc serwer się nie skapnie, że to oszust :) Oj Tymek, nie wpadłeś na to ? :P

Odnośnik do komentarza
Udostępnij na innych stronach

Dawidds, nie wiem o co Ci chodzi. Mówimy o tym, że klient miałby przejąć część obowiązków serwera, czyż nie? Mówisz o tym samym co ja. :)

 

Po za tym mówcie co chcecie, ja się nie będę bawić tak jak wy i zrobię po mojemu.

 

gnysek, no nie pomyślałem o tym. :)

Odnośnik do komentarza
Udostępnij na innych stronach

No, bo już mialem się obrazić :P. Pozatym ja się nie przemądrzam, akurat rozumiem twój punkt widzenia i się zgadzam w 100%. Takmi rzeczami powinien zajmować się serwer.

 

(Znów wrócę do tej gry xD) Przykładowo na WoWie nie ma praktycznie żadnej operacji wykonywanej przez klienta poza wyświetlaniem tego co odbiera od sewera :P. Nawet Line of Sight (np że nie można strzelać do jednostek zza drzewa/ściany) jest sprawdzane na serwerze. Mało tego, nawet przez podłogę można przelecieć jeśli serwer jest źle napisany :D.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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

×
×
  • Dodaj nową pozycję...