fandal.atari.org - blog - 13/12/2010

The Dreadnaught Factor II

Věřte tomu nebo ne, ale stále ještě žiju. Respektive užívám si krásnou zimu a sladké Atari nicnedělání. Pořádnou pauzu jsem už ostatně potřeboval jako sůl. Dokončení nové hry pro Flop jsem odsunul na příští rok a teprve po několika týdnech, co jsem Atari hodil zcela za hlavu, jsem od minulého týdne opět začal projevovat jakousi aktivitu. Jal jsem se totiž znovu vrtat ve hře The Dreadnaught Factor. Tahle střílečka od Activisionu z roku 1984 je jedna z mých vůbec nejoblíbenějších Ataráckých gamesek. Na všechny obtížnosti jsem jí dokázal dohrát až do konce, což je zvlášť v úrovni 7 docela masakr, jelikož je potřeba zničit 99 nepřátelských bitevníků. No a jak jsem TDF takhle jednou zase pařil, napadlo mě udělat hack, tj. dodat tam zbrusu nové dreadnaughty.

Disassemblovat pouhých osm kilobajtů kódu (ano, celý TDF se autorovi podařilo nacpat do 8 kB cartu!!) byla hračka, horší bylo přijít na to, jak jsou jednotlivé lodě nadefinovány. Hra běží v málo používaném textovém módu Antic 5 (BASIC grafika 13) a už při zběžném pohledu do zdrojáku bylo vidět, že jako tvrdá screen data tam všech sedm typů dreadnaughtů není. I bádal jsem a po čase jsem pochopil, že základními stavebními kameny lodí jsou různě velké bloky široké jeden až sedm znaků, přičemž loď je vždy osově souměrná, takže pro její popis stačí mít data pro pravou polovinu. Dreadnaughty jsou navíc krásně parametricky definované výškou v řádcích, přičemž každý řádek lodi je ukončen elementem s nejnižším bitem nastaveným na jedničku. Dodefinování vlastních lodí je tedy poměrně jednoduché. Stačí si nakreslit vlastní bitevníky a s pomocí převodní tabulky doklepat do zdrojáku nová data.

Pokud se snad stane, že nových dat bude víc než v originále, vůbec nic se neděje. Vše je elegantně řešeno pomocí pointerů a volné paměti jsou mraky. Kolega Eric Nickell myslel při kódování TDF opravdu na všechno. Všechna čest! Akorát nevím, jestli si na převod návrhu lodi do vnitřní reprezentace dat nemám napsat nějaký editůrek, jako jsem to kdysi udělal, když jsem dával dohromady Deflektor II. Zatím jsem ručně z experimentálních důvodů překlapal data pro jednu loď, kterou jsem si vymyslel, ale mezitím jsem ji už několikrát změnil a při jakékoliv další změně bych musel vždy znovu měnit hromadu čísel. Zatím se kloním k tomu, že nejdřív navrhnu všech sedm lodí a až s nimi budu naprosto a dokonale spokojený, tak teprve poté budu asi zase ručně mlátit data přímo do zdrojáku. V tuto chvíli mám hotové tři nové dreadnaughty, s jejichž designem se doslova mazlím v Paint Shopu. Pořád něco ubírám, přidávám a upravuju. Moje nové lodičky prostě musí být dokonalé, to dá rozum! Celé to dílo se pak bude vtipně jmenovat The Dreadnaught Factor II a vyjít by mělo v příštím Flopu. Těšte se, gamesníci!

Na závěr bych rád upozornil na skvěle propracovaný engine hry. Ono to možná na první pohled není moc vidět, ale Eric Nickell byl fakt génius. Všechno, co se na obrazovce kromě nepřátelské lodi hýbe, jsou totiž jenom a pouze PMG objekty. To znamená vaše stíhačka, její střely a hlavně všechny nepřátelské střely a bomby. A že jich ve vyšších levelech může být skutečně požehnaně, což je myslím dobře vidět na přiloženém screenshotu. PéeMGéčka jsou zkrátka velmi chytře a hlavně bez sebemenšího problikávání multiplexovány, že se člověk až diví, kolik jich Atari dokáže zobrazit. Bravo, Ericu!