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

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.