Za vydáním nové verze této hry stojí především skutečnost, že jsem se věnoval vývoji nového zvukového modulu ondraMELODIK a snahou bylo jej co nejrychleji a smysluplně někde reálně využít. Volba tedy padla na implementaci do již hotové hry. V souvislosti s tím jsem ještě změnil několik věcí v této hře i na základě zpětné vazby od uživatelů.
První a zásadní změnou je tedy podpora hudebního modulu ondraMELODIK. Pro mne to byla zcela nová disciplína. Nejvíc práce bylo asi (a to hned od začátku) vymyslet správný postup, jak to budu do budoucna celé dělat – tzn. kde začít, odkud hudbu vzít, v jakém formátu nebo i složit vlastní, a výstupem data pro hudební rutinu v Ondrovi v assembleru. Co jsem tak zjistil, každý umělec/programátor si to dělá po svém a ono je to asi tak nejlepší. Velmi se mi líbí zápis od Františka Fuky, dost možná časem dospěji k něčemu podobnému. Nicméně v tuto chvíli a vzhledem k HW možnostem Ondry s Melodikem jsem zvolil cestu takovou, že vstupem je 3 kanálový MIDI soubor (který dokážu předzpracovat), ten převedu pomocí dostupného konvertoru na VGM a v Ondrovi mám rutinu, co používá VGM formát, avšak obálku tónu si tvořím sám. Je to z toho důvodu, že VGM je jinak moc veliký a sotva by se vešel do paměti. Můj VGM má třeba 1.5kB, protože obsahuje informaci jen o změně noty. Časem chci rutinu rozšířit o arpeggio, takže je na čem pracovat. Nutno podotknout, že Ondra má velmi omezené možnosti, kdy 80% času procesor spí a všechno skloubit dohromady je veliká výzva a také je to důvod, proč mě to baví.
V této verzi hry tedy uslyšíte dvě hlavní melodie, které se střídají a jsou výsledkem výše uvedeného postupu. Hra dokáže detekovat přítomnost Melodiku a hned na úvodní obrazovce je rozdíl. Pokud je Melodik přítomen, objeví se text „ONDRA+MELODIK“ a dole uvidíte copyright k použité hudbě. Hudba lze během hraní ztišit pomocí klávesy M.
V souvislosti s implementací hudby bylo třeba přepracovat jádro hry, zejména časování s použitím přerušení – ano, v předchozí verzi jsem měl delay a nebylo to úplně ono. Nyní kostky padají vždy stejně rychle, předtím tam byly drobné rozdíly co asi nikdo nepoznal.
Hratelnost jsem ztížil, ale udělal férovější. Nyní už nelze s kostkou pohybovat, jakmile dorazí na dno. Ale můžete se rozhodnout, jak ji pustíte dolů. Krátkým stiskem SPACE (nebo joysticku), se kostka hodí na dno bez možnosti korekce. Stiskem a držením SPACE kostka jede rychle dolů, ale puštěním jde korigovat. Je tam rozdíl v počítání score, rychlé puštění na dno dává více bodů. Zrychlování padání kostek je úměrné počtu linek zbývajících ke splnění levelu. Na druhou stranu, velkou novinkou je, že jsem přidal možnost opakování levelu. Po skončení levelu se můžete rozhodnout, zda jej opakovat nebo se vrátit do hlavního menu. Všichni se kterými jsem si na Bytefestu povídal to velmi pochvalovali.
Na hlavní obrazovce hry jsem přidal shlédnutí instrukcí, kde jsou popsány klávesy pro ovládání a cíl hry.
Velkou změnou je výchozí ovládání, protože každý člověk co přišel začal ihned ovládat šipkami a mezerníkem, tudíž nyní je toto ovládání výchozí. Samozřejmě je možno nadále ovládat pomocí joysticku a vše se dá předefinovat dle libosti.
Touto verzí byl vývoj této hry završen a kromě oprav už asi nic nového nebude. Především proto, že pod pokličkou se již vaří něco nového :-).
Update: Vydal jsem Falling Blocks v2.0b. Jedná se o opravu chyb: Cvakání relé v Ondrovi při hraní – ano, můj Ondra relé neměl a tak jsem to netušil, nyní jsem mu relé dopájel a nestačil jsem se divit . Hra nešla spustit bez Melodiku – to bylo zcela zásadní.
Stažení pro ViLi ROM: FallingBlocks_2.0b.zip
Oficiální web: https://github.com/72ka/Tesla_Ondra/tree/main/Falling%20Blocks
Jan Heřman