Skocz do zawartości

Async events a ich callbacki


I am vader

Rekomendowane odpowiedzi

Pytanie techniczne apropo async eventów:

Jeśli przyjdzie np. 5 asynców w czasie 20ms, a prędkość rooma wynosi 50, co oznacza, że te 5 asynców mieści się w czasie 1 stepa, czy wszystkie 5 calbacków zostanie rozwiązane w momencie ich przyjścia czy zostaną rozłożone na 5 następujących stepów?

Przejrzałem dokumentacje i nie znalazłem nic na ten temat.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...
Pytanie techniczne apropo async eventów:

Jeśli przyjdzie np. 5 asynców w czasie 20ms, a prędkość rooma wynosi 50, co oznacza, że te 5 asynców mieści się w czasie 1 stepa, czy wszystkie 5 calbacków zostanie rozwiązane w momencie ich przyjścia czy zostaną rozłożone na 5 następujących stepów?

Przejrzałem dokumentacje i nie znalazłem nic na ten temat.

 

Moim zdaniem raczej dostaniesz callbacki bez względu na aktualny speed room'a... Z tego co wiem nie są raczej zależne od wątku renderowania/aktualizacji.

Odnośnik do komentarza
Udostępnij na innych stronach

działa to jak w każdym systemie eventów asynchronicznych - runner odbiera natywne eventy w osobnym wątku, z którego przerabia je na zjadliwe dla GMa i pcha do wątku gry, który wykonuje je (wszystkie będące w kolejce) w następnej ramce aktualizacji (czyli bez rozkładania ich na jakieś stepy - wsio zostaje na raz wykonane), pchając do odpowiednich obiektów.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Samo słowo "asynchroniczny" powinno powiedzieć Ci wszystko na temat tego jak mają się te eventy do stepów czy drawów.

 

Jak masz 5 callbaków na raz, to możliwe, że wszystkie wykonają się między jednym stepem. Ba, w GM:Studio jest nawet szansa, że wystąpią dwa stepy między jednym drawem, bo ten też jest nieco asynchroniczny.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

Troche necro, ale myślę, że warto dopowiedzieć, że mimo wszystko te callbacki wykonają się w takiej kolejności w jakiej przyszły. Tzn. że nie musisz się martwić o to, że np. połączy sie na raz 5 osób i dostaną to samo ID bo to raczej nie możliwe, chyba, że im whardcodujesz to samo id xD. Po prostu async event wywoła się 5 raz jeden po drugim, ale to nie znaczy, że w różnych stepach. Myślę, że jest do tego oddzielny wątek zarezerwowany.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Dlatego się nazywają async ;) Draw i step tez podobno chodzi asynchronicznie, tzn. jak jest wolne urządzenie ze słabym procesorem graficznym, to step może lecieć 30k/s, a draw 15k/s i będzie desynchron (aczkolwiek czy tak faktycznie jest nie wiem).

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ę
  • Ostatnio przeglądający   0 użytkowników

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