The Fogócska

(Commodore 64 játékismertető)

A XXI. századi, 8-bites játékgyártási kedv elképesztő ütemben produkálja a jobbnál jobb, szebbnél szebb és elképesztőbbnél elképzelhetetlenebb játékokat - a Commodore 64 rajongói annyira el vannak látva szoftverrel, játékkal, mint még soha a történelem során.

Már jó ideje úgy döntöttem, ha törik, ha szakad, jómagam is hobbifejlesztőnek nevezem ki magam - bár ezen törekvésem nem öltött publikálható formát egészen a 2014-es Crazy Dog Racing című egész estés C64-es játék Krissz-el történt készítéséig és internetes megjelenéséig (nem mellesleg konszolidált nemzetközi siker lett, csak úgy mondom). Azóta viszont igen komolyan veszem ezt az elhatározást, nem állok meg itt: több, Krissz-el évek óta futó közös (és ihletre váró) projekt mellett saját vállalkozásba kezdek, elsőként pedig megkopott BASIC tudásomat szerettem volna feltornázni egy elfogadható szintre ezzel a minimalista "játékkal".

Technikai feltételek

Ehhez természetesen ma már rengeteg segítség áll rendelkezésre, hiszen majd' az összes könyv és újság megtalálható a témában, csak az ember győzze kikaparni a gesztenyét érő tippeket a hatalmas, szkennerekből áradt infó-parázsból. Ez persze még nem minden, hiszen fejlesztői környezetekben is bővelkedünk, legalább ötféle, Windows és Linux alól futtatható, mindenféle programozási segédlettel megtámogatott program ömlik ránk a C64 közösség jóvoltából - természetesen a már meglévő, régen is használható fordító-, szerkesztőprogram hegyek mellett. Egészen biztos vagyok benne, hogy ez a játék nem készült volna el annak idején, 1 hónapon belül pusztán 5 perces szabadidők felhasználásával - aki tudja, hogy egy hirtelen jött, ihlet által hajtott (előzetes tervezést mellőző) BASIC kódolási kedv később mekkora fullasztó kódmaszatolásba tud átcsapni, az megérti, hogy miért nem a célgépbe, avagy annak emulátorába pötyögjük be a programot... Egyszóval a "fejlesztés" minden perce öröm- és kudarcteli időtöltés volt, végeredményben pedig egy futtatható, játszható játékot eredményezett.

Statisztika

Gondolom, mindenki a kulisszatitkokra kíváncsi, egy ilyen nagyszabású, nagy költségvetésű projekt minden apró információja kincset ér, mert hát mégis egy 40 éve épített számítógépre készített játékról van szó! A statisztikák tehát: 4 db papírlapot használtam el mindössze, minden hétköznap átlagosan 5 perc időt (hétvégén többször fél órát is naponta). Fogyott az ásványvíz, az internet, valamint az áram is egy kevés.

A fejlesztés

Az első dolgom a játék "engine" megalkotása volt. Úgy kezdtem neki, hogy lényegében semmire sem emlékeztem. Ami még tizenéves koromban aktív tudásnak minősült, abból még csak nem is derengtek a képernyőkódok, POKE-ok. Rövid áttekintés után arra az elhatározásra jutottam, hogy az első (és egyben utolsó) lépcsőfok a működő játék létrehozatala lesz. Mivel a fejlesztői környezet óriási kényelmet nyújtott (A CBM PRG Studio), ezért ugyanazt az élményt élhettem át, mint a 2000-es év környékén QBASIC-ben, hogy nincsenek korlátok, és egy rögtönzött kalandjáték esetén akár oda is másolhatom egy-az-egyben a harcrészt, nem kell mindenféle GOTO-kkal szórakozni. Azt persze már akkor tudtam, hogy ezt így nem szabad, de olyan érzés volt, mintha több évtizedes korlátok szakadtak volna át bennem és nyitottak volna teret egy új világban.

A joystick lekérdezés először szövegesen készült, sikerült rájönnöm, hogyan kell figyeltetni azt a helyet, ahova a számítógép a joystick értékeit írja. Ez nem tűnik olyan bonyolultnak, de én annak idején, a '90-es években ebben nem gondolkodtam, az összes release-em billentyűzetről futott - és bevallom, egy játékot sem írtam előtte, ami real-time-ban mozgott. Semmihez sem hasonlítható elégedettség volt, amikor az emulátor virtuális joystickjának mozgatása közben szövegesen megkaptam az irányokat... A következő lépcsőfok egy mozgató rutin összetákolása!

A program piszok egyszerűen, és eléggé primitíven mozgatja a karaktert, azaz a játékos 8-bites avatárját: ahonnan ellép, azt a mezőt letörli, ahova lép, oda kirajzolja. Ez nem tűnik nagyon bonyolultnak, ugyanakkor favágó munka, hiszen mind a 8 irányban meg kell ezt írni (vágólapozni) - de sikerült. Meg kellett toldani ezt egy lekérdezéssel is: ha falnak (ez esetben még csak bármi más karakternek) ütközik a játékos karaktere, akkor ne engedje továbbmenni. Amikor ez elkészült, egyből leteszteltem a C64 bejelentkező képernyőjén, elégedetten kerülgettem a READY feliratot, meg azt, hogy 38911 BYTES FREE.

Az ellenfél AI-jának megalkotása hasonlóan nagy mulatságnak ígérkezett. Itt persze csak egy randomban mozgatott X-ről beszélünk: én viszont úgy éltem meg, mintha mesterséges intelligenciát alkottam volna - ami valahol azért igaz is, úgyhogy nem alaptalan érzés volt ez részemről. Igaz, körülbelül a biológiai egysejtű szint alatti létformának feleltethető meg ez a szint, de akkor is... Amikor elkezdett az X véletlenszerűen sétálni a pályán, úgy, hogy közben az én játékosom is irányítható volt tőle függetlenül, számomra létrejött egy igazi játék. Ezért már megérte csinálni!

A következő napokban szembesültem a kezdeti lendület általi hanyagság problémáival, átláthatatlan lett a kód, és a beleturkálások miatt elég sok hiba fordult elő. Már az elején tudtam, hogy ez lesz, de mégis úgy éreztem, ha nem vetem bele magam teljes lendülettel egészen addig, amíg látható eredményt nem kapok, akkor elveszítem a motivációt, az ihletet. Így, hogy láttam működni a játék lényegét, már szintén csak egy jó kis játék volt a programrészek tisztázása.

A tesztelés

A játék első nyers változatának tesztelését először szerzőtársamra, Krissz-re szabadítottam rá, aki ráadásul - tizenéveskori lelkesedéssel - egyedül jött rá arra, hogyan kell irányítani egyáltalán, mert lelkes e-mailemben azt nem jeleztem neki, hogy stílusosan a W A S D gombokhoz kötöttem a mozgást. Mire megírtam neki a következő levélben, addigra jelezte, hogy rájött, és ezzel akaratomon kívűl számára is sikerült kicsit visszahozni azoknak az időknek az emlékét, amikor kezelési útmutató hiányában végig kellett nyomkodni a billentyűzetet ahhoz, hogy rájöjjünk, melyik gombra mit reagál a játék - kockáztatva a lefagyást, a játékból való kilépést is. Krissz visszajelzése nem "szakmai" volt, hanem egy lelkes beszámoló arról, hogy a játék milyen Commodore-osra sikerült. Ebben egyetértettünk: a BASIC nyelven megírt, beépített CBM karakterkészletet grafikának használó, kis játéktérben játszódó játékok mind commodore-osak, jelentsen ez akármit is. Mindenesetre én örültem neki, mert akkor sikerült elérni a célt - pedig még hol volt a fejlesztés vége?

A játék második tesztere a kislányom volt. Mivel neki értelemszerűen semmilyen kötődése nem volt a C64-hez, így azt is lehetett tesztelni, hogy a játék önmagában mennyire játék, azaz szórakozást tud-e nyújtani egy hét évesnek is a retró-maszlagtól függetlenül. Mivel az ő számára a billentyűzet kezelése még nehézkes, ezért az emulátor gamepaddal történő irányítására volt szükség - akár egy C64 joystick esetében, és a megoldás jól működött, a tesztalany remek mókának tudta be a játékot - persze ehhez hozzájárult, hogy a játékot apa írta, ez pedig nyilván megnövelte az értékét az egésznek. Tesztelői munkájára a későbbiekben is számítottam, rá kellett döbbennem arra a régi igazságra, hogy a kiforrott projekt titka a célközönség bevonása a fejlesztésbe: így már sokkal tisztábban láttam, és léphettem a következő fázisba!

Az utolsó simítások

Főmenüt is rajzolhattam végre, logót (ezt természetesen a PETSCII rajzolóprogrammal), a játék elején lévő szöveges ismertetőhöz az alapkaraktereket használtam ékezetként, ahogy azt annak idején a Commodore Újság programjaiban tették a programírók - ez a rész különösen nosztalgikus érzéseket keltett bennem, tizenéves kori izgatottságot hozott vissza a múltból. Tudtam, ha ezt a részt elkészítem, a játék már 80%-os állapotban lesz.

A végső tanulságok

A tesztelgetés során kiderült, hogy a játékos nem minden esetben kapja el az X-et, ha találkoznak, azaz valami probléma adódott a lekérdezőrutinnal. Az én célom azonban nem az volt, hogy tökéletesre csiszoljam az alapötletet (mégiscsak egy egyszerű fogócskáról van szó) - én egy működő és játszható játékot akartam. Az AI-t toldoztam meg utólag annyival, hogy azért az X valamennyire elszökjön, például ha felé közelítünk, akkor abba az irányba ne akarjon menni, illetve valamikor (randomban) két négyzetet is ugrik... Mint mindenhol, itt is az utólag jövő tapasztalatokból építkezve akár elölről is lehetne kezdeni az egészet, ahol viszont újabb tapasztalatok jönnének, amelyek alapján megint újra - és ez a kör végtelenségig ismétlődhetne, nekem azonban nem ez volt a célom. Amióta a programot késznek kiáltottam ki, azóta vannak persze ötleteim ebben az irányban, de ez már a jövő zenéje. Örülök, hogy a folyamat végén eljutottam oda, ahova szerettem volna - ráadásul több olyan élménnyel gazdagodtam, amire nem számítottam, és ezért ha összegzek: minden szempontból jövedelmező vállalkozás volt.

Azért a végére még maradt annyi szufla, hogy random falakat is betegyek a kész játékba, ezáltal akadályozva egy kissé a játékost - de azért nem annyira (így viszont minden alkalommal más a pálya egy picit), a pontszámlálót pedig csak a teljesség kedvéért biggyesztettem bele, lényegében a lépéseink fogynak csak. Végül úgy döntöttem, hogy a játék elkészült - de nem zárkózom el későbbi újragondolásoktól, illetve a játék alapötleteinek variálásától. Ez persze mindenképp a szabadidőtől függ, de örülök, hogy immár én is hozzájárulhattam - ezúttal szólóban - a Commodore 64 legendájának tovább építéséhez. Több, mint harminc éves gémerkedés után megállapíthatom, hogy három kedvenc, számítógéppel játszható játékom van: az egyik a 'Játékteszter Újságírós', a másik a 'Játékgyártó Szoftvercéges', a harmadik pedig az összes többi... Remélem evvel az élménybeszámolóval sikerült átadnom hát a második kedvenc játékomról szóló érzéseket. A játékhoz pedig ha nagy játékélményt nem is, de kellemes retróélményt mindenképpen kívánok, az arra rászorulóknak!

A játék kazettás, letölthető itt: The Fogócska (t64)

UPDATE: Krissz elküldött két csodálatos fényképet, amelyet az igazi C64-en futó játékról készített, mert mégiscsak úgy van rendjén, hogy egy igazi játék ne csak emulátorban, hanem valódi közegében is, eredeti vason létezhessen. Köszönöm Krissznek, hogy megadta neki ezt a lehetőséget! Az ilyen pillanatokért érdemes dolgozni!