Játékfejlesztés Linuxon

Valamelyest belevettem magam a GPGPU-val való szórakozásba, és hát ilyenkor rengeteg grafikus fejlesztést támogató eszköz kerül az ember látókörébe. Mivel elsősorban Linuxon dolgozom, így kíváncsi voltam, hogy egy egyszeri játékfejlesztő mennyire könnyen boldogul a Linux alatti játékfejlesztéssel, OpenGL platformon.

Első dolgom természetesen az Eclipse pluginok megtekintése volt, de semmit nem találtam a Marketplace-en sem a GPU, sem pedig az OpenGL kifejezésekre.

Jól van, hát NVIDIA tulajdonosként akkor megnézem, hogy a gyártó mit ajánl. Volt is miből válogatni, elég széles a paletta. Képernyőn megjelenő játékfutás-közbeni HUD, shader modellező, shader hibakereső, két komplett fejlesztőeszköz (saját, illetve Visual Studiohoz) stb. De mind csak Windowson…

Összegyűjtöttem őket egy táblázatba, mintegy későbbi referenciaként, hogy mennyire lehet "könnyen" játékot fejleszteni Linuxon.
Íme:

Név Leírás Operációs rendszer
gDEBugger Nagyon fejlett OpenGL debug eszköz; az NVIDIA-t a PerfKit módú driverein keresztül támogatja Linux¹, Windows
Cg Toolkit Az NVIDIA Cg eszköze sok példával, Cg fordítóval stb. Linux, Windows
NVIDIA SDK Az NVIDIA fejlesztőeszköze OpenGL-hez Windows
PerfKit Teljes OpenGL debugging eszköz, benne a PerfHUD-dal, a PerfSDK-val és a GLExperttel Windows
ShaderPerf Parancssoros shader profiler Windows
FX Composer Grafikus shader szerkesztő Windows
Shader Debugger A fentihez egy pixel shader debugger plugin Windows
OpenCollada SDK A Colladahoz készült SDK Windows

¹: Linuxon a PerfKithez szükséges driver verziója 195.36.31 (2010. június), míg az aktuális általános célú meghajtó a 260.19.44 (2011. március).

Hozzászólások

De ha majd neki álsz mégis játékot fejleszteni linuxra, akkor irjál mellé rendes drivereket is :P

PerfKit módú driver kell a gDEBuggerhez, mert anélkül nálam nem indul el a debuggere. Viszont az úgy forgatott változat még háromnegyed évvel korábbi, így desktopon jönne elő egy rakat hiba, amit ebben az időszakban javítottak (főleg KDE fronton).

--
The Elder Scrolls V: Skyrim

gDEBugger az nagyon király, én is használom.

gDebugger jo, Cg-t hanyagolnam, inkabb GLSL. Bar teny, h linuxra normalis shader editor nincs. Az nVidia SDK jobbara megoldhato, h unsupported platformokon is kohogjon, de sokat kell rajta reszelni. Akkor mar inkabb egyeb tutorialokat keresnek.

Amugy ne csodalkozz. Meg a garazscegek tulnyomo resze is Windows-on fejleszt, igy johogy oda koncentralnak minden segedeszkozzel es sdk-val.

---
pontscho / fresh!mindworkz

Ennyire azért nem elkeserítő a helyzet, csak nem megfelelő fórumon néztél szét. OpenGL fejlesztés ügyében a www.opengl.org legyen a kiinduló pontod (gondolom az OpenCL-nek is lehet hasonló gyűjtő oldala, de arról nem tudok).

A használható eszközök játék fejlesztésre _Linux_ és más unix variánsok alá:
BuGLE: http://www.opengl.org/sdk/tools/BuGLe/ - debugger, a driver és a megírt kód közé épül be (bár valóban kevesebbet tud, mint a gDEBugger)
ShaderDesigner: http://www.opengl.org/sdk/tools/ShaderDesigner/ - GLSL IDE Shaderek készítéséhez (szvsz. már kiérdemli ezt a nevet a funkció gazdagsága miatt)
Equalizer: http://www.opengl.org/sdk/libs/Equalizer/ - nagy tudású middleware, ha nem akarsz az OpenGL állapot géppel foglalkozni (bár ez inkább ipari cucc)

Aztán ha játékot akar valaki készíteni, akkor kellenek eszközök a modellek létrehozására: Blender. Textúrákhoz és egyéb grafikákhoz ott a gimp és az inkscape. Ha saját engine készül alá, akkor ott az SDL api készlet használata szerintem erősen javallott lehet, bár tény hogy vannak hiányosságai. Ha nem akar valaki saját engine-t, akkor ott az Ogre (http://www.ogre3d.org/), vagy a Unity (http://unity3d.com/unity/).

Szerintem az eszközök tekintetében nem olyan vészes a téma, bár tény hogy szegényesebb, mint windows alatt. Problémának inkább az OpenGL implementációk nagyobb szórását tartom. Amíg windows alatt ma már nagy biztonsággal fogsz kapni egy 3.1 implementációt, addig linux alatt az aktívan használt OpenGL implementációk az 1.1-3.3 között gyakorlatilag szabadon szorhatnak akár hardveres, akár szoftveres leképzés esetén (köszönhetően a "jó" minőségű grafikus hardver támogatásnak). Ez inkább problémás játék készítés szempontjából, mivel csak két megoldás létezik: vagy alacsony verzióra készíted, ami miatt elavult, korszerűtlen grafikát kell készíteni (a legtöbb linuxos open source játék ezt az utat választja); vagy kihasználód az újabb verziójú OpenGL szabvány adta lehetőségeket a látványos grafika létrehozásához, viszont cserébe a potenciális felhasználóid egy jelentős részénél nem fog futni a cucc. Igazából ez a nagyobb probléma (és szerintem ezért szállhatott ki a platformból az id games és az epic games is).

Zavard össze a világot: mosolyogj hétfőn.