Steamworks dokumentáció
Fejlesztés SteamOS-re és Linuxra

Linux áttekintés

A Steam Linuxos változata már minden Steam felhasználónak elérhető. A Linuxot támogató játékok növekvő listájával és aktív Linuxos Steam közösségi csoporttal megfelelő az idő játékod Linuxra portolásához.

Windows vagy macOS környezetből érkező fejlesztők számára kihívást jelenthet Linuxos játék fejlesztése Steamre. A következő információk segíteni fognak játékod sikeres portolásában Linuxos Steamre.

Első lépések

Játékod összeállítása Linuxon az alábbiakat igényli:

  • Egy teljesen naprakész Linux verziót futtató fejlesztői gép. Ez lehet kettős rendszerindításos, dedikált Linuxos, vagy akár Linuxot futtató virtuális gép is. Továbbá, a fejlesztés mind 32, mind 64 bites Linux disztribúciókon támogatott. A javasolt Linux disztribúció a legújabb Ubuntu LTS kiadása, mivel a Valve és a Linux közösség azokat teszteli a leginkább. Az Ubuntu innen telepíthető.
  • A Linuxos Steam kliens.
  • Az alap Linuxos fejlesztőeszköz-készlet (pl. g++, gcc, és egy make eszköz), amit a build-essential csomag tartalmaz. Telepítsd ezt a csomagot vagy az Ubuntu Software Center, vagy egy terminálablakban az apt-get parancs használatával: sudo apt-get install build-essential.
  • A Steam Linux Runtime legújabb verziója, ami tartalmazza a Linuxos játékok Steamen kiadásához szükséges eszközöket és a könyvtárak teljes készletét. Útmutatást a runtime használatához a lerakatban levő README.md tartalmaz.

Ha általánosságban vannak Linuxos Steamworks kérdéseid, vagy problémát akarsz jelenteni a runtime-mal, kérjük, csatlakozz a Steamworks Development csoporthoz, és tedd közzé a Linux témákban.

Linux eszközök

Rendkívül sok Linuxos fejlesztőeszköz létezik, a parancssori interfészektől kezdve a grafikus fejlesztői IDE-kig. A következő információk a Valve Linuxos csapatának tapasztalatain alapulnak.

Windowsos fejlesztői eszköztapasztalattal rendelkezőknek a legkönnyebb út a Linuxos fejlesztéshez a Visual Studio Windowson és a WinGDB, egy olyan Visual C++ bővítmény, amely lehetővé teszi távoli Linux folyamatok hibakeresését a Visual Studio hibakereső kezelőfelületének használatával.

A Linuxon fejlesztéshez a Valve Linuxos csapata a következő eszközöket használta:
  • QtCreator – hibakereső és IDE ismerős Visual Studio billentyű-hozzárendeléssel.
  • SlickEdit – alap, konfigurálható grafikus kezelőfelület, felhasználó definiálta billentyű-hozzárendelésekkel.
  • gdb – népszerű parancssori hibakereső.
  • cgdb – wrapper a gdb-hez, ami végrehajtás során osztott képernyős nézetben mutatja a jelenlegi helyet a forráskódban.
  • Eclipse – egy másik IDE, ami konfigurálható Linuxos fejlesztéshez. Windowsra, macOS-re és Linuxra
    érhető el.
  • vim – alapszintű parancssori szövegszerkesztő.

A Valve Linuxos csapata a következő hibakereső és nyomkövető eszközöket használta:
  • QtCreator – lásd fentebb.
  • Symbol Servers.
  • PerfStudio – teljes funkcionalitású, keretalapú hibakereső
    API-nyomkövetéssel AMD videokártyákon futó játékokhoz. Windowsra érhető el.
  • Telemetry – teljes funkcionalitású profilozó videokártyákon futó játékokhoz. Linuxra, Windowsra és macOS-re
    érhető el.
  • gDEBugger – OpenGL kód hibakeresésére, profilozására és elemzésére alkalmas hibakereső. Az aktív fejlesztés
    CodeXL-re váltott.
  • perf – parancssori eszköz különféle teljesítményfunkciókkal. Linuxra érhető el.
  • NVIDIA Nsight – bővítmény a Visual Studióhoz NVIDIA videokártyán futó játékok
    hibakereséséhez.
  • lTTng – Linuxos nyomkövető eszköz.
  • Az apitrace projekt – a játékodból érkező OpenGL és OpenGL ES hívások nyomkövetésére és visszajátszására szolgáló eszköz.
  • Zoom – CPU profilozó hatékony és barátságos kezelőfelülettel.

Linux API-k

A nagy teljesítményű grafikai képalkotáshoz a Vulkan az előnyben részesített könyvtár. Ez a DirectX 12 és a Metal nyílt megfelelője.

A grafikai képalkotás régebbi szabványa az OpenGL volt. A játékok többsége közvetlen OpenGL hívásokat végez, de vannak más játékok, amelyek fordításos módszert használnak, ahol a hagyományos képalkotó kódot fordítják le OpenGL hívásokra. Ez az a megközelítés, amit a Valve régebbi Source-os játékai, mint a Team Fortress 2 és a Counter-Strike: Source használnak. Ha az OpenGL-t választod, javasoljuk, hogy játékodhoz az OpenGL 3.0-ban megtalálható alapfunkciókat használd.

A Simple DirectMedia Layer (SDL) 2.0-ás verziója alacsony szintű hozzáférést biztosít többek között a hangrendszerhez és az ablakkezeléshez. A 3D képalkotási támogatás OpenGL használatával biztosított. A telepítési útmutatás itt található. További információkért és a dokumentációért lásd az SDL wikit. A Valve ezt használja a Steamben és játékaink többségében ablakkezelésre, és ez adja azt a háttérszolgáltatást, ami a Steam Bevitel API-t működteti.

A következő könyvtárak a játékfejlesztés más aspektusaihoz nyújtanak támogatást:
  • FreeType – betűkészlet-megjelenítés (vektoros és bitmapes egyaránt) Linuxon.
  • Fontconfig – betűkészlet-hozzáférés konfigurálása és testreszabása.
  • Miles Sound System – közbülső hangmotor Linuxos fejlesztéshez.
  • Bink Video – játékfejlesztőknek tervezett videókodek.
  • WebM – nyílt médiafájl-formátum; QuickTime helyett ezt használjuk Team Fortress 2 videók rögzítéséhez.

GitHub lerakatok

A következő lerakatok nyilvánosak, és a Linuxos Steamhez kapcsolódó projektekhez használják őket:
  • steam-for-linux – a Linuxos Steam klienshez kapcsolódó tartalmat és annak hibakövetőjét tartalmazza.
  • steam-runtime – a Steam Linux runtime projektet tartalmazza. Rendeltetése stabil runtime környezet biztosítása Steames játékok fejlesztéséhez Linuxra.

    Gyakran ismételt kérdések

    K.: A Linuxos játékom több külső könyvtárfüggőséget igényel. Hogyan oldjam meg ezt a problémát?
    V.: Sok népszerű könyvtár, mint az SDL, OpenAL, FreeType és Fontconfig mind benne van a Steam Linux runtime-ban a fejlesztők kényelmére. Ha más külső könyvtárfüggőségeid vannak, amelyek nincsenek a runtime-ban, és azok szabadon továbbterjeszthetők, kérjük, vesd fel ezt a Linux & SteamOS Steamworks Development témákban.

    K.: Van Linuxra Steam DRM?
    V.: Igen! Az új drmtoolp DRM-eszköz Linux támogatást is tartalmaz. További információkért nézd meg a Steam DRM dokumentációt.

    K.: Hogyan vethető össze az illesztőprogram-teljesítmény Ubuntu és Windows között?
    V.: A hivatalos NVIDIA illesztőprogramok stabilitás, teljesítmény és funkciók tekintetében megfelelnek a Windowsosaknak. Hivatalos AMD és Intel illesztőprogramok is elérhetők, de azok jelenlegi teljesítménye és stabilitása alacsonyabb, mint az egyenértékű Windowsosaké.

    A Linux teljesítménye a használt videokártya- és illesztőprogram-típus teljesítményétől függ, pl. nyílt forráskódú vagy hivatalos. A hivatalos illesztőprogramok jellemzően nagyobb teljesítményűek a nyílt forráskódúaknál, és nagyobb a funkciókészletük. Továbbá, az illesztőprogramok kora eltérő lehet a hivatalos és a nyílt forráskódú változatok között.

    K.: Steamen kívülről indítva nem működik az Steam Átfedés.
    V.: Linuxon be kell állítanod az LD_PRELOAD környezeti változót a gameoverlayrenderer.so betöltéséhez.

    Valahogy így fog kinézni:
    export LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so;~/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so

    K.: Milyen runtime-ot használjak a Linuxos buildem teszteléséhez?
    V.: A javasolt Linux disztribúció a legújabb Ubuntu LTS kiadása, mivel a Valve és a Linux közösség azt teszteli a leginkább. Az Ubuntu innen telepíthető.