Skocz do zawartości

Zablokowane Almora 0.7.6 - Dyskusja


Rekomendowane odpowiedzi

Opublikowano

Tylko blagam, poprawcie grafike zmarlego czlowieka. To jest chyba najwiekszy spadek poziomu w grze, zmieszne wyglada ladny bochater ktory nagle zmienia sie w plame zo 3 czerwonymi paskami na sobie :P

  • Odpowiedzi 449
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

  • Administratorzy
Opublikowano

Ż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

  • Administratorzy
Opublikowano

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.

Opublikowano

Mandra. Akurat to, że ludziom taki pomysł będzie się podobać nie znaczy, że my go od razu wprowadzimy. My i tak zrobimy po swojemu. ;)

  • Administratorzy
Opublikowano

Hmm, muszę na laptopie klucz do GM wpisać sobie, to będę jutro w pociągu robił Almorę ... xD

Opublikowano

Ł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...

  • Administratorzy
Opublikowano

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.

Opublikowano

Uzjel, od strony serwera? Np. \makerain? Fajny pomysł.

 

gnysek, a ja jednak uważam, że jeśli się trochę uogólni cały system to błędzie łatwiej sprawować nad nim kontrolę. :)

Opublikowano

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.
  • Administratorzy
Opublikowano

No jest, serwer ma też swoją wersję, ale oni się muszą tym czasem wymienić dla pewności, że ktoś nie oszukuje :)

Opublikowano

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.

Opublikowano

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

Opublikowano

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. :)

Opublikowano

A Ja mam pytanie :)

Czy wreszcie będzie można nadawać graczom rangi:

Moderator

Administrator

Guardian

Od strony servera ?

Bo to by się naprawdę przydało ;)

 

Co za tym idzie komendy dla każdej rangi.

  • Administratorzy
Opublikowano

Bez przesady ... każdy by sobie robił uprzywilejowanych graczy i gra by nie miała sensu.

Opublikowano
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:

Opublikowano

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?

Opublikowano

A gdyby klient wysyłał klucz składający się z ok. 100 znaków i dopiero po odebraniu przez serwer takiego klucza i sprawdzeniu jego poprawności wykonywał dalsze operacje?

Opublikowano

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

Opublikowano

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)

  • Administratorzy
Opublikowano
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

Opublikowano

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. :)

  • Administratorzy
Opublikowano

A nie dziwi Cię, że pomimo tak wielkiej przemądrzałości większość z nich nigdy nie zrobiła żadnej gry (no poza pablem) ?

Opublikowano

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.

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ę...