IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Optimalizácia hry vytvorené v game maker

Keďže vykresľovací engine nie je práve silnou stránkou game maker, je dôležité, aby vaša hra neobsahovala zbytočnosti, ktoré ju spomaľujú a kazia tak herný zážitok jej hráčom. Spísal som štyri základné chyby, ktoré najviac ovplyvnia rýchlosť výslednej hry a ktoré najmä nováčikovia v game maker často prehliada.

Rozlišujte medzi Objektom a Tile

Väčšina ľudí (vrátane mňa) má tendenciu brať každú vec v miestnosti ako objekt. Ono to samozrejme tak brať možno, ale potom sa naskytá problém. Objekt je v game maker braný ako niečo, čo niečo robí (vykresľuje sprite, počíta svoje kolízie, kontroluje svoje udalosti, vykonáva akcie a veľa ďalších vecí). Keď chceme v hre niečo interaktívneho (postavičku, letiaci strelu alebo rozbiteľné predmet), samozrejme to musí byť objekt. Pokiaľ ale potrebujeme neaktívny veci ako strom, použijeme TILE. Tile je odvodené od slova dláždiť a ako názov vypovedá, je to prvok, ktorý sa len vykresľuje a je navrhnutý tak, aby hru nespomaľoval a v miestnosti mohlo byť telu stovky. Keď si totiž podlahu (alebo aj neaktívne časti pozadie) v hre vydláždíte pomocou Tile (záložka, room editore), bude fungovať niekoľkokrát rýchlejšie a mať menšie nároky, než keď každá kocka podlahy bude objekt, ktorý sa nielen vykresľuje, ale počíta sa pre neho ďalšie kvantum iných vecí.

Používanie Tiles v game maker - Game maker - základy a ikonky

Tu uvádzam niekoľko príkladov použitia tiles (použil som tiles zo Super Maria ako ukážku). Na obrázku vidíte, že supermario a delo musia byť objekty, pretože sú aktívne (Mario behá a dialo strieľa). Tehličky tesne pod Mariom musí byť objekty tiež, pretože je im potrebné nastaviť vlastnosť solid, aby cez ne Mario neprepadávalo. Ale tehličky v ďalšej rade už nie sú prístupné a preto sú Tile, rovnako ako kvetinka, ktorá nerobí nič iné, než že sa vykresľuje, prípadne animuje.

Používajte vlastnosť Image_speed

Keď vytvoríte objekt a priradíte mu sprite, v ktorom je viac, než 1 obrázok, bude sa animovať. Problém je v tom, že moc rýchlo. Veľa začiatočníkov toto rieši tak, že tupo nakopírujú ten istý obrázok niekoľkokrát zaradom, aby animáciu spomalili. Táto technika síce funguje, ale vaša hra bude mať niekoľkokrát väčšiu veľkosť a pamäťovú náročnosť. Pre tieto účely existuje premenná image_speed, ktorú má každý objekt. Nadobúda hodnôt 0-1 (nastavíte buď v kóde alebo cez Set Variable) a reguluje rýchlosť striedanie jednotlivých obrázkov Spritu. Napríklad objekt Mario, ktorý má Mario.image_speed = 0.5 sa bude animovať 2x pomalšie, než keby ste túto hodnotu nenastavili. Predvolená hodnota je 1.

Používanie image_speed v game maker - Game maker - základy a ikonky

Horný obrázok je zle, pretože zaberá 2x viac pamäte, než je potrebné.

Pozor na step udalosť

Pozor na to, čo objekty vašej hry vykonávajú v udalosti Step. Vykonáva sa totiž naozaj KAŽDÝ krok (hra štandardne vykoná 30 krokov za sekundu pre každý objekt). Vždy sa zamyslite, či sa ona kontrola alebo akákoľvek iná akcia musí naozaj vykonávať tak často.

Nastavujte masku kolízie

Game maker vám u každého nového Spritu nastaví jeho masku kolízie a to väčšinou na hodnotu preceise colission checking. To znamená, že objekt bude reagovať so svojím okolím presne podľa svojho tvaru. Toto je však veľmi pamäťovo náročné a navyše to vo väčšine prípadov nie je potrebné. Napríklad po Mariovi sa vyslovene chce, aby sa správal ako kostička a tiež vy by ste mali mať pri svojej postavičky nastavenú masku kolízie na box. Prečo? Pretože keď máte panáčika všelijako vykrájeného a hýbe sa, môže sa vám stať, že sa panáčik zastaví tesne pred múrom, ale potom zmení obrázok a ten už do steny bude zasahovať. Toto je častá chyba mnohých začiatočníkov - sekanie postavičiek v solídnych objektoch. (Predtým mal panáčik ruky v bok s tál pred múrom, potom roztvoril ruky a tie do steny presiahli). Keď si panáčika nastavím ako rovnako veľkú kocku pre všetkých jeho sprity, bude sa mi krásne zastavovať pred múrom bez ohľadu na jeho súčasný obrázok. Okrem tohto využitie je dobré box používať na všetko, čo aspoň trochu pripomína obdĺžnik, takže nevadí, keď kolízie nie je úplne stopercentné - nikto to nespozná. Nové verzie game maker obsahujú aj ďalšie urýchlené masky (napr. Kruh).

Nastavenie masky kolízie v game maker - Game maker - základy a ikonky

Na obrázku sa obdĺžnik hodí pre strelu a Maria. Naopak pre korytnačku by vyzeralo trápne, keby sa dala zastreliť na bielych miestach a preto Precission ponecháme.


 

Všetky články v sekcii
Game maker - základy a ikonky
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity