A boldogult TAPLO

 

Olyan értelmetlen dolog ez a kalandjáték-fejlesztés… Már húsz éve is az volt; bár akkor azért még nem annyira – legalább egy néhány embert érdekelt. Viszont vannak, akik sosem bírnak elszakadni tőle – én is ilyen volnék sajna. Több, mint egy évtizede felhagytam vele, és az egész programozással, így normálisan mostanra már szépen feledésbe kellett volna merülni a témának… De nem. Valamelyest párhuzamosan a retró-lázzal (mely 2012-ben immár valósággal tombolt, legalábbis a hihetetlen méreteket öltő C64 aktivitást látva, és még mindig úgy tűnik, hogy nem áll meg), az elmúlt évek során körülnézve látható: az Interactive Fiction műfaj szintén köszöni, és egészen jól elvan manapság – csak hát ugye csendben, inkább észrevétlenül. Több okból is; egyrészt ez a tömegeknek nem annyira érdekes, és nem is túl sok üzleti perspektívát kínál fel (kábé ugye semmit sem); másrészt mindig is egy elvont, különc értelmiségi dologként tűnt elő; aztán pedig jól kell tudni hozzá angolul… Ezzel együtt már a ’90-es évek óta világszerte egyre nagyobb virtuális kisközösség épül körülötte, akik továbbra is többé-kevésbé aktívan írogatnak ezt-azt. Személy szerint akkor fedeztem fel újra, miután 2010-ben elhatároztam, hogy szerencsét próbálok külföldön; melynek folyományaképpen részint elszakítottam magamat a megelőző évtizedben kialakult honi kötődéseimtől; s az így keletkezett űrt (a kis lelkemben) azzal sikerült csak betömni, hogy visszafordultam a még korábbi dolgaim felé… Újra leporoltam tehát régi rögeszméimet.

Jó lenne azonban a régi hibákat már nem megismételni. Utoljára szintén azzal töltöttem el négy évet (beleszámítva a szakdolgozatot), hogy egy IF rendszert építgettem, ami aztán úgy maradt. Egyre jobban elvesztem a részletekben, csiszolgatva megszállottan, miközben a lényegi céljaimhoz nem jutottam (sokkal) közelébb. Ez a rendszer lett volna a TAPLO (azaz: „Traditional Adventure Programming Language by Olessák”). A rövidítéseknél megmaradva pedig akkor mindjárt azt is hozzátehetjük, hogy: R. I. P.

1997-ben A babó koncepciójából kiindulva fejlesztettem tovább annak magvát (és éveken át tervezgettem általa egy másik, sokkal nagyobb, A vér meséi című játékot). Mivel akkor még csak egy (illetőleg nemsokára több) 486-os gépem volt (lett), s a hazai átlagkonfigok is kábé erre hajaztak, muszáj volt még Assembly-ben kódolni, hogy a zsenge hardver összes képességét kihozzam. Mivel azt akartam, hogy mindenhol fusson (és nemcsak DOS, de lehetőleg Windows alatt is), ezért a konzervatív valós módú futást választottam, mindenféle memóriamenedzserek és más kiegészítések nélkül, azaz csak az 1MB alatti (valójában pár száz kB-os) memóriával. Ehhez is az Assembly nyelv kellett, hogy a kód majd ennyiből is kijöjjön. Aztán persze ehhez jött a maximalizmus, és mindent be akartam ebbe préselni. Egyre aprólékosabban kidolgozott GUI, olyan (valójában persze tök fölösleges) dolgokkal, mint mindenféle CPU és videokártya támogatása (a programindításkor végzett hardverteszttel választva a használható utasításkészletek és elérhető üzemmódok közt, a legöregebb monokróm karakteres MDA/Hercules monitorkártyáktól, a 16- és 256-színű, a kétféle, 15/16-bites Hicolor és ugyancsak kétféle, 24/32-bites Truecolor felbontású, a 320x200-tól a 1280x1024-ig terjedő, saját formátumú ikon/menü rendszerekkel és ki/be kapcsolható grafikus panelokkal felszerelt képernyőtervekig; az XT-től a Pentiumig stb.). Ha valaki elindítja, és a kereteken elhelyezett (görgethető) panelsávban lévő gombokkal elkezdi végigzongorázni a lehetséges beállításokat (vagy az .INI fájlban és a parancssori paraméterekben megadható számos kapcsolóval elkezd játszani), elképesztő mennyiségű lehetőséget talál.

Rugalmas egérkezelés egy saját egérszoftverrel (többféle definiált egérmutatóval, ki/be kapcsolható árnyékkal és jobb/balkezes irányítással); változatos grafikai képhatások, dekorációk (színes és fekete-fehér képkezelés, az utóbbi akár kék/zöld/piros színszűrőkkel, fokozatos átmenetű skálák, a gomboknak és ikonoknak is egyenként ki/be kapcsolható árnyékkal; többszínű karakterkészlet – lehetőleg persze mindjárt több is –, plusz négyszerezett méretű extra óriásbetűkkel); négy független ablak, ami tetszés szerint átméretezhető, külön-külön mindben a szöveg/kép arányok egyénileg megváltoztathatóak, vagy akár a scrollozási lépték, vagy a keretek; folyamatos hálózati kapcsolattartás (a soros vagy a párhuzamos kábelkapcsolaton, IPX-en, vagy megosztott hálózati fájlokon át) saját, speciális szerver/kliens protokollal; saját, speciális RAMDRIVE kezelés; több ezernyi ragozott alakokat előállító szövegértelmező rutin (felkészítve számos nyelvtani szabályra és kivételre, egyúttal a tárhely-foglalásra és a sebességre optimalizáltan); saját, speciális tömörítő algoritmusok a szövegekhez és a képekhez… És még lehetne ezt hosszan sorolni, de minek? A lényeg: évek munkájával csiszolgatott apróságok túlnőtt tárháza, ami aztán végül mégsem állt össze egy szerves egésszé – pontosabban szólva félbehagytam azelőtt, hogy eggyel magasabbra lépne (mely egy saját, speciális programnyelv lett volna, ami ebben a környezetben fut).

Kissé baljós perspektíva lehet látni, hogy egy ehhez hasonlító tervezésbe fogtam ismét jelenleg… Az eltelt évek során azért persze megváltozott sokminden. Részben emiatt is döntöttem most úgy, hogy ezennel még messzebbre merészkedem vissza a múltba (és a jelenbe!), azaz megcélzom a jó öreg, nyolcbites környezetet újra. Ott a korlátok még sokkal jobban szorítanak, ettől egyrészt nehezebb (de érdekesebb is!), és jóval nagyobb kihívás… ugyanakkor viszont határokat is szab a hardver, ami (mint a neve is oly jól mutatja) keményebben egybentart, és nem annyira lehet elszaladni vele így. Egy szó, mint száz: mégiscsak az az igazi… Természetesen a fejlesztésnek az az oldskool módja, amelyet a 64-eseken folytattunk még annak idején, az teljességgel elképzelhetetlen volna manapság. Ott ülni egy lepukkant Commodore gép előtt, és a 40x25-ös karakteres monitoron hegeszteni néhány kB-os forráskódokat, majd percekig várni minden egyes mentésnél a floppy lemezeket cserélve… abszurdum. Ma már hihetetlen belegondolni, hogy valaha ez működött.

Jó ideje százszor hatékonyabb módon lehet mindezt pécén csinálni. Mentés, fordítás és tesztelés (a létező összes régi hardver egyre tökéletesedő szoftveremulációjával) villanásnyi idő alatt megvan, egyes forráskódok akár több száz kB-osra (vagy MB-osra) felhízhatnak, pillanatok alatt rugalmasan átírva vagy átszerkesztve bennük bármit. Jelentősen gyorsabban és könnyedebben lehet haladni, s az ócska hardverre a korábbinál nagyobb, összetettebb struktúrákat álmodni. Épp ettől lesz érdekes és izgalmas. Futtatáshoz ma már (floppy helyett) vannak óriás-cartridge-ek és memóriabővítők (még ha sokszor pusztán emulálva is); a VICE-ban pedig épp most támad fel a SuperCPU… (!) A kész végeredmény azután – amennyiben jól végzi az ember – autentikusan visszavarázsolható egy teljességgel originál vasra is. Akkor ténylegesen bekövetkezik a varázslat: megjelennek rajta olyan dolgok, amelyekről annyit álmodoztunk régen (sosem gondolva azt közben, hogy egyszer azért tényleg lesz ilyen). És lesz.

Ööö… hát persze azért ezt még meg kell csinálni…

   

Update: a fentiekhez fölkerült (mint látható, a jobbszélen) a Rosetta-blog linkje, ahol majd a fejlesztési folyamatot fogom dokumentálni. (Oda lehet kommenteket küldeni.)

 

Olessák Róbert (2013)


  Az óperenciás rendszeren is túl
2012.12.12.
 
  
avagy: Miért jó halott platformokon dolgozni?
  

  Rosetta
2012.11.01.
 
  
Remélem, hogy hamarosan bemutatkozik a kis Rosetta
  

  Játékaim (1987-2001)
2011.09.01.
  
Személyes nézőpontból írott összefoglalóm a játékaim fejlesztéséről
  

  PC játékok (archívum)
2011.09.01.
  
PC-re készült játékok (1997-2001)
  

Az IF vára