HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

Hogyan járassuk le magunkat, avagy mi történt azon a bizonyos szomorú napon

2011.06.13. 08:28 Travis.CG

Már elég idő eltelt a 2010-es Function óta. Azt hiszem eléggé feldolgoztam a sokkot, hogy kiírjam magamból az ott történteket. Amikor a repülőgépes katasztrófákat felderítik, akkor legtöbbször megállapítják, hogy olyan sorozatos hibákat követtek el, ami külön-külön orvosolható lett volna, de abban a kombinációban olyan halálos elegyet alkotott, hogy a gép nem élhette túl. Körülbelül az én esetem is ilyen volt.

Egy szeptemberi hétvégén volt a Function nevű demoshow. Már jó ideje készültem rá, hogy végre megmutathassam, hogy nem
csak windows alatt lehet jó demót készíteni. Szombaton érkeztem a parti helyére, még időben, hogy
leadhassam Grass kézi rajzát és feltöltsem a demót. A demó rengeteg nagy méretű textúrát tartalmazott,
több részletes poligonnal, ezért nem meglepő, hogy bizony a mérete 39 MB-ra rúgott.

Szerencsére 64mb volt a mérethatár, így ez nem okozott gondot. Ez volt az első demóm, ahol nem a jól
ismert SDL könyvtár képezte a keretrendszert, hanem alacsony szintű függvényhívások: libpng a textúráknak,
vorbis a zene dekódolásának, alsa a hang lejátszásához, X11 az ablakkezeléshez. OpenGL tudásomat is
fejlesztettem, ezért már shaderek is voltak a demó egyes jeleneteiben, ami megakadályozta, hogy
a céges laptopon futtassam.

A parti előtt két nappal gyakorlatilag kész voltam a teljes demóval. Annyit elárulok, hogy Slackware 13.0-n
fejlesztettem, méghozzá 64 bites rendszeren. Ekkor még nem volt semmi információm arról, hogy milyen
Linuxon akarják majd levetíteni a demót, de a tavalyi tapasztalatok alapján abból a feltételezésből
indultam ki, hogy egy 32 bites Ubuntu lesz a compógép.

Telepítetem az Ubuntut, lefordítottam a demót és láss csodát, nem volt hang. Tulajdonképpen nem
lepett meg, hiszen itt PulsAudio van, aminek az Alsa-s emulációja nem teljes. Példának okáért
hiányzik az aszinkron hanglejátszás. Mondanom sem kell, hogy természetesen én azt implementáltam.

Gyorsan felvettem egy új függvényt a cg_audio.c-be, ami láss csodát, tökéletesen működött. Csak nem
Slackware alatt. Itt kellett volna még tovább finomítani a rendszert, hogy mindkét rendszer alatt
tökéletesen menjen, de ezt nem tettem, pedig Richard Marchinko is megmondta: "Soha ne feltételezz!".
Én feltételeztem. Mégpedig azt, hogy Ubuntu alatt fogják lejátszani.

A parti nagy fordulópontja az volt, mikor találkoztam Gargajjal, az egyik szervezővel. Megkérdeztem
tőle, volt-e bármilyen probléma a demóm lejátszásával.
- Ha nem Linuxos, akkor nincs vele gond - válaszolta.
- De Linuxos.
- Itt van a laptopod?
- Itt, de azon nem megy. Kell neki OpenGL 2.0.
Rövid kutakodás után találtunk valakit, akinek szintén volt egy Linuxos laptopja. Rövid próbálgatás után
azt is kiderítettük, hogy ugyancsak Intel GMA-val van felszerelve, nem megy rajta a demóm.

Láttam, hogy a helyzet kezd menthetetlen lenni. Latolgattam, hogyan jutok haza, hogy elhozzam
a saját gépemet. Charlie segített. Képes volt miattam levezetni megközelítőleg 100km-t, hogy
elhozzuk azt a gépet, amin fejlesztettem a demót. Átadtam a szervezőknek és megnyugodtam,
hogy most már semmi baj nem történhet. Ez volt a második hiba.

Az intrók után Gargaj szólt, hogy itt az ideje, hogy beüzemeljem a gépet. Kaptam áramot, hangcsatlakozót,
videó kimenetet. Egy profinak ennyi is biztosan elég lenne, de én azért kértem egy billentyűzetet is.
Hátam mögött a kíváncsi tömeggel nekiáltam az óriás kivetítőn beizzítani a rendszert. A Slackware szép
komótosan indult. Mikor az X11-et indítottam, akkor már láttam, hogy baj van. A gép 640x480 felbontásban volt. Rövid billentyűn
keresztül történő matatás után észrevettem, hogy az NVidia beállítópanel sem ismer nagyobb felbontást,
mint 640x480
. Most mi legyen? Kértem egy egeret, amivel kicsit gyorsabban folytattam a matatást.

Mögöttem már kezdett zúgolódni a tömeg. Elindítottam a demót, hátha az majd belövi a felbontást, de nem így történt. A demó bal felső sarka látszott csak.
Végül megnyitottam a forráskódot és átírtam, hogy 640x480-ban fusson le. Ez már nagyon nem tetszett a
nézőknek, hogy ott írom át a kódot. Fordítás sikeres volt, rövid teszt, működik, leállítottam, és szépen hátra
kullogtam.

- Nyomd le az entert! - hangzott fel. Visszafutottam és elindítottam a demót. Ismét hátra kullogtam. A terembe már nem mertem bemenni, csak a folyosóról hallgatóztam és a hangokból próbáltam kitalálni, hogy milyen a demó fogadtatása.

Valami nem stimmel. Miért nem hangosítják fel? Miért nincs hang? Ezt mások is megkérdezték, de nekem akkor nem
esett le. Semmit ötletem nem volt. Közben a demó szépen ment hang nélkül. Emlékeztem, hogy az elején, a teszt alatt még volt. Az első teszt alatt! A
fordítás után már nem! Akkor megértettem. Azt a kódot fordítottam le, ami Ubuntu alatt ment, de Slackware alatt
nem. A demónak a fele akkor már lement. Hallva a bekiabálásokat úgy döntöttem, hagyom így. Úgysem tetszik nekik,
akkor minek fárasszam a nézőket még zenével is? Ennek megfelelően utolsó lett, de akkor már nem foglalkoztam a
dologgal.

Minden esetre megtanultam, hogy atombiztos demót kell írni. Különösen Linux alatt. A másik, ha valami gond van
vele, inkább nem szabad hagyni, hogy lejátszák.

Később visszagondolva több módon is elkerülhettem volna a problémát. Először is, a gépemen volta Ubuntu is. Elindíthattam volna azt is. Normálisan megírhattam volna a kódot (csak egy snd_pcm_recover függvény hiányzott). Nem hagyom, hogy a két kódbázis összekeveredjen. Ehelyett egy olyan elegyet főztem, ami megpecsételte a demó sorsát.

Szólj hozzá!

Címkék: demoscene parti riport

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr52979555

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása