Od zarania grania w domowych pieleszach mieliśmy wybór dotyczący platformy, przy której będziemy spędzać czas. Zwykle taki wybór oznacza zakup sprzętu danego producenta z całym inwentarzem oprogramowania. Począwszy od ZX Spectrum, poprzez różne modele Atari, Amigi (Workbench!) czy urządzeń Apple, zakup sprzętu dawał nam w mniejszym lub większym stopniu dostęp do systemów operacyjnych, które pchały ducha w silikonowo-metalowo-plastikowe konstrukcje.

W dzisiejszych czasach, kiedy na rynku z jednej strony królują konsole, a z drugiej PC, rzadko kiedy zastanawiamy się nad kwestią oprogramowania zawiadującego naszymi maszynami. Niektórzy doskonale orientują się, że Sony i Nintendo postawiły na FreeBSD (wersję 9.0 zmodyfikowaną jako OrbisOS w przypadku Sony). Microsoft używa trzech systemów operacyjnych w Xbox One. Jeden do wirtualizacji, drugi do aplikacji, a trzeci do gier, bazujący na jądrze Windows z zasłużonym DirectX (nazwa Xbox pochodzi od DirectX-Box), Apple to oczywiście MacOS, który zastąpiony ma być niedługo przez mobilny iOS, a platforma PC to utarty synonim systemu Windows. Czy jednak w ostatnim przypadku tak jest w istocie? Na PC przecież można z powodzeniem instalować inne systemy operacyjne. Wybór jest spory. Rodzina BSD, FreeDOS, Unixy, Solaris, ReactOS, Haiku, multum dystrybucji systemu Linux i tak dalej. Każdy z nich oferuje możliwość grania, ale największy wybór tytułów, także tych AAA, dostępny jest na Linuxie.

Pozwolę sobie na zadanie małej zagadki. Czy orientujecie się, ile działających w systemach Linux gier znajduje się obecnie w dostępnej na Steam bibliotece? 50? 1000? 5000?

Otóż jest ich obecnie prawie 7000 (25% biblioteki). W przypadku Humble Bundle jest to 20% katalogu. Nasz rodzimy GOG natomiast ma 950 gier na Linuxa z 2610 dostępnych w sklepie (czyli ponad 36% biblioteki)*.

Żeby dodać nieco smaku do tego pachnącego liczbami wstępu, dodam, że tylko od 21 sierpnia br. liczba gier na Steamie, w które można zagrać na Linuksie, wzrosła o ponad półtora tysiąca i rośnie nadal. Jak do tego doszło? O co tutaj chodzi? Służę odpowiedzią, ale w tym celu cofnijmy się nieco w czasie. Dokładnie do 2013 roku, kiedy to niejaki Gabe Newell ogłosił, że Linux jest przyszłością grania i wydał klienta Steam do tego systemu oraz dystrybucję Linux SteamOS dedykowaną do grania. Chociaż nie – cofnijmy się jeszcze bardziej. Kontekst jest w tym wypadku naprawdę ciekawy.

Wczesne lata osiemdziesiąte. Okres, który wielu czytelnikom Pixela kojarzyć może się przede wszystkim z Bajtkiem, Pegasusem, Atari 65XE oraz ZX Spectrum. Początki elektronicznej rozrywki z prawdziwego zdarzenia. Młody człowiek rezygnuje ze studiów na Harvardzie, aby przez dekadę pracować w firmie Microsoft nad wczesnymi wersjami systemów Windows. Wikipedia podaje, że Gabe zachwycił się produkcjami FPS z lat dziewięćdziesiątych (głównie Doomem) na tyle, żeby stwierdzić, że przyszłość przemysłu rozrywkowego leży w grach. Super Mario 64 pomogło mu zrozumieć, że gry są formą sztuki. W efekcie zapragnął własnego studia deweloperskiego. Założył je w 1996 roku pod nazwą Valve razem z kolegą, z którym odszedł z Microsoftu, Mikiem Harringtonem.

Obecnie Valve jest w czołówce firm w USA zarabiających najwięcej w przeliczeniu na pracownika. Sprzedają około 70% wszystkich gier na platformie PC (oferta liczy ponad 27 tysięcy tytułów). A zatem powstaje pytanie: czy mimo istnienia innych, konkurencyjnych sklepów, trudno wyobrazić sobie scenariusz, w którym przyszłość firmy mogłaby być zagrożona? Otóż nie. Oto poprzedni pracodawca Newella i jednocześnie właściciel platformy, w której Steam prosperuje tak dobrze, że tworzenie kontynuacji Half Life czy Portal przestaje być oficjalnie planowane, zapowiada stworzenie własnego sklepu dystrybucji cyfrowej. Microsoft zapatrzony w sukces App Store firmy Apple czy Play Store Google’a i po porażce na rynku smartfonów ostrzy zęby na rynek cyfrowej dystrybucji, który tak dobrze opanował Steam. Zapowiedź sugeruje, że scenariusz Apple, w którym aplikacje instalować można jedynie z oficjalnego sklepu, to cel jaki, chce osiągnąć gigant z Redmond. To oznaczałoby poważne kłopoty, jeśli nie koniec platformy Steam. Gabe szybko zdał sobie z tego sprawę i postanowił działać. W tym miejscu zatrzymajmy tę opowieść i spójrzmy na zupełnie inną planetę oraz społeczność, która żyje poza światem kontrolowanym przez Microsoft.

Oto w 1991 roku student Uniwersytetu w Helsinkach po pół roku pracy pokazuje światu swój projekt będący nowym systemem operacyjnym (a właściwie jego jądrem). Udostępnia go razem z kodem źródłowym, co powoduje stworzenie społeczności wspólnie rozwijającej cały system.  Pojawiały się oczywiście pojedyncze gry. Głównie porty z systemów Unix, następnie z DOS (Doom). Z uwagi jednak na to, że szerokie zastosowanie systemu miało miejsce w sferze serwerowej, bardzo niewielu deweloperów i wydawców decydowało się publikować swoje tytuły na tej platformie. Znamienitym wyjątkiem był tu id Software, który przygotowywał i udostępniał kolejne odsłony swojego silnika, umożliwiając grę w takie tytuły jak Quake czy Return to Castle Wolfenstein i słynne sieciowe Enemy Territory. Nikt nie miał jednak wątpliwości, że Linux nie jest platformą dla graczy. Nie mieli ich także producenci kart graficznych, którzy co prawda przygotowywali sterowniki do Linuxa, ale nie dbali należycie o ich jakość. Brakowało wielu bibliotek czy narzędzi dla deweloperów, które były dostępne na Windows.

Społeczność próbowała podchodzić do problemu na różne sposoby. Jednym z najznamienitszych było powstanie w 1993 roku projektu nazwanego Wine (akronim od Wine Is Not Emulator). Program potrafi przekierowywać wywołania systemowe Windows na odpowiedniki w systemach unixowych (POSIX). Co to oznacza w praktyce? Aplikacje z Windows uruchamiane za pomocą Wine wykonują się tak jak w Windows, widząc strukturę katalogów i biblioteki, których potrzebują do działania. Wine dba o to, by aplikacja była święcie przekonana, że pracuje pod Windows i miała wszystko to, co jej do „życia” potrzebne. W tle serwer Wine, który o to dba, linkuje odwołania do API Windows do natywnych w systemie Linux (lub innym). Jeśli zatem aplikacja z Windows chce narysować na ekranie kreskę, odpowiednie polecenie odbierane jest przez Wine i przekazywane w locie do serwera obrazu w Linuxie, który ją narysuje, dając odpowiedź aplikacji. Działa to w obie strony. Jeśli Wine przekaże aplikacji, którą uruchamia, że użytkownik przesunął kursor myszy na narysowany wcześniej guzik i wcisnął lewy przycisk, aplikacja będzie wiedziała, że musi wykonać akcję związaną z tym przyciskiem, o czym dowie się Wine i przekaże odpowiednie polecenia do macierzystego systemu. To trochę jak z ludźmi żyjącymi w Matrixie, za którego niewidzialnymi ścianami wszystkim steruje Linux. Są święcie przekonani o tym, że ich świat jest realny, choć tak naprawdę ten wcale nie istnieje. Nazwa Wine powstała od słów Windows Emulator, ale z uwagi na to, że wcale nie emuluje procesora, kodu (tak naprawdę nic nie emuluje) ani nic nie wirtualizuje, została zmieniona, by uwypuklić te różnice. Dzięki brakowi emulacji, a jedynie przekierowywaniu odwołań systemowych, w niektórych przypadkach aplikacje Windows działają szybciej. W innych, kiedy odmawiają posłuszeństwa w systemie Windows 10, z powodzeniem działają pod Wine. Ciekawostką jest, że w celu umożliwienia uruchamiania wielu aplikacji napisanych pod Windows, deweloperzy Wine musieli zaimplementować błędy charakterystyczne dla systemu Windows, od których obsługi zależy poprawne działanie kodu. To tytaniczna praca (także z uwagi na niekompletną i często błędną dokumentację API systemów Microsoft), która cały czas trwa. Obecna stabilna wersja jest oznaczona numerem 5.0.

Na dziś dzień 4900 aplikacji ma status platynowy, co oznacza, że działają w pełni, bezbłędnie oraz całkowicie stabilnie. Status złoty ma 4153 aplikacji. Działają bezbłędnie i stabilnie, ale wymagają specjalnej konfiguracji Wine. Z kolei 3651 aplikacje zyskały status srebrny, oznaczający drobne problemy niewpływające na typowe użytkowanie. Przez wiele lat gracze, którzy nie chcieli lub nie mogli korzystać z systemów giganta z Redmond, konsumowali popularne gry jak WOW, kolejne części Diablo, Fallout, GTA czy Sims właśnie dzięki temu projektowi. Dzieje się tak do dziś w przypadku wielu nowych gier (Overwatch).

Dzięki decyzjom biznesowym Gabe’a Newella i wysiłkom pracowników Valve, którzy przeportowali silniki Source oraz gry Valve (Half-Life, Portal, Counter-Strike, DOTA…) na platformę Linux oraz zadbali o rozwój klienta Steam na tej platformie, zainteresowanie Linuxem jako platformą do grania powoli rosło. Kluczem w poprzednim zdaniu jest słowo „powoli” i ma ono swoje uzasadnienie. Gabe zdawał sobie sprawę, że platforma do tej pory nastawiona na serwery, telefony oraz urządzenia wbudowane, nie była dobrze przygotowana pod kątem wymagających gier. Valve nawiązało porozumienia z producentami kart graficznych, silników do gier oraz innych narzędzi. Zatrudniło wielu deweloperów i zaczęło wspierać programistów open source pracujących nad projektami usprawniającymi tworzenie i działanie gier w systemie spod znaku pingwina. To jednak za mało. Słoniem w składzie porcelany był DirectX. Deweloperzy są tak mocno do niego przyzwyczajeni, że często nawet nie rozważają multiplatformowego konkurenta w postaci OpenGL, który mimo wszystkich swoich zalet nie może równać się z technologią Microsoftu. W efekcie pisanie wieloplatformowych aplikacji jest kosztowne i czasochłonne. Dlatego w 2000 roku powstała organizacja non profit pod nazwą Khronos. Jej celem było tworzenie otwartych, wieloplatformowych standardów służących nowoczesnym rozwiązaniom multimedialnym i obliczeniowym. Wśród założycieli wymienić można ATI, Nvidię, Intela i innych. Obecnie wśród wyróżnionych członków są także Valve, AMD, Google, Apple, Sony, Samsung. Jako członkowie udzielający się są tam Nintendo, Amazon, Oculus… W 2014 dołączył sam Microsoft. To właśnie tej grupie powierzono w 2006 roku dalszy rozwój standardu OpenGL i to właśnie ta grupa stworzyła projekt Vulkan, który jako następca OpenGL umożliwia deweloperom pisanie jednego kodu odpowiedzialnego za grafikę, który działać będzie wydajniej niż DirectX czy OpenGL oraz w ten sam sposób na wszystkich systemach (Linux, Windows, Android, Switch, iOS, Tizen). Vulkan jest też bardzo zbliżony do DirectX 12, co ułatwia deweloperom migrację.

Czy zatem usunięto wszelkie przeszkody na drodze tworzenia gier dla systemu Linux? Niekonieczne. Mimo że wiodące silniki jak Unity czy UE wspierają Linuxa i technologię Vulkan, mamy do pokonania problem jajka i kury. „O czym on znowu pisze?” – prawie słyszę takie pytania. Chodzi o to, że popularność Linuxa jako platformy do gier jest cały czas bardzo niska. Choć momentami Steam survey wskazywał, że przekraczała 1%, po wejściu Steamu na rynek chiński i lawinowym wzroście liczby użytkowników z systemem Windows wartość ta spadła poniżej jednego procenta. Duzi wydawcy nie chcą inwestować w tak mały rynek, bo wiąże się to z kosztami testowania i wsparcia użytkowników. Duzi nie będą wydawać na Linuxa, ponieważ to nisza. Użytkownicy nie przybędą, ponieważ jest zbyt mało gier (szczególnie tych popularnych), a korzystanie z Wine niekoniecznie jawi się jako atrakcyjna opcja.

W 2016 roku Valve wsparło i zatrudniło kilku programistów projektu Wine i tych, które umożliwiają temu programowi na korzystanie z technologii Vulkan (vkd3d dla Direct3D 12, DXVK dla Direct3D 11 oraz wined3D dla Direct3D 9). Dzięki temu gry korzystające z DirectX mogą działać bardzo wydajnie przez szybki Vulkan. Projekt został zintegrowany z platformą SteamPlay i nazwany Proton. Ujrzał światło dzienne w sierpniu tego roku. Oznacza to, że uruchamiając klienta Steam w systemie Linux (a także domyślnie w SteamOS), mamy możliwość zakupu, instalacji i uruchamiania gier dostępnych do tej pory oficjalnie na PC tylko na platformie Windows. Valve bardzo ostrożnie podchodzi do tematu i oficjalnie udostępnia tytuły tylko przetestowane przez siebie. Zaznacza też, że dodaje dla nich pełne wsparcie techniczne tak, by zwolnić od niego deweloperów. W momencie startu usługi udostępniono 27 tytułów, a wśród nich takie perełki jak nowy Doom, NieR:Automata czy Tekken 7. Umożliwiono jednak skorzystanie z opcji klienta Steam, pozwalającej na próby uruchomienia dowolnej gry z platformy Windows. Pamiętacie pytanie z początku tego tekstu o to, jak doszło do wzrostu liczby gier dostępnych dla Linuksa wzrosła o półtora tysiąca od 21 sierpnia do początku września? W ten właśnie sposób. Społeczność graczy szybko stworzyła bazę danych (podaję ją w tabelce), gdzie raportowane są testy kolejnych tytułów. Dishonored, Wiedźmin 3, Cuphead, Inside, No Man’s Sky, Wolfenstein New Order… Lista ciągle rośnie. Nie muszę chyba dodawać, że tytuły kupione pod Windows są wasze i wystarczy je zainstalować w Linuxie. Bez względu na to, czy mają natywną wersję, czy działają poprzez Steam Play.

Oto mamy zatem sytuację, w której gracze niezadowoleni z Windows nie są już więzieni niemożliwością uruchomienia ich ulubionych gier w systemie Linux. Pod koniec lipca na łamach Forbesa redaktor zniesmaczony przymusowym restartem i dłużącymi się aktualizacjami systemu z Redmond podczas wysyłania dużego, ważnego i pilnego pliku decyduje się na migrację na Linuxa. Mimo początkowych problemów z instalacją Linux Mint na jego laptopie nie poddaje się i próbuje Ubuntu. Od tego momentu jego zachwytom nie ma końca. Poprzez czterominutową instalację, dodawanie oprogramowania, poszanowanie użytkownika czy zachowanie prywatności czuje się z systemem po prostu komfortowo.

Zanim jednak niektórzy z was ruszą sprawdzać, jak Linux sprawdzi się w ich wypadku, zmuszony jestem dodać łyżeczkę dziegciu. Platforma PC jest bardzo bogata sprzętowo. Konfiguracje mogą się od siebie bardzo różnić. Decydując się na wypróbowanie Linuxa, lepiej nastawić się na to, że gry uruchamiane przez SteamPlay (Proton) nie będą osiągały takich samych wyników jak natywnie pod Windows. Nie wszystkie bogate w funkcje klawiatury, myszki, joysticki czy inne peryferia będą w pełni albo w ogóle działały. Próbując, przygotujcie się na problemy. Nie oczekujcie, że będziecie czuli się jak w Windows. Linux to inny system, działający na swój sposób. Niektórzy właśnie dlatego tak go cenią. Dla nas graczy ważne, że mamy wybór i gwarancję, że bez względu na przyszłe decyzje Microsoftu, ogromna liczba naszych gier będzie działała pod Linuxem.

Jako użytkownik systemów linuksowych z prawie 20-letnim stażem wielokrotnie wyobrażałem sobie, jak by to było, gdybym mógł komfortowo grać w wiele topowych tytułów dostępnych w najpopularniejszym systemie. Powoli dociera jednak do mnie, że ten moment w zasadzie już nadszedł. Nawet dziś trudno mi w to uwierzyć i nie mogę doczekać się jutra. Bardzo ciekawe czasy.

Przypisy

1. Baza gier działających dzięki SteamPlay

2. Biblioteka gier Steam na Linuxa

3. Portal skupiający się na grach na Linuxa

4. Redaktor Forbes o przejściu na Linuksa

5. Gabe Newell o przyszłości gier

*dane z sierpnia 2018 roku

Artykuł ukazał się w Pixelu #42, którego nakład został już wyczerpany. Zapraszamy jednak do sklepu Pixela po inne wydania drukowanego magazynu.