Valve vypouští ToGL. Překladač Direct3D do OpenGL přinese více her na Linux

12. 3. 2014

Sdílet

 Autor: Redakce

Většina 3D her je dnes vyvíjena pro rozhraní Direct3D, které je ovšem podporováno pouze na Windows. Vývojáři, kteří chtějí svou hru zprovoznit na Linuxu a Mac OS, mají v zásadě dvě možnosti – naprogramovat nativní port pro OpenGL, nebo použít translační vrstvu či wrapper. Do kategorie překládacích vrstev patří ToGL, kterou na GitHubu zpřístupnila společnost Valve. K dispozici je zdarma a pod velice liberální licencí podobnou licenci BSD.

Pokud bychom měli popsat, co ToGL je, odpověď zní, že je to několik souborů se zdrojovým kódem v C++, který Valve „vystřřihlo“ ze hry DOTA 2. Rozhodně tedy nejde o hotové řešení, které byste si mohli stáhnout a spouštět pod Linuxem jakékoliv hry pro DirectX (to byste potřebovali spíše emulátor nebo wrapper). ToGL je určen toliko vývojářům, kteří jej mohou zakomponovat do svého kódu.

SteamMachines
Valve potřebuje rozšířit nabídku her pro svůj SteamOS

Bohužel se ToGL příliš nehodí pro portování nejnovějších her. Dokáže totiž přeložit jen podmnožinu funkcí z rozhraní Direct3D 9.0c (Shader Model 3.0). Valve explicitně zmiňuje, že podporována je funkcionalita multiple render targets a v repertoáru naopak chybí vertex texture fetch; některé funkce jsou pak natvrdo napsány na míru enginu Source, který . DirectX verze 9.0c letos oslaví už desáté výročí své existence, současně končí podpora Windows XP a nové hry by proto měly vznikat především pro DirectX 10 a vyšší. ToGL nicméně může být nápomocné pro portování starších her, které hráčům na Linuxu stále chybí.

 

„Pohrávám si s myšlenkou, že bych napsal podobnou abstrakční vrstvu. Když koukám na tohle, dělá to možná polovinu práce, možná o něco víc. Kdybych chtěl psát abstrakční vrstvu s plnohodnotnější funkcionalitou, rozhodně bych [ToGL] použil jako základ,“ hodnotí počin Valve uživatel Redditu s přezdívkou ZorbaTHut.

bitcoin_skoleni

John Carmack, ještě jakožto ředitel studia id Software, podpořil emulátory a runtime překladové vrstvy (jako Wine) před náročným nativním portováním. Loni v únoru prohlásil: „Překládat Direct3D do OpenGL by už obnášelo více neefektivních řešení, ale přijít na to, jaké konkrétní problémy tam jsou a pak udělat nějakou vrstvu interoperability s D3D jako rozšíření OpenGL je daleko jednodušší, než dělat desítky nativních portů, zcela refaktorovaných pro maximální výkon.“ 

Zdroj: GitHub, AnandTech