Pelintekijä – oletko ajatellut portata tuotoksesi ajan hengessä Linuxille? Linux ohitti käyttäjämäärissä Applen macOS:n pelikauppa Steam:issa.
*
®LINUX-SAUNA tuotantoa
Pääasioita
1. Tuki yhdelle vakiintuneelle Linux-jakelulle riittää. Vaikkapa se hyvin tuettu (ja tukea antava) Ubuntu Linux. Linux Mint perustuu Ubuntuun myös.
2. Kun teet peliäsi ja haluat sen Linuxille – varmista tarvitsemasi tekniikat (esim. pelimoottori) ja niiden Linux-tuki.
3. Steam ja sen Steam Runtime – rakenna sitä vasten. Kotoperäinen porttaus Linuxille kannattaa pitkällä tähtäimellä. Proton on kuitenkin usein taivaan lahja. Virallinen tuki pelillesi on avainsana (minkä tekniikan sitten valitsetkin).
4. Pressure Vessel Steamissa on yksinkertaistettu säiliö juuri peleille. Siihen voit sisällyttää kaiken tarvittavan (ja jota Steam Runtime sitten hyödyntää). Tämän lukeminen lienee hyödyksi.
5. Steam tarjoaa peleille Runtime-suoritetyökalut (eri tyyppisille pelirakenteille) – näitä eri versioita ovat Sniper, Soldier ja Medic.
6. Linuxilla kehityksessä perustyökalut kuten Make-apuohjelma, g++ ja gcc ovat Build Essential -paketissa. Avaa Ubuntussa sen kauppa App Center (tai muussa jakelussa vastaava ohjelmistokeskus) ja asenna se sieltä.
7. Linux-yhteisö on apunasi aina (!) – kysythän rohkeasti ilman aatoksia tyhmistä kysymyksistä.
8. Varmista Steam Deck -pelattavuus. SteamOS on Valven oma Linux joka perustuu Arch Linuxiin – SteamOS 3:Sta EI ole vielä julkaistu työpöydälle!
9. Alustariippumattomuus merkitsee kuluttajille vapautta ja on muutoinkin teknisesti käytännöllisen kaunis asia.
10 Kun ajattelee käytettävyyttä ja ergonomiaa – on viisasta testata peli Steam Deckillä jos mahdollista.
Pelimoottorit
Nämä pelimoottorit tarjoavat tuen Linuxille. Vapaiden pelimoottorien tuki on plussaa jos jokin niistä kattaa tarpeet pelisi toteuttamiseen.
- MonoGame (vapaa & avoin!)
- Godot (100% vapaa – ensisijaisesti Linux-keskeinen!)
- Aleph One (Marathon)
- id Tech / id Tech 2/2.5 / id Tech 3 / id Tech 4
- Goldsource / Source / Source 2
- Blazing Renderer
- Unreal
- Cry Engine
- Irrlicht (vapaa & avoin!)
- Panda3D (vapaa & avoin!)
- Unigine
- Armory (vapaa & avoin / Blender-sulautus)
- jMonkey (vapaa & avoin!)
- Flax Engine
- OGRE
- GDevelop (vapaa & avoin!)
- Open 3D Engine (Apache 2.0 -luvitus)
- OpenSceneGraph
- Phaser (2D, HTML5-pelit, avoin lähdekoodi)
- Superpowers (HTML5-pelit, vapaa & avoin!)
- Bevy (yksinkertainen Rust-pelimoottori, vapaa & avoin!)
Unity-pelimoottori lankesi hiljan itse pelien kehittäjiä vahingoittaviin käytäntöihin – vapaata Godot -pelimoottorille kannattaa antaa mahdollisuus. Siihen suuntaan ilmenikin lopulta muuttoliike.
Usein käytetyt työkalut
- gDEBugger – virheenjäljitin (OpenGL-koodi)
- FreeType – kirjasinten hahmonnus Linuxissa
- Fontconfig – kirjasimien määritys
- PerfStudio – virheenjäljitin (kehys) – tukee AMD-näytönohjaimilla ohjelmointirajapinnan seurantaa
- NVIDIA Nsight – virheenjäljitys (Nvidia) – Visual Studio
- Miles Sound System – äänimoottori Linux-kehitykseen
- QtCreator – ohjelmointiympäristö (virheenjäljittimellä) / näppäinmääritykset Visual Studiolle
- Bink Video – pakkausohjelma videolle
- WebM – avoin tiedostomuoto medialle
- Zoom – CPU-profiloija
- Symbol Server -palvelimet
- lTTng – Linux-jäljitystyökalu
- Telemetry – profiloija
- perf – suorituskykytoiminnot (päätepohjainen)
- apitrace – OpenGL- ja OpenGL ES -kutsujen jäljitykseen
- Pixelorama / myös GitHub (luo pikselitaidetta vaikkapa seikkailupeliisi)
- Krita (suosittu maalaus / piirto-ohjelma)
- Blender (3D-mallinnus)
- Keychain (liitännäinen Godot-pelimoottorille ohjauksen hallinnalle)
- qpwgraph (Qt-käyttöliittymällinen graafihallinta / PipeWire / Qt C++)
- VSCodium (vapaa Microsoft VSCode -vastine)
- Conty (pakkaava säiliö / yksittäinen ajotiedosto, myös Steam Deck)
Steam Runtime
Tarkista aina ensin Steam Runtime ajoympäristö – se on yhteensopiva ajettavien binääritiedostojen kanssa.
Pelin vienti Linux-muotoon on useimmiten ongelmatonta ellei jossakin kohdassa tee jotakin käytännön virhettä. Pyydä toki aina Linux-yhteisöiltä apua ongelmien ilmetessä.
Laajempi katselmus
Linux toimii eri tavalla kuin Windows – Linux koetaan kuitenkin kehittäjien keskuudessa usein kehitystyössä helppokäyttöisemmäksi.
Kun sisäistää Linuxin käytännöt – alkaa se kuuluisa lyyti niin sanotusti kirjoittamaan. Vaikka olemassa onkin useita Linux-jakeluita; niitä kaikkia EI tarvitse tukea erikseen! Linux on Linux – ja paras Linux on ”Sinux” 🙂
Linuxin markkinaosuus kasvaa ja kaikenlainen käyttö lisääntyy – on otollinen aika tähdätä pelienkin kohdalla kotoperäiseen tukeen.
Steam-pelikauppaa ei voisi korostaa liikaa. Steam suoraviivaistaa asioita ja Linux-tuki Valven puolesta on ensiluokkaista.
Valve tukee vahvasti Linuxin nousua pelialustana (Microsoftilla on aikeita rajata pelit omien muuriensa sisään – he mm. ostavat pelitaloja haltuunsa kiihtyvästi).
Valve (Steam, Counter-Strike, jne) astui siis Microsoftin aikeita vastaan ennaltaehkäisevästikin – ovat onnistuneet Microsoftista riippumattoman tulevaisuuden turvaamisessa.
Uuden Linux-pohjaisen ajan esimerkkeinä ilmenevät kannettava pelikonsoli Steam Deck sekä yhteensopivuuskerros Proton jonka kautta vain Windowsille tehtyjä pelejä pelataankin Linuxilla. Jopa paremmalla suorituskyvyllä!
Virallinen Linux-tuki on asioiden ytimessä (kirjaimellisesti:)- ajetaan peli sitten perinteisesti – taikka Proton:in kautta. Kotoperäisyys on ihanteellinen valinta – kunhan porttaus on sen tiimoilla laadukas.
Kotoperäiset portit automatisoituvat luonnostaan Linux-pelaajien lisääntyessä. Alustariippumattomuudessa käyttäjä voi valita minkä vakiintuneen käyttöjärjestelmän haluaa (pelien toimiessa yhtenevästi).
On kosolti väkeä jotka ovat todenneet käyttävänsä Microsoftin Windowsia enää vain esim. jonkun yhden pelin takia. Proton mahdollistaa siirtymän käyttäjälähtöiseen Linux-käyttöjärjestelmään.
”On mukava päättää itse mitä omassa tietokoneessa tapahtuu”.
Steam-pelikaupan ulkopuolella
Snapit, Flatpakit ovat paketointeina uusia yhdistäviä ratkaisuja. Nämä ovat yhteensopivia vakiintuneiden Linuxien kanssa. Näitä voidaan hyödyntää pelien jakeluun Steam-kaupan ulkopuolella.
Kyseiset uuden ajan paketoinnit merkitsevät suoraviivaisuutta (siunaten samalla omaa jaksamistasi). Flatpak-tuki Ubuntuun tästä. Snap:it ovat Ubuntussa vakio.
Muistutus muinaisesta: vältä ehdottomasti PPA-lähde sudenkuoppaa. Sitä ehdotellaan ”ratkaisuna” edelleen. PPA-mallia ei oltu koskaan tarkoitettu pakettien laajaan levitykseen.
Voit nyt toimittaa yhden paketin joka voidaan ajaa kaikissa Linuxeissa.
Snap-paketin rakennus. Myös video (Alan Pope, ent. Canonical).
Flatpak Builder:illa teet Flatpakin.
Huomio: AppImage ei vielä tue Wayland-ikkunointia (kehittäjän valinta) – mutta kehitys vie väistämättä X-ikkunoinnista juurikin moderniin Waylandiin.
Voit sisällyttää näihin paketointeihin kaikki tarvittavat kirjastot (kuten glibc ja libstdc++) – jotta peli voidaan ajaa sellaisessakin Linux-jakelussa jossa sen omat kirjastot sattuvat olemaan vaadittua tasoa vanhempia.
Steam Runtime -ympäristön lähtökohtaista käyttöä ei voisi liikaa korostaa, joten jankutetaan. Pelin jakelu Steamissa kannattaa volyyminkin takia? Kehittäjiä hellivä Itch-kauppa on myös tässä hyvä mainita.
Mikä Linux olisi tuo ”Sinux”?
Monia jakeluja voi testata suoraan selaimessa DistroSea:ssa.
Valinnanvaikeuden kohdatessa – Ubuntu ja Linux Mint (joka perustuu Ubuntuun) ovat toimineet ystävällisinä portteina lukemattomille. Ubuntu on maailman käytetyin Linux verrattomalla tuella.
“Linux-jakelu joka tukee Steam-pelikauppaa on ainoa lähtökohtainen vaatimus
Onko Proton (tai Wine) kotoperäinen / natiivi?
Tämä yleisestä poikkeava katsantokulma jakaa mielipiteitä propellihattujen keskuudessa melko varmasti – mutta totean: Proton/Wine on Linuxille aivan kotoinen ratkaisu. Tarkennetaan:
Proton- (tai sen pohja Wine) eivät ole emulaattoreita. Kyse on avoimen ohjelmakoodin työkaluista jotka mahdollistavat vain Windowsille tehdyt sovellukset Linuxissa.
Mikäli pyrkii viralliseen Linux-tukeen (jopa jättäen Windows-tuen kokonaan pois) – tämäkin olisi yllättäen järjellistä.
Kuinkako niin? Voit kuulla Tux-pingviinin kikatuksen tänne asti mikäli Microsoft toimittaa Windowsille päivityksen joka rikkoo pelin siltä istumalta – jatkaen edelleen toimivana Protonin kautta Linuxissa..
Suorituskyky
Pelin suorituskykyyn vaikuttaa eniten näytönohjain / sen ajuri sekä suorittimen mikrokoodi – ei niinkään jokin Linux-ytimen päälinjan (mainline) versio. Mainitaan tässä myös Linux Zen -ydin.
Suorituskyky ei liity suoraan jakeluunkaan. Ei ole merkitystä onko käytössä Arch Linux vaiko Debian Linux. Kyse on lähtökohdista – mitä jakeluun mukaan on laitettu ja miten – siis vakiollisesti. Siitä vain muksaamaan tai ”rikkomaan” – mutta liian kanssa ollaan ilmeisesti sitten väärässä jakelussa?
Linuxin Suomipomo Linus Torvalds (joka asustaa nykyään kuitenkin Yhdysvalloissa) on usein ärähtänyt: käyttäjätilaa (userspace) ei saa sotkea. Tämä lähestymistapa on todettu historiallisesti mallikkaaksi yhteensopivuuden kannalta.
LUL
Yhteisön Voima (käytä sitä)
Hyödylliset virheilmoitukset ovat Linuxissa vakio. Pingviinit ovat oppineet kaivamaan lokitietoja kun jotakin odottamatonta tapahtuu. Yhteisö voi auttaa asioiden korjaamisessa tehokkaan nopeasti.
Käyttöjärjestelmän käynnistyksen ilmoitukset (ja muut ytimen tuottamat asiat) saa näkyviin kohteesta /var/log/messages
käskien:
cat /var/log/messages
PROTON_LOG=1 %command%
~/.local/share/Steam/logs
Porttaus ja tuki
Eihän se lämmitä kun on ostanut kalliin pelin ja vastaus ongelmatilanteessa on ”sortsi bro toi sun jutska ei oo tuettu”. Edellä esitettyjen avujen johdosta tuki Linuxille on nykyään hyvin pitkälle valintakysymys.
Proton on mullistava, mutta jos kehittäjä tietää perinteisen Linux-porttaamisen säilän hyvin (kaikki toiminnot 100% mukana) – sittenhän tuo reitti on parempi?
Huom! Muutoksia, korjauksia ynnä lisäyksiä otetaan mielellään vastaan! (tai tule LINUX-SAUNAAN @ Telegram).
Pelisivustoja lisätiedolle / avulle:
- GamingOnLinux
- Steam Deck HQ
- Linux Game Consortium
- Linux Gaming Central
- Linux Game Cast
- Boiling Steam
- ProtonDB
- Lutris
- Linux_Gaming (Lemmy)
- Linux_Gaming (Reddit)
- Linux Gaming Wiki
- Sami Lahtisen Owncast (GamingOnLinux:in Samsai – koodari)
- Suomenkielinen aloitusopas
✍️@Kopimi
Liity:
®LINUX-SAUNA | Apu lämmöllä Linuxiin