Falling Blocks

Jan Heřman vytvořil v roce 2021 konverzi hry Falling Blocks. Zde se dozvíte, proč to autor naprogramoval a také různé informace o hře. Autor hru prezentoval na akci Bytest 2021.

Jedná se o konverzi hry pro ZX Spectrum. Je to moje první hra/program napsaný v asm vůbec. Cílem bylo se naučit programovat pro Ondru, který je z programátorského hlediska velmi zajímavý ze dvou důvodů
a) Velmi omezený počet programů na tento počítač
b) Velmi pomalý hardware (cca 11% rychlost vůči ZX Spectrum při plném zobrazení), což přináší mnohé výzvy

Hra vychází z Tetrisu, avšak je zcela jinak koncipována. Cílem není vydržet co nejdéle, ale splnit jednotlivé levely. Každý level je jiný, setkáte se s novými tvary, obrácením gravitace, náhodnými překážkami, zátarasy a šoupáním již uložených řádků. V každém levelu je třeba splnit individuální cíl – počet kompletních řádků. Oproti originálu jsem zvýšil obtížnost a navíc přidal zcela nově proporcionální zrychlování padání kostek v závislosti na počtu splněných řad. Pomocníkem je možnost zobrazení ducha pomocí klávesy G nebo možnost si ukládat aktuální obrazec na příště pomocí klávesy S. Hra se ovládá klávesnicí QWOP nebo joystickem, ovládání lze předefinovat (DEFINE Keys). Rovněž lze nastavit chování hry (SETTINGS). Skóre se počítá podle toho, jak rychle se kostky začleňují, tzn. drop má nejvíc bodů. Nejvyšší skóre se oproti originálu zobrazuje na úvodní obrazovce. Pokud si budete chtít zahrát diskrétně, lze vypnout zvukové efekty (jestli se tomu dá říkat) pomocí M.


Původní hra je na Spectrum koncipována tak, že celé hrací pole se vykreslí bloky 8×8 a algoritmus pak pouze bleskurychle přepíná atribut barvy pro blok (černá = nic). Ondra nic takového nemá, bylo tedy nutné od základu předělat jádro hry. Ondra musí bloky vykreslit a při posunu původní smazat a nové opět vykreslit. Chudák slabý Ondra musí tedy vynaložit většinu svého výpočetního výkonu na provoz hry.

Stažení pro ViLi ROM: FallingBlocks_1.0.zip

Jan Heřman

Příspěvek byl publikován v rubrice Software. Můžete si uložit jeho odkaz mezi své oblíbené záložky.