Czy granie na Linuksie ma sens?
Właśnie przeczytałem wpis mówiący o tym, że Valve oficjalnie uśmierciło Steam Machines. Jak to na PPE bywa, temat został przedstawiony pobieżnie, przez brak zrozumienia albo po prostu z lenistwa. W rzeczywistości Valve usunęło ze strony Steam podstronę poświęconą Steam Machines, a to wszystkim zasugerowało, że Valve usmierca swój produkt. Pracownik Valve już zareagował i zapewnił, że firma nie porzuca wsparcia dla Linuksa. A same Steam Machines umarły praktycznie w dniu premiery.
Cofnijmy się w czasie do dnia ogłoszenia Steam Machines. Po co Gabe się na to zdecydował? Pewnie wielu z Was o tym pamięta, ale warto wtajemniczyć szersze grono - w owym czasie Microsoft planował całkowicie zamknąć Windowsa i pozwalać na instalację aplikacji jedynie przez ich własny sklep (Microsoft Store). Oczywiście tłumaczono to troską o jakość aplikacji, a w rzeczywistości była to chęć sięgnięcia po spory kawałek tortu jakim jest prowizja od dóbr elektronicznych z grami na czele.
Valve zrozumiało co to dla nich oznacza. Szybko zaczęli pompować pieniądze w nowy standard (Vulkan API), zatrudnili własnych ludzi do poprawy jakości sterowników graficznych od AMD/ATI, współpracowali z NVidia nad poprawą ich sterowników. No i współpracowali z Dell / Alienware i pokazali swiatu Alienware Alpha z zainstalowanym SteamOS, czyli Steam Machine. Dodatkowo "na pokładzie" Valve miało mieć wiele innych firm. W praktyce skończyło się na firmie Syber, a Zotac chyba nawet swojej Steam Machine nie przygotował.
Ale dla gracza sprzęt to czesto tylko narzędzie. To co jest najważniejsze to gry. Gabe i jego ludzie doskonale zdawali sobie z tego sprawę, dlatego przeportowali wszystkie swoje gry (zaczęli bodajże od Left 4 Dead 2), udostępnili narzędzia i pokazali ludziom z branży, że wystarczy chcieć, a gry na Linuksie nie będą znacznie odbiegać wydajnościowo od tych na Windowsie.
Jednak wielu deweloperów nie chciało wziąć na siebie trudu portowania gier.
Czemu?
Zdecydowana większość gier na Windowsie napisana jest pod Dierect X'a, często pod różne wersje (najpopularniejsze w ostatnim czasie 8,9,11,12). Zazwyczaj gry są budowane na silniku, czasem autorskim, czasem 3rd party. Odtwarzają dźwięk, przechwytują to co robi użytkownik. Na klawiaturze, myszce, jousticku, kierownicy. Gry często mają tryb sieciowy, czasem są zintegrowane z usługami socjalnymi, zapisują postęp użytkownika w jego systemie plików, zapisują sieciowy postęp na swoich serwerach.
I to wszystko musi działać na Linuksie, aby powstał port gry. Często udany port jest zablokowany przez tzw. "middleware". Middleware w tym rozumieniu to oprogramowanie, które nie jest dla końcowego gracza widoczne, ale jest częścią gry / zależnością w kodzie, która musi zostać spełniona na nowej platformie. Może to być baza danych, może to być jakaś biblioteka dll, może to być platforma do statystyk. I problem pojawia się ogólnie gdy dowolna część wspomnianego middleware wymaga przeportowania, a jest to oprogramowanie 3rd party, do którego firma tworząca grę nie ma praw. Często jest też tak, że silnik gry korzysta z takiego oprogramowania i to uniemożliwia port.
Więc port gry to nie tylko przepisanie odwołań do funkcji DirectX na odwołania do funkcji OpenGl (czy teraz Vulkan API). To portowanie wszystkiego, z czego gra korzysta.
Valve zrozumiało, że dla wielu twórców gier to za dużo. Dlatego pchnęło naprzód dwie strategie - rozwój narzędzi dla nowych gier i portowanie istniejących gier.
Wspomniałem o portowaniu silników gier. Oczywiście gdy silnik jest in-house to przeportować musi go twórca silnika, lub zewnętrzna firma musi dostać kod tego silnika. Jednak jest wiele popularnych silników, z których korzysta wielu developerów (Unity, Unreal Engine, etc.). Valve dołożyło starań, aby te silniki działały pod Linuksem i tworzyły executable działający pod Linuksem. Zajęło to dużo czasu, ale dzisiaj użycie tych silników daje z automatu wsparcie dla Linuksa - oczywiście pod warunkiem niekorzystania z dodatkowego software'u który Linuxa nie wspiera. Dzięki tej pracy na Linuxie dostępne są takie tytuły jak Pillars of Eternity, Tyranny, Wastelands 2 - wszystkie te gry są oparte o Unity.
Oprócz lobbowania na porty silników, Valve udostępniło swoje narzędzia deweloperskie użyte przy portowaniu własnych gier i mocno lobbowało przy powstawaniu Vulkan API i narzędzi do developmentu. Efekt tych prac widoczny będzie z czasem.
Jednak na już potrzebne były gry, a developerzy nie palili się do portowania. Dlatego Valve zatrudniło 3 firmy:
Feral Interactive, Virtual Programming i Aspyr Multimedia. Firmy te odpowiedzialne były za poszerzenie biblioteki gier na Linuksie, jednak różniły się metodami portowania.
Feral Interactive okazało się być najbardziej wydajną firmą z najlepszymi rezultatami. Ich portowanie gier opiera się o automatyczne przepisywanie funkcji DirectX na OpenGL i późniejsza ręczna optymalizację. Dodatkowo ręcznie portuja cały middleware. Ostatnio nawet zaczęli wydawać porty w oparciu o Vulkan API więc ich metoda cały czas ewoluuje. Dodatkowo współpracują z deweloperami, dzięki czemu np. XCOM2 wyszedł na Linuksa w dniu premiery na Windowsa. Wydali dużo bardzo dobrych portów i najmocniej przyczynili się do poprawy życia graczy na Linuksie. Dzięki nim można zagrać m.in. w Hitmana, Deus Ex Mankind divided, Dirt Rally, Tomb Raider (2013).
Virtual Programming z kolei jest firmą, której niepowodzenie przy Wiedźminie 2 sprawiło, że dzisiaj Linuksowcy nie mogą zagrać natywnie w Wiedźmina 3. Virtual Programming używa wrappera o nazwie eOn. Metoda Virtual Programming opiera się o uruchamianie kodu Windowsowego gry w ich wrapperze który zamienia wywołania funkcji DirectX na OpenGL w locie. Identycznie jak emulator, identycznie jak Wine, ale z jakiegoś powodu ludzie z VP unikają słowa emulacja jak ognia. Virtual Programming wydało kilka portów, które dzisiaj są naprawdę w porządku (również wspomniany Wiedźmin 2) jednak początkowe niepowodzenie sprawia, że nawet Linuksowi gracze potrafią się pokłócić o sens portów od VP. Przeportowali m.in. Spec Ops: the Line, BioShock Infinite czy ARMA 3
Aspyr Multimedia - według wywiadów stosują podobną technikę, co Feral. Dzięki nim Linuksowi gracze mogli spędzić wiele przyjemnych godzin z Civilization V i VI czy z grami z serii Borderlands.
Steam Machines zostały ogłoszone w 2013 roku. Valve wydało klienta Steam na Linuksa i od tego momentu zaczęło zabezpieczać się na wypadek chciwości Microsoftu. Był to przełomowy moment dla Linuksowych graczy. W 5 lat z platformy na której dostępny był jedynie Tuż Racer, Linux stał się platformą, na której można przyjemnie pograć w wiele tytułów AAA i w nieskończona ilość gier Indie.
Pomimo "śmierci" Steam Machines, wszyscy Linuksowi gracze są wdzięczni Valve za to, jak granie na Linuksie się rozwinęło dzięki nim. Osobne zdanie należy się CD Projekt. Chłopaki dorzucili wsparcie dla Linuksowych gier na GOGu i byli bardzo fajnym podmiotem biorącym udział w rozwoju Linuksowego grania. Niestety zrobienie Linuksowej wersji GOG Galaxy to dla nich za dużo. Dodatkowo na CD Projekt RED i Valve cieniem kładzie się fałszywa informacja o tym, że Wiedźmin 3 wyjdzie na SteamOS - w rzeczywistości nigdy CD Projekt RED tego nie potwierdził.
Wspomniany "false advertising" to jeden z powodów dla których Steam Machines nie odniosły jakiegokolwiek sukcesu. Oprócz Wiedźmina 3 na SteamOS zareklamowano Street Fighter V i Evolve, które nigdy na Linuksa nie trafiły.
Jeśli chodzi o pozostałe problemy to:
- Zbyt wysoka cena,
- Brak sensownych zestawów (dlaczego gracz miałby wybrać Steam Machine za 3k zł z Payday 2 jeśli mógłby kupić PS 4 Pro z 3 najnowszymi grami za 2k zł? Albo PS4 slim bez gier za 1k zł? Valve nigdy nie zrozumiało błędu, a mogło np. Doładować konto gracza grubszą kwotą, np. 250 czy 500 euro, które gracz wydałby w ich sklepie. W ten sposób napędziliby ilość sprzedanych maszyn, a realny koszt tego doładowania byłby dla nich znacznie niższy patrząc na ceny w ich sklepie.
- Brak jakiejkolwiek akcji reklamowej w dniu premiery
- Brak konsekwencji i uwagi poświęconej Steam Machines.
Jednak "śmierć" Steam Machines, nie oznacza braku wsparcie dla SteamOS czy porzucenie wspierania Linuksa. Gdyby to się wydarzyło, to byłaby to straszna informacja.
W tytule tego wpisu zadalem pytanie - czy granie na Linuksie ma sens?
Dla większości odpowiedź jest oczywista - nie ma, bo po co grać w porty gier o mniejszej wydajności, z dodatkowymi bugami, czasem z gorszą grafiką, szczególnie że gier AAA jest nieporównywalnie mało i są one wydawane czasem rok, czasem 2, czasem 3 po premierze. I to wszystko jest prawdą.
Ale czy dla mnie granie na Linuksie ma sens? Tak, gdyż jest to moja pasja, rozwój grania na Linuksie mnie cieszy a sam robię to regularnie, wspierając deweloperów swoimi kilkoma centami. Dzięki Linuksowi zapoznałem się z twórczością Klei! Entertainment (Shank 1,2, Mark of the Ninja, Don't Starve, Don't Starve Together, Invisible Inc.), zagrałem w Teslagrad i Broforce. Grając przez Wine przeszedłem Dirt3: Complete Edition. Przeszedłem Wiedźmina 2:EE, co sprawiło że przeszedłem przez Wine Wiedźmina 1 i kupiłem PS4 tylko dla Wiedźmina 3.
Dzisiaj tytuły niedostępne na Linuksie ogrywam na PS4. Aktualnie gram w kupionego rok temu Rise of the Tomb Raider, grę którą aktualnie Feral Interactive portuje na Linuksa. Z uwagi na zakup PS4 i inne wydatki,
wszystkie gry linuksowe ogrywam na moim wysłużonym laptopie Asusa z procesorem i5 2410m i kartą graficzną 540m. I gra mi się przyjemnie, ze Steam Controllerem w ręku, czasem z laptopem na kolanach, czasem na TV. Gdy znajdą się jakieś większe wolne pieniądze to laptop zostanie wymieniony, ale sposób grania zostanie ten sam. Nadal granie na Linuksie zostanie częścią mojego growego życia.
Niniejszy wpis nie ma na celu kogokolwiek do grania na Linuksie przekonać. Wielu ludzi grywa w PUBG, gry Blizzarda czy LOLa, a więc w gry których na Linuksie nie ma. Gry Blizzarda i LOLa oczywiście można odpalić przez Wine, ale jest to zabawa, która dla większości ludzi nie ma sensu, szczególnie jeśli te gry na Windowsie po prostu działają. Jednak chciałbym, żeby większe grono ludzi miało świadomość jak granie na Linuksie się zmieniło - Steam przerzucił na linuksa click and play - gry po prostu działają. Oczywiście dawne podejście też jest możliwe - chcesz zagrać w Wiedźmina 3 mimo, że nie został wydany na Linuksa? Zainstaluj Wine, zainstaluj Wiedźmina 3, zainstaluj patche do Wine i jeśli masz odpowiedni sprzęt i zapał - przejdziesz Wiedźmina 3 na Linuksie.
Dla większości granie na Linuksie nie ma sensu. Dla mnie ma. Pozdrawiam!
P.S. Wykorzystane grafiki pochodzą z portali gamingonlinux.com oraz wccftech.com.
P.S.2 Dla zainteresowanych aplikacją Steam Link dla Samsung TV i tym jak ona sobie radzi ze Steamem na Linuksie podsyłam linka do galerii zdjęć z mojej sesji ze Steam Linkiem w Samsung TV w połączeniu ze Steamem na Linuksie.