Jak działa cloud gaming? Inżynieria grania bez karty graficznej

· 2 min czytania · Zespół NitroByte

Uruchomić grę nie na swoim komputerze, tylko na serwerze oddalonym o setki kilometrów, i płynnie grać na własnym ekranie – brzmi jak magia. To nie magia. Stoi za tym bardzo konkretna inżynieria, a każdy jej element rozlicza się w milisekundach.

Opowiemy bez przesady, czego nauczyliśmy się, budując Nitrovę.

Pętla: wejście, obraz, sieć

Cloud gaming to w gruncie rzeczy pętla, która kręci się bez przerwy. Naciskasz klawisz – sygnał trafia na serwer. Mocna karta graficzna na serwerze renderuje klatkę. Klatka jest natychmiast kompresowana do wideo, wędruje przez sieć do Ciebie, zostaje zdekodowana i wyświetlona. Sześćdziesiąt razy na sekundę, albo i częściej.

  • Wejście: zdarzenie z klawiatury, myszy lub pada trafia na serwer.
  • Renderowanie: gra działa na GPU serwera, tak jak na zwykłym komputerze.
  • Kompresja: sprzętowy enkoder w ciągu milisekund zamienia klatkę w wideo.
  • Transmisja i dekodowanie: wideo dociera do Ciebie, urządzenie je dekoduje i wyświetla.

Główny wróg: opóźnienie

Łączny czas tej pętli to różnica między naciśnięciem klawisza a zobaczeniem efektu na ekranie. Przy filmie kilkusekundowy bufor nikomu nie przeszkadza; w grze odczuwalne jest nawet 100 milisekund.

W naszych pomiarach przy strumieniu 12 Mbps mediana opóźnienia sieci wyniosła 9 milisekund. Gdy na tym samym łączu podnieśliśmy przepustowość do 15 Mbps, wahania skoczyły do 65 milisekund. Wniosek jest jasny: większa przepustowość nie zawsze znaczy lepiej. Płynność zachowuje się, korzystając z tyle, ile łącze faktycznie uniesie.

Równowaga między przepustowością a jakością

Między jakością obrazu a płynnością trwają nieustanne negocjacje. Im wyższa rozdzielczość i liczba klatek, tym więcej danych na sekundę. Jeśli łącze tego nie udźwignie, klatki się spóźniają albo giną.

Dlatego dobry klient dobiera ustawienia na podstawie pomiarów, a nie zgadywania. W Nitrovie, gdy jakość obrazu jest ustawiona na automatyczną, używana jest rozdzielczość ekranu, a gdy automatyczna jest przepustowość – wartość, którą serwer ustala, mierząc, ile łącze faktycznie uniesie.

Dlaczego własne serwery?

W cloud gamingu fizyczna odległość od serwera to wprost opóźnienie. Im bliżej serwery, tym krótsza pętla. To jeden z powodów, dla których naszą infrastrukturę utrzymujemy w centrach danych w Stambule i Bursie.

Nie tylko gry

Ta sama infrastruktura sprawdzi się w każdej pracy, która wymaga karty graficznej. Rendering, montaż wideo czy trenowanie modeli AI – z oddalonego RTX 3090 można korzystać jak z własnej maszyny. Przy niektórych obciążeniach nie trzeba nawet przesyłać obrazu: kod i dane zostają na Twoim komputerze, a na serwer trafiają tylko te bajty, których obliczenia potrzebują w danej chwili.

Uczciwe ograniczenia

Cloud gaming nie w każdych warunkach zastąpi lokalny komputer. Niestabilne Wi-Fi sprawi, że nawet najlepszy serwer wypadnie słabo. W grach rywalizacyjnych kilka milisekund potrafi zrobić różnicę. Systemy zabezpieczeń niektórych gier nie pozwalają na granie zdalne. Lepiej powiedzieć to na starcie, niż to ukrywać.

Nitrova jest obecnie w fazie beta i z każdą wersją przesuwamy te granice nieco dalej. Chcemy pokazać, że granie bez karty graficznej to nie magia, tylko dobra inżynieria.

Następny artykuł 7 najczęstszych błędów technicznych przy tworzeniu gier (i jak ich uniknąć)