Forgotten Fort, avagy Elfelejtett Erőd program

English: This game is partially based on the famous Spectrum game: ”Ant Attack”.
Download file and read readme.txt for general description and playing game -
”fort_prg.txt” for structure or ”fortcode.txt” for programming. Press F1 during game. =Download

A program írásához az eredeti ötletet a Spectrum „Ant Attack” adta. A cél itt is hasonló: meg kell keresni és hazahozni a kutatókat, akik a legendás Elfelejtett Erőd keresésére indultak (ahogy látszik is a játék indulásakor a játékos kiválasztása után). Ehhez - az eredeti játékkal ellentétben - különböző feladatokat kell megoldani, zárt helyekre bejutni, képességeket fejleszteni, tárgyakat keresni vagy javítani, majd felhasználni, emberekkel találkozni - és természetesen felderíteni az Elfelejtett Erődöt is. Számít a gyorsaság is, de még többet a logika. Induláskor még nem járható be a teljes pálya: fokozatosan kell felderíteni, esetleg többször is visszatérve egy adott helyre.
A program alapbeállításokkal bemutató üzemmódban indul. Ilyenkor véletlenszerűen választ egy jelenetet, lejátssza, majd rövid ideig egy leírást mutat a játékról. Utána választ egy másik jelenetet - ez így megy az Esc gomb vagy valamelyik egérgomb lenyomásáig: ekkor indul a tulajdonképpeni játék. Ha létezik, visszatölti az utoljára elmentett játékot (amit kilépéskor automatikusan ment). Ezt törölni a „Fortdel” programmal lehet.
A program fejlesztés alatt áll, emiatt egyelőre nincs „vége” sem a játéknak. Szívesen fogadok bárkitől ötletet, pályatervet, figurát (ikont) - bármilyen segítséget. Leírások mellékelve, segítség az „F1” gombra és a txt file-ok. Utolsó frissítés: 2020.1.1.

FortInduló kép részlete.

Mozogni az alábbi gombokbal lehet:
Insert Home
PgUp
Delete  End
PgDn
vagy joystick-kal, vagy az egér bal gombjával, a megfelelõ irányban.
Az egyes elemeket (pl. floppylemez, telefon, nyíl) a nyilakkal  plusz az Esc és az Enter gombbal lehet kezelni.
A járműből az „Insert” gombbal lehet kiszállni. Kilépés a programból: <Alt X>
Játékos kiválasztásaItt kell kiválasztani az induló játékost: elég az egérrel rákattintani. A többiek elindulnak felderíteni az Elfelejtett Erődöt. Nincs sok idő tétovázni: néhány kutató már türelmetlen!

Ha nincs kiválasztva senki, akkor két szálkereszt látható: az egyik a kurzor, a másik arra való, hogy ha valaki odamegy, őt választja ki.

Közben vigyázni kell a gyerekekre is, mert igen rakoncátlanok: szanaszét dobálják a játékaikat, majd angolosan távoznak.
FortHa a program nem talál egeret, akkor egy szálkereszt jelenik meg, mint a legfelső képen - amely a w,a,s,d gombokkal vagy joystick-kal mozgatható, és az <Alt_H> gombbal vagy a szóközzel lehet választani.
Mozogni igazán jól a billentyűzettel lehet, de az egér nélküli játék - bár lehetséges - nem ajánlott: az akciók így elég lassúak. Játékosváltás: ki kell jelölni az újat (egérgomb vagy <Alt C>), majd megnyomni a jobb alsó sarokban az X-et. Járműben levő játékosra nem lehet váltani: előtte ki kell szállni - és nem lehet mindenkire átváltani: vannak, akik nem irányíthatóak közvetlenül.
Megtalált kutatóAz első kutató hamar előkerül - de semmit nem tud mondani, hogyan és miért került ilyen helyzetbe. Szemmel láthatóan nincs magánál: csak rohangászik föl, s alá egy telefonnal a kezében, és mindennek nekimegy. Segíteni kellene rajta, mert ő az egyik legnagyobb tudású csapattag.
Jobbra egy kapcsoló megnyomása után egy nyíl mutat valamerre...

A játékos nem csak egy lépést, hanem hosszabb utat is megtesz a „+” gombra. Leállításhoz ilyenkor meg kell érinteni (jobb egérgomb).
Együtt a családA kislányt még idejében elcsípték, és betették a csomagtartóba néhány ruha és flakon társaságában - de a kisfiú addig könyörgött, amíg kapott egy saját autót - amellyel persze rögtön el is száguldott. Mostanra sikerült megtalálni: természetesen a Vidám Parkban.
Az aktív játékos öve (vagy a jármű csomagtartója) jobboldalt látható és az alatta levő nyíllal lehet végignézni. Nem érdemes minden tárgyat megtartani: nehezen is férnek el - és némelyiknek feladata van.
Az autóhoz szériatartozék egy kis hatósugarú távirányító is, amellyel meg lehet keresni, ha a közelben van. Most már csak az a kérdés, hogy hol van ez a távirányító?
ÚtvesztőA kutatás során gyakran kerülnek különös helyzetekbe a kutatók. Ez az útvesztő eleinte egyszerűnek tűnik, de aztán kiderül, hogy titokzatos erők dolgoznak a háttérben... Meg kell találni a kulcsot, mielőtt túl szövevényesre fordulna a helyzet!
Játék közben tárgyak nem keletkeznek a semmiből és nem tűnnek el (mint pl. a lövöldözős játékok nagy részében, ahol az ellenség fél óráig lő gépágyúval, és amikor elesik, csak egy csúzli van nála, tíz kővel). Ezért pl. ha elfogy egy ital, megmarad a doboza. Kéretik nem szemetelni! Valahol majd csak újra lehet tölteni.
FortJátékrészletek. A képekben a kisebb kép egy térkép. Ezeket érdemes alaposan megnézni, mert olyan dolgok derülhetnek így ki, amelyek máshogy nem jönnek elő. A függőleges kék csíkoknál azért átlátszó a pálya, mert ott még nem volt megtervezve a kép. Azóta persze ez változott - ahol  még ilyen, ott a pálya tervezés alatt van. Tárgyakat fölvenni, letenni, eldobni vagy valamit végezni velük, vagy a játékosokra hatni a bal egérgombbal, a szóköz gombbal vagy <Alt H>-val lehet - kézbevenni, átadni, megérinteni vagy beilleszteni valahova pedig a jobb egérgombbal vagy az <Alt C>-vel. Az egérrel óvatosan kell bánni: a játék nem jelzi ki, hogy éppen melyik elemre mutat rá: ha túl sokan vannak együtt, akkor nem tudni, kit fog eltalálni, ha pedig túl messzire mutat, akkor eldobja az éppen kézben tartott tárgyakat.
FortSzerkesztő üzemmód. Bal oldalon a választható képek, jobb oldalon a használható színek és a középső pozíción levő figurákból az összetartozók egyenként. Ha ezek közül kijelöljük valamelyiket, azt is megmutatja, ha közvetlenül mellette áll valaki. A képben a kis kép egy térkép, ami az autón látható. Aki nem szereti az ilyen állandóan látható térképeket, az nyugodtan vágja zsebre vagy tegye be a csomagtartóba: úgy is használható, hogy elővéve rámutatunk vele a hősünkre.
PályarészletPályarészlet. Ebben az üzemmódban vagy ennél kisebb felbontásnál lehet a pályát mozaikokból összerakni vagy ezek jellemzőit beállítani. A bal oldali sávban a mozaikok szerepelnek egyesével, a jobb alsó sarokban pedig a kijelölt mozaik kinagyítva. Középen a csillag az alaptáblát jelzi.

A program 320 x 200-as, 256 színű VGA felbontást használ és beépített szerkesztővel, monitorvédővel, valamint fordítóval rendelkezik, amellyel teljesen új elemeket és viselkedést is lehet tervezni - gyakorlatilag az egész játékot újra lehet így írni. Nem tartalmaz erőszakos elemeket, és remélem, megmarad ilyennek (néhány tárgyat szét lehet ugyan verni, de az erre alkalmas eszközöket szigorúan korlátozom: leginkább csak a NPC-k és a nehéz járművek lesznek képesek erre. A gumipitypangot pedig csak látszólag lehet eltaposni: előbb-utóbb magához tér). Néhány pályán már működik egy, a jelenlegi racionális megjelenéssel ellentétes: varázslattal, üveggömbbel, repülő szőnyeggel, gyógyító ékkövekkel, 7 mérföldes csizmával, láthatatlanná tevő köpennyel stb. ellátott változat is - úgy, hogy az eredeti figura álmodja (álomban történhet még más csoda is). Itt van néhány kép a tervről:Képterv
terv
Ezzel szemben a villogó nyilak nem varázslatok - ezek útjelzők, amelyek alapján az aktív játékos átlép a következő pályára.

Be lehet olvasni 256 színű tömörítetlen BMP képeket is, amelyeket aztán be lehet illeszteni a programba, mint ikont, és utána használható bármire, amire az eredeti képek: programot is lehet írni hozzá, de azt is be lehet állítani, hogy ugyanúgy működjön, mint egy régebbi kép.
Csak a sebesség miatt ajánlott hozzá Pentium - de működik gyengébb gépen, akár Windows alatt is.

=Letöltés

A játékban még nagyon sokféle dolog van, illetve ami ebben a leírásban szerepel, az is egyre sokoldalúbb lesz, ahogy az egyes elemek működtető programja bővül. Itt közel sem lehetett mindent bemutatni: le kell tölteni és meg kell nézni! Mindent ki kell próbálni, mert sok tárgynak nem csak egy feladata van, illetve nem csak egyféleképpen lehet használni. Némelyiket véglegesen be lehet illeszteni adott helyen - de előtte lehet, hogy máshol is használni kell! Elég hosszú cselekmények is előfordulhatnak: van pl. egy szereplő, aki mindenfelé feltűnik - vele többször is kell foglalkozni. Máshol meg rendbe kell rakni a környéket, elrendezni a virágokat, dolgozni, építeni, stb.
Ha valami nem sikerül, meg kell próbálni újból, esetleg más módon: pl. ha valaki elesik, rövid ideig nem tud felkelni - ha pedig többen vannak együtt, nem tudni, kire fog rámutatni az egérkurzor. A programot folyamatosan fejlesztem: időnként érdemes visszanézni. Mivel a program fejlődik, és egyelőre a tesztelő is én vagyok, ezért biztonsági okokból fölteszem az előző változatot is.


Ennél a játéknál a lehető legnagyobb nyitottságra és rugalmasságra törekedtem. Azt próbáltam elérni, hogy bármilyen ötletet vagy fejlesztést később is könnyen és gyorsan meg lehessen valósítani - lehetőleg a program újrafordítása nélkül. (Sajnos emiatt az újabb változatokhoz legtöbbször nem használhatók a régi elmentett játékok - akkor sem, ha esetleg betölthetők.) Nincsenek pl. fix, téglalap alakú pályák, hanem szinte teszőleges alakúak összerakhatók kisebb mozaikokból (lásd a fönti térképet) úgy, hogy a kisebb hiányokat a program automatikusan kitölti (bár ez lassú gépen sebességproblémát okozhat). A pályáknak nincsen látható széle sem (nagyon utálom, amikor az ember egyszer csak beleütközik egy fél méter magas falba vagy egy kis patakba, amelyen nem lehet átmenni) - sőt, az alakjuk sem mindig egyforma: ezt néhány helyen az új játék indulásakor a véletlen dönti el. Azt sem szeretem, hogy általában egy hasonló játékban a papírvékony falakat és az elszórt tereptárgyakat semmivel nem lehet megingatni, ezért ebben a játékban erre különböző (korlátozott) lehetőségek lesznek: pl. ha valami zárva van, kulcs nélkül ugyan nem lehet kinyitni, de valamelyest mozgatható - és legtöbbször látszik is rajta, ha nem a rendeltetése szerint szeretnénk használni. Általában arra törekszem, hogy egy tárggyal vagy egy adott helyzetben ne csak azt az egyetlen dolgot lehessen megtenni, amit én elterveztem, hanem többféle lehetőség legyen - ezért pl. az egyik pályáról a másikra legtöbbször akkor is át lehet menni, ha még nincsen „kész”. Ezen kívül pl. a bemutató játék figurái is az aktív játékfigurák közül kerülnek ki: ha van alappozíciójuk, valamint (nem aktív) billentyűkódjaik, akkor a program bármelyiket kiválaszthatja bemutatóhoz. Ha volt a játékban is funkciója, akkor azt játssza le - ha nem, külön elő lehet neki írni, hogy mit csináljon. Át is adhatja a vezérlést egy olyan elemnek, amelyik valamilyen okból maga nem indulhat, de bemutató figurának használható.
A pályákon az elemek kezdeti elhelyezkedésébe is beleszólhat a véletlen. A játékban levő mozgó elemek a lehető legjobban variálhatóak: mindegyik egy-egy kis adatterület, amelyik meghatározza a kijelzett képet (az pedig a működtető programot, amelyik szabadon át is írható) és az összes egyedi tulajdonságot (ezért lehetséges pl. egyéniségeket készíteni benne a játékokban szokásos klónozott - teljesen egyforma - vagy pedig teljesen független - semmi közük egymáshoz - típusú szereplők helyett). Ebből következően a működésük is rugalmas: pl. a kulcs nem csak a hozzá illő ajtót nyitja, hanem mindent, aminek van értelmezhető zárkódja (lakat, kerítés, láda, autó, repülő - és bármi más elem, amit majd később valaki megír - sőt: lehet másfajta kulcsot is készíteni), a csavarkulccsal bármit lehet javítani, ami felkészült erre stb. stb. Takarékossági okokból léteznek összevont elemek is: pl. az együtt mozgó ajtók, a mozgólépcső, a léggömbök, a függöny, a virágoskert, a zászlósor, a tűz vagy a víz. Ezeket nem szabad több példányban ugyanarra a helyre tenni és nem lehet csomagtartóba vagy övre tenni. Az egyes elemekhez parancssorozatok (billentyűkódok) is rendelhetők, amelyek erő- vagy egyéb hatásra aktivizálódnak (pl. amikor valami nagyon elterjed). Jelenleg pl. a térképek, az UFO, a virág és az üveggömb, valamint az emberek használják ezt.
Létezik „kép a képben” funkció - álló és mozgókép alakjában is. Ez szintén akármelyik elemhez hozzárendelhető: jelenleg a térkép, a kapcsoló, a könyv, az üveggömb, az útjelző nyíl és a videotelefon használják, illetve egyedi esetként, kapcsolás jelzésére a mozgólépcső.
Az egyes elemek programja is megírható úgy, hogy az elem különböző beállításokkal teljesen másképp viselkedjen: pl. a szabadon kószáló, a helyben tébláboló, az álldogáló, illetve az irányítható emberek ill. járművek, a nyíló- toló- garázs- vagy kitört ajtó, a szerves vagy szervetlen ital, a csavarhúzó/ csavarkulcs/ kalapács vagy a torta/ sziréna/ forgólámpa/ diszkólámpa/ mérleg/ UFO. Ezek a parancsok külső programmal is szerkeszthetők, azonban programozási üzemmódban egy képet kijelölve automatikusan megkeresi a programját (odaugrik a kurzor), és a változások is sokkal gyorsabban kipróbálhatók. Maga a program egy assembly jellegű nyelv, de magasszintű utasítások (pl. Window, Keyboard) is vannak benne.
Az elemek tulajdonságai között is vannak olyanok, amelyek viselkedést határoznak meg: pl. odalépve hozzá automatikusan felveszi vagy használja - vagy az időzítés, amelyik megmondja, hogy az elem milyen gyakran foglalkozik a környezetével: minden n-edik ciklusban, soha vagy csak akkor, ha másvalaki odalép hozzá. Olyanok is vannak, amelyek tudást vagy képességeket határoznak meg: pl. járművezetés - vagy az, hogy az adott elem feltölthető, vagy nem merül ki.
Külön meg lehet írni, hogyan működjön egy elem, ha „használják”: ilyenkor hatni tud a másikra is, és néhány utasítás másképp működik, mint a normál programnál.
Háttérképnek betéve ugyanez a program mást eredményez: ha rálép egy mozgó elem, végrehajtja rajta. Jelenleg ilyen a gyep, a víz, a nyíl, a kereszt, a virág, az útforduló és a megálló. Háttérnek nem szabad olyan képet betenni, amelynek a programja „jne”-vel kezdődik, de nem erre lett írva - vagy be kell állítani, hogy nem lehet rálépni.
Az elemek egymás tulajdonságait is képesek átírni. Így oldható meg pl. az, hogy egy ember oda legyen rögzítve egy adott helyre: kulccsal is lehetne, de az elég fura lenne - viszont, ha felvesz egy lakatot, az rögzíti őt, és kulccsal nyitható. Tanulni is így lehet könyvből, és persze enni-inni, öltözködni vagy benzint tölteni is.
Egy korlát: egy elem lehet vagy telefon, vagy több „hely” van rajta (mint az autón, körhintán), vagy billentyűkódokat tud előállítani, vagy több dolgot kapcsolni, vagy általános lista van benne (pl. az útjelző nyílban az elérhető pályák). A többi funkció (pl. egy hely, vagy egy kapcsoló, vagy kijelzett kép, vagy akár több alappont) kombinálható egymással és a fentiek közül az egyikkel, csak „hely” és kapcsoló nem lehet egyszerre. Bemutatóban csak a billenytűkóddal (és alapponttal is) ellátott elem indulhat - de azonnal átadhatja a vezérlést mondjuk egy autónak - és ha nem adja át, az autó akkor is látható lehet, csak pl. ki tud menni a képernyőről.

A program maga nem Windows filozófia szerint működik, így egyelőre elég sokféle gomb szükséges a játékhoz és a szerkesztéshez. Tervezem, hogy később ehhez is készítek menüket. Nagyon sok elem beállítási lehetőséggel rendelkezik: pl. a térkép alappontjai, a kapcsoló (amit kapcsol), az elemek alappontja, időzítés, pozíciók, színek, stb. - és ezeket jelenleg elég bonyolult beállítani, valamint a pályaszerkesztéshez is elég sokféle <Alt> gomb szükséges - igaz, vannak csoportra ható parancsok és speciális, az adott elem programozását (pl. alappont, kapcsolandó elemek, stb) segítő parancsok is. Léteznek szerkesztést segítő üzemmódok: az egyikben mindig látszik az aktív elem (pl. térkép) által meghatározott kép, a másikban minden beállítható értéknek (képszám, file, pozíció, erő, stb) kiírja a nevét is, vagy pl. a kapcsolónál látszanak a beprogramozott kapcsolások, a járműnél meg a lehetséges ülőhelyek.

Ha valaki idáig eljutott, és szeretne foglalkozni ezzel, akkor azt ajánlom, hogy kapcsolódjon be a fejlesztésbe. Sajnos én nem vagyok grafikus, zenész vagy harminc fős programozó csoport, így szívesen venném, ha pl. a pályák készítésében segítséget kapnék. A program úgy lett megírva, hogy programozói tudás nélkül (vagy minimális tudással) is fejleszthető, de örülnék akár pályaterveknek vagy rajzolt ikonoknak (max. 32 * 32 képpont: álló vagy fekvő, rombusz alakú változatban. Egyszerre max. 16 változó szín lehet benne - ezért egyszínűek a ruhák és az egyéb mozgó részletek - de tervezem, hogy valamilyen textúrát is teszek bele), esetleg hangoknak (nem hangmintának, hanem egyszerű függvénynek) is. A jelenlegi grafika nagyjából arra lenne képes, mint a
Diablo kisfelbontású üzemmódban, vagy a C&C.