A babó (A hobbit)

 

A Kandó Kálmán Műszaki Főiskolán (ami hároméves képzést nyújtott) háromszor felvételiztem, és bő hat esztendőn át álltam valamilyen hallgatói jogviszonyban náluk (1991 és 1997 között). Ezt úgy sikerült összehozni, hogy az első felvételi vizsgám nem sikerült (épp egy ponttal értem el kevesebbet a hivatalos felvételi ponthatárhoz képest), majd a következő évben már igen (de akkor csak a villamosmérnöki szakra vettek fel, ahol el is kezdtem, azután halaszottam egy félévet), végül harmadszor is nekifutottam (ekkor már az informatikára vettek fel). Igyekeztem „szakaszosan” kinyújtani minél hosszabbra az ott-tartózkodást (többszöri félév-halasztásokkal… és más hasonló trükkökkel), s ezalatt összekapcsolni a kellemest a hasznossal: egyrészt – mivel kellően jó tanulmányi eredménnyel bírtam – rendszeresen elég ösztöndíjat kaptam, másrészt pedig tetemes mennyiségű szabadidőm volt. (Még egy érdekesség: hét éven át minden egyes évben behívtak a katonai sorozóbizottság elé a kötelező sorkatonai szolgálat megkezdése céljából, ám minden egyes alkalommal sikerült azt elhárítani… A diplomázás után persze végül elvittek.)

A fent említett néhány évet főként játékprogram-fejlesztéssel töltöttem. (Lásd a többi leírást és cikket!) Miután a halasztási lehetőségek már elfogytak, az utolsó pár szemesztert egyben lehúztam, s a végén persze diplomázni kellett. Csakhogy ekkor is még megtaláltam ügyesen a – magam – módját rá, hogy ezt az eseményt is legfontosabb szenvedélyem előnyére fordítsam: úgy döntöttem, ebből írok szakdolgozatot. (Ld. külön publikációmat Szöveges kalandjátékok készítése címmel.) A végzett munka túlnyomó része ezen belül is A babó című játékprogram köré koncentrálódott. (Több, mint fél évig, mialatt egy sajátos életritmust alakítottam ki magamnak külön e célból: 48 órás napokban éltem, azaz pontosan és szabályosan minden második éjjelt töltöttem csak alvással.)

Egy Interactive Fiction (vagy ahogyan nálunk inkább elterjedt a szóhasználat, szöveges kalandjáték) adaptáció J. R. R. Tolkien hasonló című regényéből (eredetileg: The Hobbit). Jópár évvel korábban elterjedt már világszerte az a Melbourne House szoftverház által (más Tolkien-feldolgozások mellett) elkövetett változat, mely az egyik alapkövét képezi ez egész műfajnak. (A nyolcvanas évek elejétől kezdve több különböző számítógéptípusra is kiadták. Az egyik legnépszerűbb és legismertebb kalandjáték volt.) Számomra is egyik legmeghatározóbb alapélményt nyújtotta az eredeti játék (mint ahogyan maga a könyv is), többek között ebből kifolyólag esett rá a választás.

A helyszínleírások és más bekezdések egy részét közvetlen a könyv szövegéből merítettem (Szobotka Tibor kitűnő fordításában, a Ciceró Könyvkiadó, az író születésének századik évfordulójára, azaz 1992-ben megjelentetett változatából), némiképpen összekeverve a saját szövegeimmel. A cselekmény s a játék szerkezete némely összetevői pedig a Melbourne House programkiadásból származnak. Egyikhez sem maradtam azonban hű: a régi játékprogramot már túl egyszerűnek, elavultnak találtam, és magasabban álló technikai színvonalra törekedtem helyette.

Először is, magyar nyelvű parsert kellett írni, ami jóval nehezebb, mint angolul. (A parser a szövegértelmezést végző programrész, a magyar nyelvtan pedig sokkal nehezebben kezelhető ilyen szempontból az angolnál.) Továbbá e régi adaptációban még mindössze Bilbó és Thorin figurája szerepelt, én pedig belevettem mind a tizenhárom törpe karaktert. Éppenséggel utóbbi a másik oka választásomnak: az irodalmi regény sokszereplős jellege tette alkalmassá célomra. Ugyanis egy olyan program készítése volt a szándékom, amelyben több különböző főhős kezelhető egyszerre. Ez a törekvés A gálya koncepciójának szerves továbbfejlesztése volt: ott egyelőre két főszereplőt kellett irányítani. Mindamellett e két főszereplő között pusztán váltogatni tudtunk, míg A babó esetén már valós időben, és ténylegesen párhuzamos módon futnak karaktereink a térben.

Négy ablakra osztott képernyőn, a négy ablak mindegyikében a tizennégy főhős bármelyikét elhelyezve, egyidejűleg tudjuk nyomon követni a cselekmény alakulását a szereplőink nézőpontjából: bármelyikkel bármit teszünk, belső és külső szemmel látjuk egyaránt. (Azokat a szereplőket pedig, amelyeket felügyelet nélkül hagyunk, automatikusan vezérli a számítógép helyettünk.) A játék ezen kívül eső összes többi karakterét – legalábbis többé-kevésbé, és feltételektől is függő, korlátozott módon – ugyancsak lehet befolyásolni: mondhatunk nekik bármit, amit szeretnénk, ha megtennének helyettünk. (Természetesen ez nem garantálja azt, hogy tényleg mindig megteszik…) Ráadásul maguktól is folyton cselekednek valamit, így minden egyes programfutam kissé másként alakul; a játékmenet – egészében – sosem marad kiszámítható.

   

Az értelmezés általános módja hasonló a korábbi játékaimban is alkalmazott parser-változatokhoz (pl. A gálya és Az Alvilág Ura), azaz felszólító módú, teljes (tő)mondatszerkezet (pl. NYISD KI AZ AJTÓT), melynek szükségtelenebb elemei általában opcionálisan elhagyhatóak (NYISD AJTÓT), azonban nem maradhat semmi értelmezhetetlen összetevője. (Bármit nem ért meg a program, rögtön reklamál, és nem hajt végre semmit sem, míg ki nem javítjuk. Ez alól kivétel, ha MONDunk valamit egy másik félnek; olyankor az értelmezés folyamata ténylegesen már a másik félnél történik, s mi közvetlen nem kapunk visszajelzést róla. Ezek akár többszörösen egymásba is ágyazódhatnak, pl. így: MONDD MEG ÓINNAK, HOGY MONDJA MEG GLÓINNAK, HOGY NYISSA KI AZ AJTÓT.) Ha a mondat hiányos (NYISD), akkor célzatosan kérdéseket tesz fel rá a program („Mit akarsz kinyitni?”), melyre nekünk elég már csak válaszokat adni (AJTÓT). Természetesen csak olyan dolgokra hivatkozhatunk, amelyek elérhetőek a számunkra, s ezt minden másnál előbb ellenőrzi is a rendszer. (Ha nincs a közelünkben ajtó, akkor üzenetet kapunk – „Nincs itt semmiféle ajtó.” –, kizárólagosan és azonnal, mielőtt még bármi egyéb történne.) Össze lehet fűzni több mondatot egyben (vesszővel vagy ÉS-sel elválasztva). És így tovább: mindezek a fejlett, intelligens parser általános jellemzői, többségében ugyanilyen szintre jutottak el nagyjából a világhírű, ismert, angol nyelvű IF játékvilág legkitűnőbb alkotásai. (Azzal a különbséggel, hogy mivel a magyar ragozó nyelv, míg az angol pedig nem, így magyarul ez nehezebb és bonyolultabb feladat. Ugyancsak a ragozásból származik egy másik fontos eltérés, a magyarban a szórend szabadsága, ami angolul kötött.)

Egy-egy IF viszont nem kizárólag szövegbevitelből (és arra adott válaszokból) áll, hanem van mögötte valamilyen felépített háttérvilág, amit leképeznie kell a számunkra ezen keresztül. Egyfajta szimuláció: úgy is mondhatjuk, hogy világmodell-szimuláció. Ezzel összefüggésben szokás használni a rétegzettség fogalmát, mely azt fejezi ki, hogy milyen mélységben és finomságban sikerül e világ szövetének ábrázolása. Számos tényező és alkalmazott eszköz együtthatásából alakul ez ki (bővebb kifejtését ld. máshol), s A babóban igyekeztem ezt is minél fejlettebbre formálni. Például: minden egyes hely vagy dolog részletesen megvizsgálható vagy átkutatható, és tetszőleges mélységben – rekurzívan – beágyazva tartalmazhat más további rejtett, fölfedhető dolgokat. A történet kulcsmotívuma, a varázsgyűrű ezt még egy újabb, speciális dimenzióval gazdagítja jelen esetben: ama láthatatlansággal, melynek révén adott szereplővel egyrészt eltűnünk a többiek elől, másrészt pedig egy füst alatt átláthatóbbá is válnak számunkra. (Például a program megmutatja nekünk a náluk lévő tárgyakat is, ami alapjában rejtett volna egyébként – ezeket ráadásul észrevétlen módon el is tudjuk venni stb.) Valamint hozzátehetjük a teljességgel rugalmasan alakítható és non-lineáris játékmenetet, mely amúgy a régi játéknak is jellemzője volt.

A program MS-DOS környezetben, x86 Assembly-ben íródott (MASM Assembler fordítóprogram használatával). (Az Assembly szintű optimalizációra feltétlenül szükség volt, ugyanis az akkori, igen gyenge fejlettségű hardver környezetben, egy átlagosabb 486-os gépen programozva, nem lehetett volna elérni még másként a fenti eredményeket, hozzájuk számítva a grafikus képernyőkezelést is, mely a négy ablak egymástól független és párhuzamos, realtime megjelenítéséhez kellett.) Mindazonáltal némi korlátozottsággal azért Windows környezetben is szokott működni, bár nem mindig. (Egy fő probléma, hogy a magyar ékezetes billentyűzetkiosztás ilyenkor „elakad”, tehát vagy a Windows-t kell angol kiosztásra állítani előtte, vagy a játékot kell átkapcsolni, ehhez ld. a mellékelt használati útmutatóban a leírást. Egy másik gond, hogy a program használná a Scroll Lock billentyűt, amit nem enged neki automatikusan beállítani a Windows, ezt is kézzel kell.)

Vagy pedig egy másik lehetőség Windows környezetben (sőt további operációs rendszereken) való futtatásra, ha nem natív módon tesszük, hanem ún. DOS Box emulátor környezeten keresztül.

 

Olessák Róbert (2011)


  Játékaim (1987-2001) /5.
2011.09.01.
  
5. fejezet: A babó
  

  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
  

  Szöveges kalandjátékok készítése
2011.08.28.
  
Az 1997-ben íródott főiskolai szakdolgozatom szövege, egy cikkbe foglalva
  

 

Game(s) Over…

2011.09.01.
  
Képgyűjtemény játékokról, amelyekhez közöm volt (200 kép)
  

  A babó
2011.08.28.
  
A játék letöltése (1.1 MB)
  

  A babó (leírás) (PDF)
2011.11.01.
  
A játék leírása (az eredetiből) (0.1 MB)
  

  A babó (megoldás) (PDF)
2011.11.01.
  
A játék megoldása (az eredetiből) (0.1 MB)
  

  A babó (The Hobbit) (IFDB)
  
A játék IFDB oldala (Interactive Fiction Database)
  

  A babó (onlinekönyv.info, PDF)
  
A regény Szobotka-féle fordítása letölthető PDF-ben ingyen
  

  The Hobbit: Animated (YouTube)
  
Az 1977-es animációs rajzfilmfeldolgozás (a teljes film a jutyúbon)
  

PC játékok