Linux in igre
V začetku tisočletja je na forumih, kjer se zbirajo računalniški zanesenjaki, obstajalo prepričanje, da na distribucijah GNU/Linuxa (v nadaljevanje Linuxu) ni mogoče igrati iger, saj je ta namenjen strežnikom in profesionalni rabi. Uporabniki Linuxa, ki so bili na forumih manjšina, so bíli brezupen boj z uporabniki MS Windows, ki se niso dali premakniti niti za milimeter. Ampak časi se spreminjajo in tehnologija bliskovito hitro napreduje. Namen tega članka je raziskati, kakšno je stanje dandanes, ter predstaviti dokaze, da je igranje na Linuxu lažje kot kadarkoli, ni pa brezhibno. Čeprav tudi jedro operacijskega sistema Android, ki poganja mobilne naprave, temelji na Linuxu, se ga v tem članku ne bom dotaknil, saj si zaradi drugačne strojne opreme zasluži ločeno obravnavo.
Začetki iger na Linuxu
Začetki iger na Linuxu so precej nejasni. Ena izmed prvih grafičnih iger, ki so tekle na Linuxu, je bil Sasteroids. Februarja leta 1994 je Brad Pitzel na Usenetu objavil povezavo do različice 1.0, takrat nekje pa je tudi izšlo jedro Linux 1.0.0. Gre za SVGA dvojnik igre Asteroids, kjer ste streljali asteroide in druge vesoljske ladje. Za zagon igre je bilo treba objavljeno izvorno kodo prevesti, gonilnikov, ki bi jih ponujali proizvajalci, pa praktično ni bilo.
Danes je situacija povsem drugačna. Večina iger je že prevedena za določeno arhitekturo. Odvisnosti se pogosto namestijo same (če nameščate iz skladišča) ali pa so priložene v paketu s prevedeno igro. Gonilniki so večinoma vgrajeni že v jedro, pogosto pa proizvajalci na svoji strani objavijo lastniške gonilnike, ki izkoristijo napravo v celoti in dodajo nove zmožnosti.
Tako je igranje iger na Linuxu lažje kot kadarkoli, ampak kljub temu še ni na nivoju Windows sistemov ali pa igranju na konzolah. Preden pa začnem pisati o težavah, pa bom naštel nekaj načinov, kako dobiti in poganjati igre na Linuxu.
Brezplačne igre za Linux
Vsak igralec iger na Linuxu se bo najbrž najprej srečal z brezplačnimi igrami, saj so v kopici distribucij že prisotne v osnovni namestitvi oz. na živem DVD-ju. Tako Gnome kot tudi KDE Plasma, ki sta najbolj priljubljeni namizni okolji, imata recimo svoj paket iger, ki je močno integriran v okolje. Poleg teh iger, ki so v veliki večini zelo kakovostne, pa najdemo v skladiščih in na spletu pisan kolaž drugih brezplačnih iger za Linux.
Igre v skladiščih
Če si najprej ogledamo skladišča priljubljene distribucije Ubuntu, različice 24.04, najdemo v njih več sto brezplačnih iger, od katerih je približno četrtina dovolj dobrih, da boste z njimi zapolnili marsikatero uro vašega prostega časa. Seveda je med njimi tudi veliko smetja, pri ločevanju semena od plev pa lahko uporabite moj seznam brezplačnih iger za Ubuntu.
Prenos s spletne strani avtorja, Ubuntu PPA
Za zelo priljubljene brezplačne igre bodo avtorji objavljali številne popravke in ker nekatere distribucije posodobijo pakete šele ob izdaji nove različice (recimo Debian Stable se posodobi na približno dve leti), bo to pomenilo, da boste morali ob igri s pomanjkljivostjo XY vzdržati do izdaje nove različice distribucije. Lahko sicer uporabljate preizkusne izdaje, ampak je to precej nesmiselno, če uporabljate sistem tudi za resno delo.
Rešitev je v tem, da prenesete posodobljeno različico iz spletne strani avtorjev igre. Vendar lahko tukaj nastopi več težav:
- Igro je morda treba prevesti: namestiti boste morali potrebna orodja in odvisnosti za prevajanje in to lahko marsikateremu neveščemu igralcu povzroči kupe sivih las
- Za uspešno delovanje že prevedene igre morate morda namestiti odvisnosti, ki jih v vaši izdaji še ni: če namestite pakete iz preizkusne različice, tvegate sesutje celotnega sistema, zato svetujem previdnost
- Igro lahko namestite pa nikakor ne bo delovala: ker so distribucije različne in avtorji ne morejo preizkusiti delovanja na vseh (kot to napravijo vzdrževalci distribucij), lahko prevedena igra tudi ne deluje
Če uporabljate Ubuntu ali na njem temelječe distribucije, lahko uporabite skladišče Personal Package Archives for Ubuntu, v katerih skupnost ponuja gradnje iger za specifične različice Ubuntuja, da se vam ni treba ubadati s tem. Kot pri uporabi preizkusnih različic distribucij, je treba tudi pri uporabi PPA-jev uporabljati zdravo pamet in nameščati pakete le od zaupanja vrednih avtorjev.
Plačljive igre za Linux
Prve komercialne igre na Linuxu so bile predelave AAA iger na fizičnih medijih, za katere je skrbelo podjetje Loki Software. Leta 1998 ustanovljeno podjetje je v samo treh letih obstoja preneslo hite kot so Heavy Metal: F.A.K.K.², Heretic 2, Quake 3 Arena in Unreal Tournament, zelo pomembno pa je prispevalo tudi k razvoju orodij, kot na primer namestilnik Loki Installer. Podpirali so tudi razvoj knjižnice SDL, začeli z razvojem zvočnih knjižnic OpenAl in skupaj z ID Software ustvarili urejevalnik stopenj GtkRadiant. Vzporedno z njimi je začel delovati tudi prvi pravi Linux založnik Tux Games (kasneje Linux Game Publishing), ki je med drugim založil tudi dve precej dobri streljačini Shadowgrounds in Shadowgrounds: Survivor. Z zatonom fizičnih medijev pa se je vse preselilo na splet, kjer so dominirali drugi igralci.
Digitalna distribucija
Prvi Humble Indie Bundle se je na spletu pojavil maja leta 2010. Kupci so lahko izbirali med šestimi igrami in zanje plačali koliko so hoteli, tudi 1 dolarski cent. Plačilo so lahko razdelili med razvijalce in dobrodelne organizacije. Ponujene so bile različice za Linux, Windows in MacOS X in to brez zaščite proti kopiranju, njihove namestilnike pa so lahko kupci prenesli kadarkoli in si ustvarili varnostno kopijo. Kasneje je Humble Bundle prerastel v naprednejšo platformo za digitalno distribucijo, saj so začeli prodajati tudi digitalne ključe AAA iger, drugo programsko opremo in pa tudi e-knjige.
GOG.com (nekoč Good Old Games) je z distribucijo iger za Linux začel leta 2014, potem ko so na njihovem sistemu želja zbrali več tisoč glasov za podporo Linuxu. Enako kot Humble Indie Bundle so tudi oni ponudili različice za vse tri operacijske sisteme brez zaščite proti kopiranju, v njihovem arzenalu pa so se tekom časa znašli tudi starejši naslovi, ki omogočajo brezhibno delovanje s pomočjo emulacije.
Steam, Proton in Steam Deck
Steam je storitev za digitalno razpečevanje iger, ki ga je podjetje Valve splavilo leta 2002, prva igra na njem pa je bil Half-Life 2. Kljub kritikam zaradi vključenih zaščit proti kopiranju in načina licenciranja iger, je Steamu v vseh teh letih uspelo pridobiti na desetine milijonov uporabnikov, hitro pa se povečuje tudi ponudba, ki presega stotisoč iger. Nativna podpora za Linux je bila Steamu dodana leta 2013, Valve pa je začel tudi aktivno delati na ekosistemu.
Najprej so izdali lastno Linux distribucijo SteamOS, ki mu je nekaj let kasneje sledila izboljšana različica WINE imenovana Proton. S pomočjo Protona so v teoriji dodali podporo vsem igram, ki niso imele lastnega odjemalca, v praksi pa so bili rezultati seveda omejeni. Vseeno je bil to pomemben korak naprej, ki je vplival tudi na statistiko uporabljenih operacijskih sistemov. Nov preskok je predstavljala ročna igralna konzola Steam Deck, ki je igranje na Linuxu omogočila komurkoli, brez da bi se mu bilo treba ukvarjati s strojno in programsko opremo.
Navidezni stroji, emulacija in pretakanje iger
Igranje iger preko nativnih izdaj ali združljivostnih plasti (WINE/Proton) pa je zgolj eden izmed načinov, kako lahko na vašem Linux sistemu igrate igre.
Navidezni stroji in emulatorji
Navidezni stroj (Virtual Machine) je neodvisna namestitev operacijskega sistema znotraj gostiteljskega operacijskega sistema. Programi, ki tečejo na operacijskem sistemu znotraj navideznega stroja, so omejeni na funkcije in vire, ki jih ponuja virtualizacijski program. Na nekaterih procesorjih lahko tudi vključite strojno podporo (Intel VT-x/AMD SVM).
Nekateri programi za virtualizacijo, kot npr. Virtualbox, QEMU ali VMWare ponujajo tudi strojno pospeševanje 3D programov bodisi preko lastnih gonilnikov ali posredovanja strojne opreme (GPU Passthrough). Tako bodo namesto programskega pospeševanja, ki je počasno, uporabljene 3D zmožnosti gostiteljskega operacijskega sistema ali celo strojne opreme. Tako lahko v navidezni stroj namestite Windows in poskusite srečo z zagonom 3D iger.
Morda se bo kdo vprašal: zakaj navidezni stroj in ne sočasna namestitev Windows/Linux (Dual boot)? Nekaj odgovorov se ponuja na dlani:
- pri sočasni namestitvi morate sprostiti enega izmed razdelkov in po namestitvi znova naložiti zagonski nalagalnik
- posodobitve na kateremukoli izmed sistemov lahko okvarijo zaganjalnik in napravijo enega izmed sistemov nedostopnega
- vsakič, ko bi radi igrali, boste morali sistem znova zagnati, to pa pomeni, da morate končati vse programe, ki trenutno tečejo
Emulatorji
S pomočjo programov poimenovanih emulatorji ali posnemovalniki lahko poganjate programe iz okolja MS DOS in konzol (Game Boy, NES, Playstation itd.). Posnemovalnik prenese funkcije enega sistema na drug sistem, tako da se sistema ob nekem opravilu obnašata skoraj identično. Ti programi so majhni in zmorejo poganjati zgolj arhitekturo, za katero so specializirani.
Med najbolj znanimi programi za poganjanje DOS iger je Dosbox, s katerim lahko poganjate na tisoče klasičnih DOS iger. Dosbox posnema Intelov x86 PC skupaj z zvokom, grafiko, miško, igralno palico, modemom, CD-jem in še drugimi komponentami. Poleg preprostih 2D iger zmore poganjati tudi kompleksne 3D streljačine kot so Duke Nukem 3D, Quake, System Shock in podobno, vendar boste za to potrebovali precej zmogljiv procesor, saj je davek posnemanja precejšen.
Zelo priljubljen vmesnik emulatorjev za konzolne igre se imenuje RetroArch, z namestitvijo jeder (emulatorjev LibRetro) pa lahko poganjate vse konzolne naslove od arkadnih pa vse do PlayStation 2, kar pomeni na tisoče naslovov, boste pa seveda potrebovali datoteke z igrami. Poleg podpore shranjevanju lahko dogajanje tudi upočasnite ali pohitrite, vgrajena pa je tudi podpora goljufijam.
Pretakanje iger
S pojavom oblačnih storitev, so se pojavile tudi ideje o igranju iger v oblaku. Tako bi uporabnik namestil odjemalec, kupil naročnino za igro in jo takoj pričel igrati brez težav z nameščanjem, razhroščevanjem in podobnim. Za igranje bi tako bil dovolj tudi slabši računalnik, saj bi igra tekla na računalniških sistemih ponudnika storitve.
Razmah igranja iger v oblaku se je pričel s prihodom storitve OnLive leta 2010, ki pa žal ni imela uradne podpore za Linux. Temu je sledila storitev Gaikai, ki je za odjemalec uporabljala kar vstavke Java oz. Flash in je bila tako enostavno dostopna kar preko spletnih strani ter posledično podpirala tudi Linux. Slednjim je sledila še cela kopica storitev, od katerih so marsikatere neslavno propadle (npr. Google Stadia), spet druge so preživele (npr. GeForce NOW).
Za to storitev morate imeti hitro povezavo do spleta, slabost pa so zakasnitve in morebitni izpadi strežnikov. Strežnik lahko postavite tudi sami (Steam Remote Play ali Parsec), ampak ker v tem primeru potrebujete ločen računalnik, je bolj smiselno, da igrate neposredno na njem.
Težave z igrami na Linuxu
Kljub hitremu razvoju pogonov za igre, ki podpirajo več platform, in podpori s strani digitalnih razpečevalcev iger pa podpora za Linux ni samoumevna. Predstavljam nekaj razlogov, ki po desetih letih od prve objave članka še vedno držijo.
Veliko število distribucij s pomanjkljivimi standardi in majhen trg
Distribucij Linuxa je na stotine, kar pomeni ogromno načinov pakiranja programov, kupi različic knjižnic, različne privzete knjižnice za zvok (ALSA, OSS, PulseAudio, PipeWire), raznovrstna jedra, itd. Ker ni privzetih standardov, ki bi se jih vse distribucije držale, je povsem nemogoče, da bi razvijalec naredil igro, ki bi delala brezhibno na vsaki izmed njih. Ponavadi se izdelajo namestilniki, ki so preizkušeni na stabilni različici Ubuntu-ja, ostale uporabnike pa čaka razhroščevanje na lastno pest.
Dodatna težava je, da naj bi bil kljub takšnem številu distribucij delež Linux na namizju samo par odstotkov, marsikateri uporabnik pa sploh ni igričar. To že v začetku odganja založnike, čeprav so npr. pretekle številke iz Humble Bundle pokazale, da uporabniki Linuxa plačajo več. Tveganje je veliko, založniki pa želijo maksimizirati profit, zato različica za Linux pogosto ostane samo v fazi »preverjanja zanimanja«.
Grafični gonilniki
Grafični gonilniki so izjemnega pomena za pravilno delovanje iger na Linuxu, žal pa jim edini proizvajalci grafičnih čipov (AMD, Intel in nVidia) ne namenjajo toliko pozornosti, vsaj kar se tiče igričarstva. Največ preglavic povzroča nVidia, ki še vedno vztraja na zaprtih gonilnikih. Slednji ob posodobitvah jedra pogosto poskrbijo za presenečenje, težje pa je tudi iskanje rešitev za nazadovanja, saj uporaba starejših različic gonilnikov ni samoumevna. Intel in AMD sta tukaj boljša, saj oba ponujata odprtokodne gonilnike, ki so vgrajeni v jedro, kar olajša delo tako razvijalcem, kot tudi končnim uporabnikom, to pa še ne pomeni, da je na njih manj napak.
Zaključek
Če zaključim, se na Linuxu da poganjati dosti iger, bi se pa dalo situacijo bistveno izboljšati s standardizacijo in boljšo podporo grafičnim gonilnikom.
