MultiVersus Developer Series: Netcode
Cześć wszystkim!
Mamy nadzieję, że nasz ostatni film MultiVersus Developer Update przypadł wam do gustu. W miarę zbliżania się premiery opublikujemy kilka wpisów na blogu. Przyjrzymy się w nich nowym zmianom i funkcjom, które będą dostępne w MultiVersus już od 28 maja. Jesteśmy niezmiernie wdzięczni za wszystkie opinie, które otrzymaliśmy od graczy w czasie otwartej bety. Nie możemy się doczekać, aż pokażemy wam, nad czym pracowaliśmy.
Jednym z aspektów, o których chcielibyśmy wam opowiedzieć, są wrażenia z rozgrywki online w MultiVersus. Nasza ekipa dołożyła wszelkich starań, aby gra online była jak najlepsza. W skrócie: w chwili premiery MultiVersus będzie zawierało lepszy kod sieciowy stworzony od nowa od podstaw. Może przejdziemy od razu do sedna?
STWORZONY OD PODSTAW
Podczas otwartej bety nasz kod sieciowy bez przerwy usiłował synchronizować animacje z waszymi maszynami, jednak ostatecznie o wszystkim i tak decydował serwer. Problem z takim systemem polegał na tym, że w zależności od waszej odległości od serwera mogliście nie widzieć i/lub nie słyszeć czegoś, co się stało zanim nie wpłynęło to na postać na waszym ekranie. Przykładowo, pocisk mógł was trafić nawet jeśli teoretycznie udało się wam go uniknąć. Takie wrażenia z gry z definicji nie są optymalne, a jeśli graliście z wysokim pingiem, to sytuacja robiła się jeszcze gorsza.
Aby rozgrywka była lepsza, postanowiliśmy stworzyć i implementować kod sieciowy typu rollback przygotowany specjalnie dla MultiVersus. Ujmując rzecz w skrócie: kod sieciowy rollback nadal przesyła i odbiera dane wejściowe graczy, jednak każde wciśnięcie przycisku zawiera również dokładny znacznik czasu wraz z momentem aktywacji. Pozwala to klientowi zrekonstruować, co mogłoby się stać, gdyby otrzymał te dane w chwili kliknięcia. Cofając się w czasie, a następnie dokonując natychmiastowej symulacji do aktualnego momentu, gra może zapewnić wam zabawę, która jest płynna i przyjemna. Kod sieciowy typu rollback sprawia, że widzicie dokładnie to samo, co wasz przeciwnik, co oznacza, że jego pozycja i klatki animacji zawsze są zaktualizowane tak, aby odzwierciedlały najtrafniejsze przewidywania.
Netcode typu rollback to złoty standard bijatyk, jednak zanim zdecydowaliśmy się go wdrożyć, sprawdziliśmy różne modele sieciowe. Chociaż ten typ kodu jest super, stawiał przed nami kilka wyzwań. Musieliśmy mieć pewność, że to najlepsza opcja dla MultiVersus. Przykładowo, rollback nie działa idealnie, jeśli na ekranie dużo się dzieje (np. w meczach 2 na 2 lub „każdy na każdego”), czy jeśli wasza maszyna nie była w stanie poradzić sobie z ponownym przetwarzaniem klatek. Ostatecznie postanowiliśmy stworzyć własny kod sieciowy od zera. Taki, który zrobi dokładnie to, co nam potrzebne.
Gdy pojęliśmy decyzję o zmianie kodu na rollback, zaczęła się prawdziwa orka. Jednym z aspektów tego podejścia jest dołożenie starań, aby każda jedna klatka wyglądała tak samo, niezależnie od sprzętu. Jednak większość oprogramowania, z którego korzystaliśmy podczas otwartej bety, nie obsługiwała tego, co chcieliśmy osiągnąć dzięki nowemu kodowi. Musieliśmy więc przebudować różne części gry, począwszy od drobnych podmian, przez Kudłatego, który musiał nadawać się do gry 1 na 1, aż po przywrócenie i grywalność wszystkich innych bohaterów. Naszym celem było zapewnienie wam jak najlepszej rozgrywki. Takiej, która byłaby fair, stabilna i wystarczająco elastyczna, aby dała sobie radę i w momencie premiery
Multiversus, i w dalszej przyszłości.
LEPSZE POŁĄCZENIA I WIĘCEJ ZABAWY
Ulepszony kod sieciowy to ulepszone dobieranie graczy. Podczas otwartej bety o dobieraniu decydowało opóźnienie, co znaczy, że gracze często bawili się z osobami przebywającymi w najbliższych regionach, ponieważ tacy towarzysze rozgrywki zapewniali najlepszą jakość meczu i połączenia oraz najniższy ping. Nasz nowy kod pozwala wszystkim na płynną grę także z osobami, które znajdują się dalej. Przeprowadziliśmy sporo testów z bardzo pozytywnymi rezultatami. Połączenia graczy są bardziej stabilne a rozgrywka – lepsza.
To dla nas bardzo ważne, ponieważ zależy nam na tym, aby gra online w MultiVersus była tak płynna, jak gdybyście bawili się lokalnie z graczem siedzącym obok was. Jedyna różnica polega na tym, że przeciwnicy online nie zjedzą wam czipsów.
DZIĘKUJEMY
Ogromne dzięki za to, że jesteście częścią społeczności MultiVersus. Nie zapomnijcie wpaść na nasze kanały społecznościowe ani dołączyć do nas na Discordzie, gdzie będziecie mogli podyskutować o naszych ulepszeniach kodu.
Twitter: https://go.wbgames.com/MVSTwitter
TikTok: https://go.wbgames.com/MVSTikTok
Instagram: https://go.wbgames.com/MVSInstagram
Facebook: https://go.wbgames.com/MVSFacebook
Reddit: https://go.wbgames.com/MVSReddit
Discord: https://go.wbgames.com/MVSDiscord
Więcek o grze dowiecie się z kolejnych postów, które będziemy publikować aż do dnia premiery, czyli 28 maja. Do zobaczenia następnym razem!