idoregesz.png (forrás: idoregesz.json)
Portoltam a C=64-es Rátkai klasszikust MEG-4-re (így most játsztható Linuxon, Windowson és böngészőben is, a kipróbálásához katt ide, alul "RPG" fül és a flopiját az emulátorra kell drag'n'droppolni).
De ha már lúd, akkor legyen kövér, fel is tunningoltam a játékot kicsit:
- egyrészt lefordítottam angolra, hogy külföldiek is élvezhessék (a fenti flopi egyaránt tartalmazza a magyar és angol szövegeket)
- a játék az eredeti walkthrough alapján végigjátszható (kivéve egy pontot, az eredeti játék a lovagi torna után technikai okokból átdobott a szomszéd szobába, ami idegesítő, így ez nem, ennél itt kell egy plusz "k" utasítás)
- jelentősen feljavítottam a parancsértelmezőjét (az eredetiken túl elfogaja pl. "használ kötél", "leszúr farkas", "hord sisak" vagy "meghúz lady" kombinációkat is)
- a szövegeket több helyen átírtam a játszhatóság kedvéért (pl. "Keresd meg, és hozd vissza az elveszett ékszereimet!", helyett most már utal arra is, hogy 3 darab ékszerről van szó)
- a súgókat is sok helyen átírtam, hogy utaljanak arra, mit kell csinálni vagy mire van szükség (pl. csigalépcsőnél "Ha szerencséd van, nem szakad le a lépcső. Négylevelű lóhere szerencsét hoz.")
- a tárgyak leírását is átírtam, hogy utaljanak arra, mikor és hol kell használni őket (pl "vizsgál nád"-ra nem azt mondja, "Nincs rajta semmi érdekes.", hanem azt, hogy "Üreges, tudsz levegőt venni vele.")
- raktam bele pár easter egget is :-)
A játékot egyébként nem kódoltam le MEG-4 C-ben, hanem írtam egy általános szöveges kalandjátékmotort és egy fordítóprogramot, ami egy JSON-ből veszi az adatokat és MEG-4 futtathatóvá fordít. Ha esetleg valaki kedvet kapna más Rátkai klasszikus portolására (pl Bosszú), vagy netán teljesen új eredeti játék készítésére, akkor annak csak egy JSON fájlt kell megírnia, amiben nagyon szívesen segítek.
Ugyanakkor csináltam egy MEG-4-től független, teljesen függőségmentes, egyetlen forrásfájlból álló, terminálos interpretert is:
- "cc advgame.c -o advgame
" szimplán a fordítása (kb. 1000 SLoC, és tényleg nem kell neki semmi, ebben benne van a readline, zlib, pkzip, caca függvénykönyvtár meg még egy debugger is).
- tudja olvasni a MEG-4 floppikat, de a zip-es projekt formátumot is (nem kell neki se libpng se libarchive)
- "./advgame -d idoregesz.png
" bekapcsolja a debuggert, ez mutatja a végrehajtott VM utasításokat és plusz parancsokat ad (pl. "@jmp N" adott számú szobába ugrás)
Képernyőkép (egy modern terminálban a kép igazából színes):
$$$$$$$$nnnn000$$$$$$$$$$$$$$$$$0$$$$$$$$$$$$$JLLLLtttttttttJ$$$$$$$$$$$$$$$0$$$$$$$$$$$$$$$$$$$
$$$$$$$$nnnn000$$$$$$$$$$$$$$$$$0$$$$$$$$$$$$tzQQQQ___)__}_]_t$$$$$$$$$$$$$$0$$$$$$$$$$$$$$$$$$$
$$$$$$$$nnnn000$$$$$$$$$$$$$$$$&Yaaa&$$$$$$$$_QQQQQ___]__)_}__$$$$$$$$$$$$$$0$$$$$$$$$$$$$$$$$$$
$$$$$$$$nnnn000$$$$$$$$$$$$$aq00n00qa&$$$$$$$_QQQQQ___}__}_)__$$$$$$$$$$$$$$0$$$$$$$$$$$$$$$$$$$
$$$$$$$$nnnn000$$$$$$$$$$$$$$$$&Y$$$&&aa&$$$$_QQQQQ___)__}_)__$$$$$$$$$$$$$$0$$$$$$$$$$$$$$$$$$$
$$$$$$$$nnnn000$$$$$$$$$$$$$$$$$0$$$&aaaa&$$$_jjjjj___|__)_]__$$$$$$$$$$$$$$0$$$$$$$$$$$$$$$$$$$
$$$$$$$$nnnn000$$$$$$$$$$$$$$$$$0$$$$$$$$$$$$_|||||___]__}_}__$$$$$$$$$$$$$$0$$$$$$$$$$$$$$$$$$$
$$$$$$$$nnnn000$$$$$$$$$$$$$$$$$0$$$$$$$$$$$$_|||||___}__]_|__$$kkqkkkkOpOOoz$$$$$$$$$$$$$$$$$$$
$$$$$$$$nnnn000$$$$$$$$$$$$$$$$$0$$$$$$$$$$$$_|||||___)__}_}__$$c}>>;__~|}]]]]tJk$$$$$$$$$$$$$$$
$$$$$$$$nnnn0000a$$$&&&&&&&&&&&&0$$$$$$$$$$$$_|||||___}__)_}__$$$o)}__--][]]___}}}Ok$$$$$$$$$$$$
$$$$$$$$nnnnnY0000{! !{nn00$$$$$$$$$$$$_|||||))}}]]__}__$$$$_]c}_____---_j}}j__tJk$$$$$$$$
$$$$$$$&nnnnnnc0n{! !{nn0000000QQQQQQQQQQQx[1111111111111[[[QQQQ__Qu(}__]]]]]]>___1ff1_tJWW$$$
&&Q//!! !{n00000000n0000{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{--{{{1(}_]]]]~,,>__f1Q111Qvak$
!!!!!!!!!!!!!{n{0n{00000n{! 0000{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1(}__________1z111z1___
nnnnnnnnnnnn00n{{n00Ynnx{" 0000_____!!_{{{{{{{{{{{{{{{{{{{{{{{{{1{111)11{1(}_]{]]{]___________
nnnnnnnnnnnn00!n{n{"{/X/{->, 0Yu{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{){1(}_}]}]}}]]___1j11
nnnnnnnnnnnn000000X/xx_)>>,"i))){{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1(}_____]]}|j1___
nnnnnnnnnnnn000000x/>>>,"![]~]~_{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1)}__]]________
nnnnnnnnnnnn000000>,>"!~[-[}-)1{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{_])}_____11___
nnnnnnnnnnnn000000"!_!_[[][[{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{___1(}]____1__
▴ ⬚ ⬚ ▾ ⬚ ⬚ 24 2
A konyhában vagy. Egyik oldalon hatalmas asztal áll mindenféle
konyhaeszközökkel, a másik oldalon egy nagy tűzhely van. Délre egy
faajtót látsz.
> kinyitom az ajtót
Rendben.
>
Jó szórakozást, és ha valaki kedvet kapna szöveges kalandjátékkészítésre, feltétlenül jelezze, segítek!