Skocz do zawartości

Asset fizyki aut w top-down - zakup i wdrożenie


LolikZabójca
 Udostępnij

Rekomendowane odpowiedzi

Słuchajcie jako, że nikt nie był mi w stanie pomóc, myślę o kupieniu z asset store gotowej fizyki jazdy top down.

1. Da się jakoś przetestować który z assetów będzie pasował? Jest kilka które są ładnie opisane ale po screenach trudno je ocenić.

2. Jak wprowadzić taką fizykę na multi? Trzeba fizykę zaimplementować i do serwera(aby dobrze obliczał pozycję, prędkość itp pojazdu) i do klienta(aby to przewidywał)?

3. Czy istnieje jakiś sposób by stworzyć serwer dla gry GMS w konsoli? I co wtedy z fizyką?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
W dniu 26.12.2021 o 02:45, LolikZabójca napisał:

2. Jak wprowadzić taką fizykę na multi? Trzeba fizykę zaimplementować i do serwera(aby dobrze obliczał pozycję, prędkość itp pojazdu) i do klienta(aby to przewidywał)?

3. Czy istnieje jakiś sposób by stworzyć serwer dla gry GMS w konsoli? I co wtedy z fizyką?

Podglądu raczej nie ma, ale może da się skontaktować z twórcą, żeby nagrał jakieś wideo? Na Windowsie 10 to jest dziecinnie proste za pomocą Xbox Game Bara.

 

2.: Obliczałbym po stronie klienta, bo inaczej będą lagi. Oczywiście serwer kontroluje czy ktoś nie poleciał za daleko w jednym kroku, a pozostali klienci interpolują otrzymane dane. Tak to działa nawet w wielkich wyścigówkach (gdzie samochody lubią driftować na prostej, bo zgubiły info, że ktoś o 30cm się przesunął w lewo czy w prawo).

 

3.: Nie, opcji headless wciąż nie ma.

Odnośnik do komentarza
Udostępnij na innych stronach

1. Kupiłem w ciemno, nie jest to super ale spróbuję się pobawić. Jest to rozwiązanie oparte na box2d ale trochę skomplikowane wydaje się tworzenie w nim nowych aut, przez to, że strasznie skomplikowany jest tam syste właściwosći i nawet rozstaw kół ma znaczenie. Natomiast srpóbuję to ogarnąć.

2. Hmm no dobra lae jak obliczyć czy się nie posunął za daleko bez tego samego silnika fizyki co w kliencie? I co np jak ktoś użyje cheata a więc obliczenia w kliencie będą fałszowane? 

3. Hmm, a nie da się obejść tego jakoś pisząć np serwer w innym języku(znam chociażby C# trochę)? Planują w ogóle to zmienić?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

2. Wiedząc, że pojazd porusza się z prędkością N pikseli na step automatycznie wiesz, że jak ruszy się drugie tyle, to coś jest nie tak. Może uczyć cheata, dlatego serwer powinien znać max prędkość pojazdów, żeby to właśnie wykryć. Generalnie jednak to jest właśnie problem stary jak świat, a obliczanie fizyki na serwerze naprawdę źle się kończy, bo GM nie działa asynchronicznie (jak wyślesz dane, to nawet przy idealnym pingu dostaniesz je w kolejnym stepie).

 

3. Da się, są jakieś przykłady, ale oczywiście to jest mnóstwo roboty. Kiedyś mają to zmienić, ale wiadomo jak to z YYG.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Sprawdź wcześniej lokalnie, w trakcie testów :P Przecież wiesz jaka jest max. prędkość. Zresztą, skoro to gra wyścigowa, to jak ktoś skoczy nagle o 500px to nie wierzę, zeby mu się udało sterować takim pojazdem i żeby w ogóle w cokolwiek trafił :)
Wpadł mi do głowy inny pomysł. Każdy pojazd ma pewnie jakieś swoje statystyki, typu przyspieszenie, kąt skrętu, max prędkość itp. które właśnie można by przestawiać narzędziem do cheatów. Może właśnie te dane podsyłaj co jakiś czas do sprawdzenia, czy zgadzają się między serwerem a klientem? Jak ktoś chce oszukiwać i jechać szybciej, to musi którąś z nich przestawić, więc jak ją wyślesz do serwera i będzie błędna to można go wywalić - one zapewne są stałe dla każdego pojazdu. Odtwarzania fizyki na serwerze i tak nie zrobisz, bo przez pingi itp. na serwerze nigdy nie będzie 100% tego samego stanu fizycznego obiektów i fizyka może działać znacznie inaczej. Coś będzie miało właściwość o 0.001 inną i już będzie problem.

Odnośnik do komentarza
Udostępnij na innych stronach

Prędkość w teorii wiem jaka jest, ale gdy w grę wchodzi to, że inne auto może mnie popchnąć, mogę wpaść w poślizg bokiem, mogę nagle w coś uderzyć i wpaść w niekontrolowaną rotację to już robią się schody. Pomysł ze statystykami niby dobry, ale ktoś mógłby po prostu cheatem wpływać bezpośrednio na pozycję, a statystyki zostawiać same sobie 😕 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Przy zderzeniu samochody raczej nie przyspieszają, więc to bym odrzucił. Co do wpływania na pozycję  - faktycznie, tutaj jest problem, bo nawet jak serwer sprawdza kto pierwszy faktycznie dojechał do mety, to i tak da się oszukać.

 

Ale wiesz - tak szczerze, to ile osób będzie w ten sposób oszukiwać? Naprawdę jest sens dla jednej może osoby, która będzie się bawić, myśleć o rozwiązaniach, które dla setek innych w ogóle nie są potrzebne? Ja bym ten temat olał. Oszustów i tak nie wyeliminujesz i czasem szkoda na nich marnować czasu. Zwykły ban na IP wystarczy :)

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

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