Meg vagyok döbbenve, hogy a félmunkák sorozatban még nem szerepelt számítógápes játék/játékterv. Pedig általános iskolás korom óta egyik kedvenc időtöltésem új játékok kiötlése, majd ezek félbehagyása.
Ezt a hiányt pótlandó, most egy vissza-visszatérő játékkoncepcióról írok pár sort.
Az egész két - szerintem nagyszerű - játékkal kezdődött. 1996-ban jelent meg a LucasArts Indiana Jones and His Desktop Adventures játéka, majd egy évvel később Star Wars világba ültették és kiadták Yoda Stories címen is. Nagyon tetszett az egyszerű, de minőségi grafika, az ugyanilyen egyszerű, de szórakoztató játékmenet. Gyors és könnyű véletlenszerűen generált kalandok.
Szerintem hatalmas ötlet volt a random kalandjáték, még mindig csodálkozom, hogy nem finomítottak azóta a megvalósításon (a feladványok érdekesebbé tételével), és nem adták ki valami tartalmasabb változatban. Nekiálltam hát én a saját Random Adventure Role Playing Game-emnek!
Az évek során a játék különböző részeibe is bele-belekaptam. Néha a grafikai megvalósítás kötött le, a játékmotorral is foglalkozgattam, és a játékmenet, tartalom témák is lekötöttek egy időre.
MOTOR
A játékmotor alapvető eleme két véletlen generátor: a kalandfát felépítő, és a térképet összerakó/benépesítő algoritmusok.
Az első ezek közűl meglehetősen egyszerű. Egy feladat megoldása a játékos kezébe adja a következő kulcsát. Például egy zsák kendert a fonóba vive kötelet fon a mester. Ezt és az ácstól kapott felszereléseket használva megjavíthatjuk az elbarikádozott vár előtt álló ócska katapultot, ami aztán átdobhat a fal felett...
Ilyen részfeladatok teljesítésével kell elérni a küldetés fő célját. Minden feladat/puzzle (a végcél is) rendelkezik szükséges feltételekkel (tárgy, információ, ami a megoldásához kell), és megfejtésük valamiféle jutalommal jár (tárgy, információ).
A küldetés felépítése tehát egyszerűen a részfeladatok sorozatának összeállítását jelenti, ami (ha egy feladat megoldásához több feltétel is szükséges lehet) egyszerűen egy fa felállítása. Az algoritmus a főcéltól indul (ennek jutalma a küldetés teljesítése),...
... majd a feltételeihez keres az eltárolt részfeladatok közűl megfelelő jutalommal rendelkezőt.
Ezután folytatja a részfeladatok feltételeivel egészen addig, míg olyan részfeladatokig le nem bontja, aminek nincs előfeltétele (pl. egyszerűen egy tárgy megtalálása az adott helyen):
A fő küldetésfa mellett esetleg kisebb kisebb mellékküldetésfák és "kapu-puzzle" fák is színesítették volna a kalandot. A mellékszálak különleges tárgyakhoz juttatták volna a karaktert, a "kapu-puzzle" fák pedig a térképhez kapcsolódtak volna: egyes elzárt térképrészletekhez adtak volna hozzáférést.
Ezzel el is jutottam a másik generátor algoritmushoz: a térképgeneráláshoz. Alapvetően előre elkészített térképelemekből épül fel a teljes kalandtérkép. Minden puzzle rendelkezik egy saját térképelemmel, plusz van egy halom puzzle nélküli, "üres" térképelem is. Ezek a blokkok az egyszerűség kedvéért négyzet alaprajzúak, az egyikről a másikra a négy oldalon keresztül lehetne eljutni. Pont mint a Desktop Adventures játékokban.
Az eredeti térképalgoritmusom Desktop Adventures-höz hasonlóan kusza, teljesen véletlenszerű módszer. A kaland minden esetben egy kezdő elemből indul (ez akár a cél puzzle-től is függhet, vagy adott, mint a LucasArts játékokban). Ezután a fát a levelektől fogva dolgozza fel: készít egy véletlen utat (üres blokkokkal), majd annak végére leteszi a puzzle blokkját. Ezután (vagy ebből kiindulva, vagy a kezdő blokkból) lerekja a következőt, majd egészen addig, amíg a kalandfa minden elemét le nem pakolta.
A véletlen út generálása egyszerűen véletlen irányba való lépések sorozatát jelenti:
Kapu puzzle elhelyezése után abból indulna ki egy főfabeli puzzle útja, majd a környező mezőket letiltaná az algoritmus.
Ennél a módszernél sokkal szebb, ésszerűbb, zónákra osztott térképet eredményez Sean Howard algoritmusa. Itt a térkép felépítése javarészt független a kalandfától. A módszer pofonegyszerű: a térképhez már hozzáadott blokkokkal szomszédos mezők lesznek az algoritmus következő lépésében a hozzáfűzhető blokkok:
Ahhoz, hogy ez ne legyen olyan kusza (például ne alakuljanak ki lyukas térképek) prioritásokat is rendelhetünk a mezőkhöz. A legegyszerűbb ilyen, hogy ha egy a térképhez nem adott mezőnek már három szomszédja is térképelem, akkor azt automatikusan hozzáadjuk a térképhez.
ezután a már hozzáadott cellákba véletlenszerűen elszórjuk a puzzle-blokkokat:
A térképet a kapu puzzle blokkok zónákra oszthatják. A generálás a következőképp történhet: Miután egy zóna elkészül, keresünk egy olyan hozzáadható mezőt, aminek csak egy oldalán van térképrész, majd oda lerakjuk a kapu blokkot. Az eredeti zóna elemeit és szomszédait tiltott blokként kezelve ebből a kapu cellából az előző algoritmussal új térképet generálunk.
A zónák lehetnek különböző "vidékek": erdők, sziklás vidékek, tisztás, település. A puzzle darabkákat a térképblokkjuknak megfelelő zónába pakoljuk le. Ügyelni csak arra kell, hogy a kapu puzzle fájából ne kerüljön a kapun túlra puzzle. Ez megoldható, ha a fa felőpítésénél figyel az algoritmus a zónára (nem csak az előfeltételekre figyel a kiválasztásnál).
JÁTÉKMENET
Kezdetektől fogva szerep- és kalandjáték ötvözetnek terveztem a játékot (erősen kaland szerepjáték - az első munkacíme Randventure volt). A Desktop Adventures szerű, rövid játék volt a cél, de úgy, hogy a karakter továbbvihető a következő kalandba. A kalandok végén a megmaradt tárgyakkal üzletelni lehetne, csatlósokat fogadni, karaktert fejleszteni.
A játékmenet alapvetően megegyezne a LucasArts kalandokkal. Sétálás, tárgyak gyújtögetése, majd azok megfelelő helyen való használata. Apró pluszként itt a tárgyak mellett információ is lehet a puzzle előremozdítója (triviális példa egy jelszó).
A harcrendszert is inkább szerepjátékszerűre, nem akciójátéknak terveztem. Mindig is tetszett a Mordheim "bármely pillanatban meghalhatsz" rendszere, természetesen valami ilyesmire gondoltam ebben a játékban is. Egy szerencsétlen találat a hős végét jelentheti, de ennek megfelelően a játék nem is a harcra lenne kiélezve. Ennek megfelelően nem is a harcra helyezte volna a súlyt a játék, ha valaki kivont karddal járkál, akkor z NPC-k nyugtalanok és ellenségesek lesznek.
GRAFIKA
A legelső tervek (még csak a fejemben) az eredeti játékok grafikáját követték volna. Ezt azonban gyorsan felváltotta a 3D. Az egyetemi időkben meglehetősen megszállottja voltam a perspektivikus játékoknak, úgyhogy az első skicc is valami ilyesmi volt:
Szerettem volna amolyan klasszikus hangulatot adni a játéknak, ezért a szereplők az Ultima Underworld-höz (vagy legyen a Doom) hasonlóan billboard módszerrel (mindig a játékos felé forduló lapok) jelentek meg - a képzeletemben.
Később, valószínűleg a klassz The Adventures of Robin Hood játék álltal megihletve új, izometrikus mockupot rajzoltam:
Ezután jó ideig nem foglalkoztam a játékkal, míg pár hónapja elő nem vettem a GameMaker-t játszadozni, és el nem kezdtem rajzolgatni hozzá mockupokat. Végül aztán ehhez a játékhoz is firkálgattam Ultima 6-szerű iso grafikát:
Ezzel jól láthatólag még nem foglalkoztam annyit, de ha most nekiállnék, akkor biztosan ilyesmit felé indulnék.
TARTALOM
A random kaland koncepció tökéletes volt számomra, hiszen nem kellett egy jól kidolgozott kerettörténetet és kalandvonalat megírni, egyszerűen csak bedobálni rengeteg apró küldetést. Neki is álltam részfeladatok írásának, és egy kis csokorral össze is gyűjtöttem (pdf 59kB).
Tervben volt mindenféle jó, kisebb-nagyobb extra elemek: többféleképp megoldható puzzle-ök, hírnév kezelése, unlockolható karakterek, évszakváltozás a rendszeridő szerint (egyszerűen mind a négy évszakhoz megrajzolva ugyanaz a háttér) - küldetések évszak, napszak alapon, románc npc-vel, achievmentek...
Tervezgethettem volna életem végéig is.
Talán látszik, hogy ebbe a mókába is jócskán öltem szabad(vagy munka-)időt. És bár szinte biztos, hogy soha nem fejezem be; nem bántam meg. Jól szórakoztam vele.
Utolsó kommentek