Érdi Gergő a nap hőse. Tavaly nyáron már kezdtem így posztot, amikor arról írtam, hogy a Szingapúrban élő, amúgy banki programozóként dolgozó Gergő elképesztő munkával, Vice emulátorból dumpolgatva visszafejtette az Időrégész kódját, és csinált belőle egy pc-s, sőt böngészős verziót szöveges kalandjátékokhoz passzoló Glulx virtuális gépre. (Aki esetleg nem tudná, hogy mi fán terem az Időrégész, illetve Rátkai István többi C64-es szöveges kalandjátéka, az sürgősen olvassa el korábbi posztunkat, esetleg hallgassa meg a podcastadást, amit Rátkai mesterrel készítettünk).
Gergő nem nyugodott, még egy platformra is portolta az egyik legismertebb magyar játékot: mostantól Androidon is elérhető az Időrégész, ide kell kattintani, és már telepítheted is, ha megfelelő telefonról olvasod ezt a posztot. Apró különbségek persze vannak az eredeti és az okostelós verzió között, a szöveg például rágördül a képekre, és a szövegértelmezés is kicsit másként működik, de a játék szövege és fejtörői természetesen változatlanok maradtak.
Azt érdemes még hozzátenni, hogy Gergő az IDDQD Facebook-oldalának oszlopos tagja, és onnan is kapott némi segítséget, a végeredményre pedig maga Rátkai is rábólintott. De inkább meséljen az egészről az alkotó, hardcore technikai részletekkel:
A terv az volt, hogy a múltkori visszafejtés eredményeképpen kapott Glulx gépet futtatom telefonon. Ha jól emlékszem, idén januárban kezdtem el írni egy Glulx interpretert, akkor még Clojure-ben, hogy aztán majd Androidon fusson. Abból nem lett semmi, mert mire elkészültem vele, addigra összedőlt a saját súlya alatt: egyrészt baromi lassú volt, másrészt kiderült, hogy igazából a Clojure elég nagy szopás Androidon, meg még Lispnek se olyan jó, mint reméltem. Egyébként kicsit előre volt vetítve hogy zsákutca lesz, mert létezett már előttem egy másik "Glulx interpreter Androidra" projekt, amiből szintén azért nem lett semmi, mert állati lassú volt - de gondoltam majd én. :)
Úgyhogy ez kuka.
És akkor jött az ötlet, hogy mi lenne, ha nem interpretert írnék, hanem lefordítanám a Glulx kódot JVM-re. Végül emiatt kicsit olyan lett, mint a Tom & Jerry-ben a Rube Goldberg-gépek, mert a végeredmény úgy néz ki, hogy van az Inform 6-ban írt Időrégész, amit lefordítok Glulx-ra, amire írtam Haskellben egy fordítót, ami lefordítja JVM assemblyre, amihez van egy Krakatau nevű assembler, ami mellé megírtam Kotlinban a UI-t, és ezeket így összelinkelem, és kijön a másik végén az Időrégész. :)
Dobos Bence IDDQD-csoporttag vállalkozott a bétatesztelésre, rengeteg olyan hibát talált, amit én sose találtam volna meg, mert nem ültem le végigjátszani. Az ő őtlete volt aztán, hogy a szöveg gördüljön rá a képre - mivel a billentyűzet rengeteg helyet elvesz a képernyőből, meg felül a kép is, így alig maradna látható szöveg, márpedig a szöveg elég fontos egy szöveges kalandjátéknál. :) Bence csinált Gimpben egy mockupot hogy mi lenne, ha így nézne ki, úgyhogy akkor megint tanulhattam egy kis Androidot hogy azt meg tujdam csinálni.
Most amúgy nem fogom bánni, ha egy darabig nem látok Androidot, nem lopta be magát a szivembe. De egyébként az a terv, hogy megpróbálom szakmányban ontani a modern szöveges kalandjátékok Androidos portjait. Ha találok olyat, ami Glulxra van (ebből nem lesz hiány), és a licensze megengedi (ez már nemtom mennyire lesz könnyű). Akkor elvileg csak betolom azokat is a compilerbe és kiesik egy új Android csomag (persze ez nem teljesen igaz, mert a Glulx speciből csak annyit írtam meg, ami az Időrégészhez kellett).
Külön köszönet Gergőnek, hogy mindezt leírta nekünk, és mint látjuk, ígéretes a jövő. Azt androidos verzió kapcsán azt még kiemelném, hogy míg a legtöbb mobiljáték swipe-os irányítása eléggé lebuktatja a júzert, hogy játszik, egy szöveges kalandjátékkal pötyögni mobilon egészen olyan, mintha fontos emailt írna az ember. :) Szóval DOB MUNKA, JÁTSZIK IDŐRÉGÉSZ TELEFON. (Ha valakinek végigjátszás kell, itt találja.)
Utolsó kommentek