Az Openal Története Nyílt Forráskód És Nyílt Szabványok
Total Page:16
File Type:pdf, Size:1020Kb
Szaktekintély artva Az OpenAL története Nyílt forráskód és nyílt szabványok. A Loki egyik ingyenes programfejlesztésének áttekintése. Loki Entertainment Software-nél windowsos játékfejlesztõk egy jó darabig rosszabbul alakulni – az idõszakot jól jellem- t. Minden jog fennt sokféle programmal foglalkozunk, nyugodtan dolgozhattak a meglévõ fejlesz- zi, hogy akkoriban a Microsoft nem jelentette a szabadon terjeszthetõtõl kezdve tõkörnyezetek segítségével. meg a DirectSound3D NT-s változatát. Aa BSD-szerzõdéses forráskódon és a GPL, A Linux-felhasználók helyzete sajnos ked- A hangkártyák piacvezetõjeként ismert LGPL elvei szerint terjeszthetõ szabad prog- vezõtlenebb volt. A hangkártyák körében Creative-nak ezzel egy idõben kellett szem- ramokon át a zárt forrású alkatrészmeghaj- szabványosnak tekinthetõ SB16-hoz illesz- benéznie az Aureal nevû – a térbeli hangzás tókig minden megfordul nálunk. Természe- kedõ meghajtó már megbízhatóan mûkö- PC-s megvalósítását célul kitûzõ – céggel. © Kiskapu Kf tesen gépikódokat is írunk. A Linuxra dött, és a PCI-os hangkártyák is meglepõen Az Aureal a „hullámkövetés” (wavetracing) átültetett játékaink nem mindegyike nyílt nevû eljárást helyezte fejlesztései közép- forrású, de saját, ingyen terjesztett munkánk pontjába. Ennek lényege, hogy a tér tulaj- a Fenris, a Setup, az SMPEG vagy az SDL donságait, amelyben a hang megszólal, programokban is megtalálható. átadjuk a hangkártya meghajtójának. Fontos Miután sokszínû tevékenységünk során megjegyeznünk, hogy a grafikával ellentét- találkozunk a szabad és a nyílt forrású prog- ben a hangmódszerek a mai napig is fõleg ramok iránt elkötelezett alkotókkal is, így programból megvalósított megoldásokra saját véleményünk és irányelveink is módo- épülnek. A fejlesztõkörnyezetek (Miles sultak. Egyik fejlesztésünk például abból a Sound System, QMixer) és az egymással felismerésbõl született, hogy a nyílt, jól leírt versengõ alkatrészmeghajtók jelentik a szabványokra van a legnagyobb szükség. bizonyítékot erre. Az Aureal elõnye a szi- Ez a fejlesztés az OpenAL volt, melynek mulációkkal, korai visszaverõdések keze- története jó iskolapélda arra nézve, hogy lésével és a hatásfok javításával kapcsolatos milyen fontosak a szabványok – és hogy korábbi tapasztalataiban rejlett. Fejlesztéseit milyen nehéz megvalósítani õket. azonban hátráltatta a PC-s piac, ahol álta- lánosan jellemzõ a „Na, vegyünk két ó’csó Versenyhelyzet hangszórót is a masinához!” típusú hozzá- A Heretic 2 és a Heavy Gear 2 linuxos vál- állás. A minõségi hangfeldolgozás átköl- tozata esetében a Loki mérnökei új hang- töztetése egy olyan rendszerre, ahol hagyo- www.gdmag.com hatásokkal kezdtek el dolgozni, ezek mányosan sem a fejlesztõk, sem pedig a messze felülmúlták a „balról vagy jobbról felhasználók nem törõdtek a térbeli hang- hallom?” típusú játékok hangjait. A Heretic zással, eleve vesztésre álló játszmának tûnt. 2 a hangkártyákat gyártó cégek számára is Mindezek ellenére az Aurealnak sikerült számos újdonsággal szolgált: az Aureal valamit elérnie: felkeltette a felhasználók A3D-jének és a Creative EAX-jának támo- érdeklõdését a jobb térbeli hangzású játé- gatását is megkaptuk. Abban az idõben kok iránt. Az elsõ érdeklõdõk számára ez új mindkét gyártó túllépett a DirectSound3D jól mûködtek Linux alatt. A legfõbb hiá- hirdetési lehetõséget jelentett, és hamarosan lehetõségein, de teljesen különbözõ irá- nyosság azonban az volt, hogy a kártyák minden játékfejlesztõ megpróbált lépést nyokban haladva kívánta megvalósítani legújabb lehetõségeit sem az OSS, sem tartani velük. A komoly fejlesztési tervekkel a térbeli hangzást. A három API közé szo- pedig az ALSA alkalmazásával nem lehe- bíró Creative visszavágásképpen saját kár- rított windowsos játékfejlesztõk (és akkor tett kihasználni. tyáinak bõvített lehetõségeit hangsúlyozta a Windows alatt elérhetõ számos hangfej- Az Apple-felhasználók számára fejlesztõ – ezek alapját egy egyszerûbb módszer, lesztõ környezetet még nem is vettük figye- programozók hasonló helyzetben találták a kései visszaverõdések valószínûségi zen- lembe) inkább nem okoztak maguknak magukat: bár a Mac OS multimédiás API-jai getéssel megvalósított utánzása képezte. további fejfájást, és kihagyták a térbeli összetettebbek és befejezettebbek voltak A korai és kései visszaverõdésekre alapuló hangzást a programokból (vagy esetleg linuxos testvéreiknél, ennek ellenére a megoldások kiegészítik egymást, az API-k egy-egy fejlesztõkörnyezet lehetõségeitõl DirectSound szabványt még annyira sem és azok megvalósításai azonban teljesen vérszemet kapva mégis belevetették magu- támogatták, és az EAX, A3D lehetõségei is különbözõek voltak. A Creative pedig jól kat a téma kidolgozásába). Itt léptek közbe ismeretlenek voltak arrafelé. A windowsos választott: az EAX egyszerûbben használ- a gyártók: sokan közülük kiegészítõkkel fejlesztõk számára fontos volt a programok hatónak bizonyult, és a valószínûségi zen- (EAX, A3D) siettek a kártyák tulajdonsá- hordozhatósága, egy csodálatos, rengeteg getés megfelelõbb megoldás volt az amúgy gait jobban kihasználni igyekvõ progra- lehetõséggel bíró hangkörnyezetet kaptak, sem a csúcsminõségû hangrendszerekrõl mozók segítségére. Ekkor került egyre melyhez azonban nem tartozott hordozható híres PC-s piac számára. több játék dobozára a „Térbeli hangzás” API. Mivel a két másik résztvevõ teljesen Természetesen mindkét vállalat odafigyelt (Spatialized 3D sound) felirat, és a más utakat járt be, a dolgok kezdtek egyre a Linuxra is. Az Aureal kidolgozott egy 98 Linuxvilág Szaktekintély A2D névre keresztelt rendszert, mely az foglalkoztak volna, mint a DirectSound3D Talán nagyobb egyetértésre lett volna szük- A3D használatát tette lehetõvé más gyártók idejében. Néhányan különleges, kifinomult ség, de a bukás fõ oka az volt, hogy senki kártyáin. Ez alapját képezhette volna akár OOP-megoldásokat szerettek volna az API- nem tudta igazán, hogy mi ennek az egész- artva egy nyílt forrású környezetnek is. Az Aureal ban látni, míg mások beérték volna valami nek a célja. Ráadásul a hangkártyák tucat- kódbázisa hatékony volt, gépi kódban író- egyszerûbb, általánosabban használhatóval nyi új lehetõségét is kezelni kellett volna. dott, és ez a Linuxra történõ átvitelt kissé is. A kezdeti lelkesedés ellenére e véle- Ez utóbbi végül is kétszer buktatta meg megnehezítette volna. A Creative, linuxos ménykülönbségek miatt csupán néhány fej- az OpenAL-t. 1999-ben a lista feltámadása programozók egy csapatával, meghajtók lécfájl és egy, az elveket tartalmazó leírás látszott körvonalazódni: a Game Developer fejlesztésébe fogott, és az EAX linuxos készült el, és a fejlesztés félbeszakadt. Magazine májusi számában Jonathan Blow megvalósításában látta a jövõt. Mindkét cikke melletti oldalhasábon Terry Sikes API a Microsoft DirectX és COM rendsze- (az OpenAL leírás szerzõje) és jómagam reinél érvényes ajánlások figyelembevéte- az OpenAL céjait ismertettük. Akkoriban t. Minden jog fennt lével íródott, de az Aureal téralapú A3D az Aurealnál egy javított, hordozható A3D API-jának tervezésénél az OpenGL-bõl kifejlesztésén gondolkodtak, mi pedig is vettek át ötleteket. Itt léptek a képbe leírtuk, hogy az OpenAL képes lesz az a játékfejlesztõk. OpenGL-lel való közvetlen együttmûkö- désre, fõleg a térgeometriai adatok feldol- A nehéz kezdetek gozását illetõen. Sem az Aurealnál, sem © Kiskapu Kf Az EAX és az A3D elõtt néhány játékfej- pedig az OpenAL levelezõlistán nem tör- lesztõ egy hordozhatóbb hangrendszer tént semmi változás a cikk hatására, és az megvalósításán törte a fejét. Az OpenGL- állóvizet csak a Loki 1999 végén történõ GameDev levelezõlista, melyen a hordoz- beszállása kavarta föl. ható kódok írásával foglalkozó fejlesztõk A Heretic 2 és a Heavy Gear 2 fejlesztése fõ fóruma 1998-ban egy új listát indított akkoriban kezdõdött, és mivel nem voltunk egy új, nyílt forrású hangkönyvtár megszü- (sõt, igazság szerint most sem vagyunk) letéséért. A lista neve – az OpenGL mintá- abban a helyzetben, hogy az EAX-ot vagy jára – OpenAL lett. Egyre több javaslat az A3D-t támogassuk, nyilvánvalóvá vált, érkezett a listára, de hamar kiderült, hogy szinte mindenkinek másra lenne szüksége. Néhány listatagot csak a zene és a zene- szerzés érdekelt, õk fõleg programból meg- valósított hangképzéssel foglalkoztak azelõtt. Mások csak a térbeli hangzással hogy valamiféle megoldásra van szükség. Mindenképpen szerettük volna megvalósí- tani a DirectSound3D lehetõségeit (távol- ságérzékelés, Doppler-hatás, térbeli hangzás, hangmagasság- és iránykúpok) Linux alatt is. Ezenkívül természetesen célszerû volt a Creative-nál ás az Aurealnál érdeklõdni a linuxos meghajtók felõl. A Loki az eredeti OpenAL fórumon közelítette meg a fejlesz- tõket, felállított egy levelezõlistát, majd Joseph I. Valenzuelát megbízta az elsõ ele- mek kifejlesztésével, majd mindhárman www.linuxvilag.hu 2001. február–március 99 Szaktekintély munkához láttunk. Michael Vance (a Heavy Group (IASIG) pedig nem kívánt az API-k fejlesztõhöz hasonlóan) a Win32 OpenAL Gear 2 fõ programozója) és jómagam szabványosításában részt venni. A Loki min- alkatrész-támogatással rendelkezõ meghajtói- (a Heretic 2-n dolgoztam) elemeztük az dent elkövetett azért, hogy a szabvány és a nak megjelenésére várnak. Mára szinte artva eredeti OpenAL vitafórumot és a létezõ megvalósítás ne csak a rövid távú igények- az összes OpenAL-t használó játék Linuxra javaslatokat. Számos döntés meghozatalakor nek feleljen meg, mi pedig bíztunk a fejlesz- íródott, de remélhetõleg nemsokára más figyelembe vettük a régi hibákat, például tés nyílt természetében (mi másért