Microsoftowa „maszyna czasu” otwiera drogę do streamingu gier bez lagów
Przeniesienie gier do chmur obliczeniowych (Gaming-as-a-Service,GaaS) jest znacznie trudniejszą sprawą, niż np. przeniesienie dochmur edytorów tekstu. Nawet jeśli zapewnić w chmurze odpowiedniowydajną serwerową instancję, na której działałby kod gry, towciąż problemem pozostaje zapewnienie infrastruktury sieciowej oodpowiedniej przepustowości, która pozwoliłaby na interaktywne„pompowanie” do cienkiego klienta (w tym wypadku np. tabletu czytelefonu) wysokorozdzielczej grafiki w kilkudziesięciu klatkach nasekundę. Bardzo ciekawy pomysł w tej sprawie zaproponowałMicrosoft – rozwiązanie jego badaczy jest swoistą „maszynączasu”, dzięki której opóźnienia sieciowe przestają miećznaczenie.
25.08.2014 | aktual.: 25.08.2014 17:09
Dla producentów gier usługi, które pozwoliłyby grać wnajnowsze gry na relatywnie słabych urządzeniach, takich jakprzenośne konsole, tablety, smartfony czy komputerki HTPC, tospełnienie marzeń. Typowy niedzielny gracz nie dysponuje maszynąspełniającą wyśrubowane wymogi wydawanych dziś tytułów, osóbtakich jest dziś zaś znacznie więcej, niż hobbystów z ichpotężnymi CPU i GPU. I już dziś pewne propozycje w tym zakresiemożna znaleźć – usługi takie jak NVIDIA Grid czy OnLive pozwalają na granie na całej gamie słabszych urządzeń,ale jakość grafiki i płynność rozgrywki sporo odbiegają odtego, co zapewnić może gra uruchomiona lokalnie.
Wymagania stawiane przez dostawców GaaS wcale nie są jakośwygórowane – szerokopasmowe łącze 3-5 Mb/s nie jest w tychczasach niczym specjalnym. Jednak żaden dostawca Internetu niezapewni (i nie może zapewnić) odpowiednio niskich opóźnień natrasie między klientem a chmurowym serwerem, na którym uruchomionogrę. By zapewnić w miarę znośny czas komunikacji w obie strony,od wysłania pakietów kodujących aktywność gracza od klienta naserwer do odesłania klientowi pakietów z wyrenderowanym widokiemgry, zmniejsza się rozdzielczość (w najlepszym razie zapewniając720p) i stosuje pogarszającą jakość obrazu kompresję.
Testowany już pomysł badaczy z Microsoft Research rozwiązujeproblem lagów w Sieci w dość niespodziewany sposób. Rozwijane podnazwą kodową „DeLorean” (by nawiązać do słynnej maszynyczasu dra Emmeta Browna) oprogramowanie wykorzystuje kilka różnychtechnik, aby w kompleksowy sposób wyeliminować opóźnienia. Są toprzewidywanie przyszłych działań gracza, próbkowanie przestrzenistanów, kompensowanie błędnych przewidywań i klasyczna jużkompresja danych.
Powstała w ten sposób „maszyna czasu” działa następująco:gracz uruchamia np. na tablecie FPS z listy tytułów dostępnych nagamingowym serwerze. DeLorean wywołuje wówczas kilka dodatkowychinstancji gry, w których renderowane są przyszłe stany gry napodstawie analizy możliwych działań gracza. Jeden z takich stanówmoże opisywać np. przesunięcie się w lewo za zasłonę, inny skokw prawo. Wyliczone prawdopodobne stany przekazywane są do głównegoserwera, który w momencie otrzymania informacji o faktycznym ruchugracza zwraca prerenderowaną scenę.
Niektóre z akcji gracza, takie jak strzelanie, są bardzo trudnedo przewidzenia, więc oprogramowanie wykorzystuje równoległespekulatywne działania do eksplorowania wielu możliwychprzyszłości. Przestrzeń możliwych stanów bardzo szybko jednakwówczas „puchnie”, więc wykorzystując technikę podpróbkowaniaprzestrzeni stanów i przesunięcia w czasie strumienia zdarzeńznacząco zmniejsza się zbiór możliwych wyników, praktycznie bezpogorszenia interakcji z grą.
Siłą DeLoreana ma być samouczący się algorytm, który napodstawie dotychczasowych zachowań gracza buduje model jegonajbardziej prawdopodobnych zachowań, wykorzystywany przy wyborzeposunięć do prerenderowania. Jeśli jednak okaże się, że żadnaz prerenderowanych scen nie okazała się trafiona, gracz zrobił cośnieprzewidzianego, to oprogramowanie Microsoftu potrafi przynajmniejoszacować, jak bardzo się pomyliło – i na tej podstawiewykorzystać już wyrenderowane sceny do szybkiego zbudowaniaoczekiwanego widoku.
Eksperymentalny zestaw, na którym testowano DeLoreana nie miałwyśrubowanych parametrów sprzętowych – czterordzeniowy IntelCore i7, 16 GB RAM i karta graficzna NVIDIA GTX 680 z 4 GB RAMpozwoliły na wyeliminowanie opóźnień na poziomie nawet 250 ms,czyniąc możliwym granie w takie gry jak Fable 3 czy Doom 3 naurządzeniach mobilnych po połączeniach 3G. Opinie testującychsystem graczy to potwierdzały. Opóźnienie w sieci na poziomie 64ms (bez DeLoreana) zostało skomentowane następująco: *OK, mogęgrać, ale to nie dla eksperta,zaś 256 ms – *znienawidziłem to, za trudno by grać.Tymczasem wystarczyło uruchomićoprogramowanie Microsoftu, by grający przez sieć z opóźnieniem256 ms gracz stwierdził myślałem, że grałem woryginał. Jeśli nawet to nie było wzorowe, to było bardzo dobre.
O szczegółach rozwiązaniamożecie poczytać w pracy pt. DeLorean: Using Speculationto Enable Low-Latency Continuous Interaction for Cloud Gaming,dostępnejdo pobrania ze stron Microsoft Research. Nie wiadomo jeszcze,kiedy oprogramowanie stanie się częścią chmur gamingowych (GaaS), ale biorącpod uwagę dojrzałość rozwiązania i jego niskie wymogi sprzętowe,powinno to stać się raczej w bliższej niż dalszej przyszłości.