Výsledky súťaže MiniGame Compo 2008 boli zverejnené 8.septembra 2008. Moja gamesa Fireball 1k sa umiestnila na piatej priečke.
Musím povedať, že tento ročník súťaže nebol pre mňa taký úspešný ako minulý, kde som získal druhé miesto za Belljumper 1k. Napriek tomu naprogramovať Fireball bolo o dosť zložitejšie ako Belljumper, pretože nebolo možné využiť na vykreslovanie kociek PMG. Kocky boli SW sprajty a zo začiatku bol dosť viditeľný problém s ich blikaním. Keďže nebolo možné použiť doublebuffering, musel som vymyslieť alternatívny spôsob priameho vykreslovania do videoRam, kde by blikanie nebolo vidieť.
Spolu s využitím SW sprajtov vzniká problém detekcie kolízií, ktorého riešenie nie je úplne triviálna vec. Tým pádom sa kód hry značne rozrástol a na nejaké špeciálne fičúrky už akosi neostalo miesto v 1024 bytovom intervale.
Pôvodne mal byť herný koncept dosť odlišný. Plán bol taký, že v hre nebude energia ale životy. Život by sa minul po zasiahnutí hráča kockou. Ďalej som chcel implementovať to, že po zostrelení kocky by z nej vypadol objekt (viď falling diamonds vo Fireball Developer’s Log), ktorý by dopadol na úroveň hráča a ten by ho musel vziať aby získal ďalšie skóre. Samozrejme, že objekty, ktoré by ostali “na zemi” príliš dlho by zmizli. Zároveň v kocke mohla byť bomba, ktorá by po zobratí hráčom spôsobila to, že by vybuchli všetky kocky, ktoré by boli práve na obrazovke. Hráč mal byť pôvodne malý drak, ktorý by vystreľoval ohnivé gule a triafal zamrznuté kocky.
Ako možno vidieť, veľa vymyslených vecí nebolo možné zrealizovať do 1024 bytovej binárky. V závere tvorby hry som aj tak niekoľkokrát celkom divoko optimalizoval kód, či už bežnými postupmi alebo využitím nezdokumentovaných inštrukcií DCM (DEC+CMP), pretože som potreboval každý ušetrený byte.
Napriek všetkým zádrhelom to bola zábavka :-).
Súvisiace linky: