Belljumper 1k

MatoSimi

Takže dačo o tom ako som zápasil s 1kb gameskou...

K Minigame Compo som sa dostal tak, že mi to spomenul tuším Fandal, ktorý bol celkom sklamaný z umiestnenia jeho hry Bombex. Pozrel som si aj iné príspevky a jeden nemenovaný z nich ma presvedčil o tom, že nech spravím čokoľvek, nebude to horšie ;-). Tak som si povedal, že je to celkom výzva spraviť 1kB gamesku, ktorá by mohla byť značne odlišná svojim spracovaním a hrateľnosťou. Samozrejme mi bolo jasné, že do 1kB toho veľa nenatlačím, ale záležalo mi na čo najlepšom designe.

K nápadu Belljumper som sa dostal náhodou, keď som našiel podobnú hru vo flashi. Keď prišiel nápad zúčastniť sa Minigame Compo 2007, hneď som vedel, že toto bude hra, ktorú chcem spraviť.

Ďalším nápadom bolo to, že sa kompletne vyhnem znakovej grafike a spravím celú hru pomocou Player-Missile-Graphics. Tým pádom netrebalo riešiť scrollovanie, ale zábavka začala s tvorbou parádneho prerušenia displaylistu.

Pôvodne som uvažoval o dosť "zložitejší" koncept... čo sa týka samotného spôsobu skákania, ale nakoniec som to vzdal, pretože v kombinácii s DLI by to bolo riadne psycho. Pôvodný nápad bol taký, že by sa herné okno akoby scrollovalo, čo by malo za následok to, že by sa ovplyvnila linearita postupovania nahor. Takže v princípe by bola zmena taká, že by sa nemohlo stať, že by loptička opustila hraciu plochu cez horný okraj, pretože v momente ako by vyletela príliš vysoko by sa hracia plocha rýchlejšie prescrolovala nadol. Zároveň by rýchlejšie padali aj tie hviezdy na pozadí, takže hráč by mal pocit, že sa akoby kamera (ktorá sleduje dej hry) posúva nahor tak aby jej neušla loptička.

Celú hru som napísal za nejakých 7 dní, ale najviac času som strávil nad tvorbou prerušenia displaylistu. Padajúce zvončeky sú tvorené jedným playerom, ktorý v prerušení DL mení farby a horizontálnu pozíciu. Neskôr som pridal efekt padajúcich hviezd, aby som niečím vyplnil prázdne pozadie. Vtedy som zvažoval či to nespraviť tak, že by boli hviezdy tvorené znakovou grafikou... ale nakoniec som ostal pri koncepte spraviť všetko pomocou PMG (s výnimkou skóre). Na 100 pekné hviezdy mi ale neostali takty CPU v prerušení (pretože som musel riešiť spomínané zvončeky), takže sa hviezdy riešili len v niekoľkých scanlines na každom znakovom riadku. To malo za následok efekt preblikávania, ktorý sa mi nakoniec zapáčil, takže som to už neriešil.

Pôvodne som chcel viac animovaných prvkov, ale na to už nevyšlo 1kB obmedzenie. Takže som sa musel uspokojiť s jednoduchou loptičkou a statickými zvončekmi. Od začiatku som ale rátal s tým, že hra musí nejak napredovať, aby nebola úplne monotónna po prvých dvoch minútach hrania. Takže som to vyriešil tak, že postupne sa zvončeky zmenšujú a tým je zložitejšie ich trafiť resp. odraziť sa od nich. Ešte predtým som však pochopil, že je potrebné pridať možnosť zrýchlenia pohybu v horizontálnom smere, pretože sa veľmi jednoducho stalo, že hra skončila po niekoľkých sekundách pretože nebolo možné trafiť zvonček z dôvodu jeho nedosiahnuteľnej pozície. Nakoniec som pridal ešte turbo mód, ktorý je vlastne akoby vyšší level, keď už sú zvončeky malé. V skutočnosti je to iba obídenie čakania na synchronizáciu obrazovky, ale splnilo to svoj účel. Počas turbo módu sú zároveň zvýšené prírastky k skóre.

V pôvodnom koncepte (so scrolovacím oknom) mali zvončeky po dotyku zmiznúť, čo sa však nedalo zrealizovať pri lineárnom padaní... pretože by bola hra nehrateľná. Skóre sa pripočítava pri kolízii playera loptičky s playerom zvončeka. Vtedy sa aj zahrá tón z melódie. Tu bolo celkom zaujímave vyriešiť to, aby sa pri odraze od zvončeka zahral iba jeden tón, napriek tomu že jeden odraz predstavoval niekoľko kolízií playera loptičky s playerom zvončeka.

Celkovo to bol celkom zaujímavo strávený čas pri programovaní takejto hry. Doporučujem každému kto váha nech to skúsi, je to dosť slušne náročné zmestiť sa komplet do 1kB. 2kB a 4kB compo je už pre lamy... ;-)