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

6. diel - Skákačka v pygame - Engine a asset

V posledných pár lekciách sme si vyskúšali, ako urobiť nejaké tie menšie hry. Pravdepodobne ste si všimli, že ak by sme chceli robiť niečo väčšieho, bol by náš kód priamo obrovský a tiež obrovsky komplikovaný. Ako teda vytvoriť nejakú hru bez toho, aby sme sa sami utopili v jej kóde?

Herný engine vs. kód hry

Prehľadnejšie a kratšie kód hry získame, ak ho rozdelíme na kód pre engine a kód samotnej hry.

Herný engine

Herný engine je tá časť hry, ktorá nie je špecifická pre danú hru. Pravdepodobne ste niekedy už o nejakom hernom engine počuli, veľmi známe sú Unity, Unreal engine, ale aj napr. Môj obľúbený Game Maker, alebo Simplex Game Studio vytvorený tu na ITnetwork. Všetky tieto softvéry nám určitým spôsobom uľahčujú tvorbu hry - pomáhajú nám odpútať sa od nízkoúrovňových operácií a pomocou abstrakcie sa sústrediť na pokročilejšie pochody v hre.

Herný engine je to, čomu povieme "pohni objektom o 20 pixelov doprava" alebo "zobraz okienko so správou". Samotná pygame sa sama predstavuje ako sada modulov, je teda skôr frameworkom uľahčujúcim kreslenie spritov a podobne, ale neposkytuje nám predpripravené herné mechaniky.

Vďaka tomu, že sú enginy tak všeobecné, tak je možné ich použiť u ďalších hier, čím značne zrýchľujú a uľahčujú vývoj.

Kód hry

Naopak do kódu hry patria všetky veci špecifické pre danú hru. To sú akcie typu "nastav ikonku hráča na vesmírnu postavičku" alebo "ak sa auto dotkne s helikoptérou, zobraz čiernu obrazovku".

Space Ground Adventure

Teraz sa teda, keď už poznáme základy pygame, môžeme pustiť do tvorby niečoho väčšieho, čo nebude zložené iba zo štvorcov a kruhov. Namiesto toho by sme radi mali peknú grafiku, hudbu a zvukové efekty. A pretože mierime ešte vyššie, rovno si k tomu môžeme pridať základné fyziku a kameru. Čo by niečo také mohlo spĺňať?

Space Ground Adventure - Pygame

Áno, správne! Je to štandardná plošinovka!

Funkčnosti

Poďme si teda rovno rozvrhnúť, čo by naša hra mala obsahovať:

  • postavičku hráča, ktorá vie skákať a pohybovať sa
  • gravitáciu
  • objekty, po ktorých môže postavička chodiť (platformy)
  • objekty, s ktorými môže postavička interagovať (kľúče, vlajky, diamanty)
  • nepriateľov, ktorí pôjdu zabiť skokom na hlavu, ale iná interakcie hráčov zabije
  • dekoratívne objekty (stromy)
  • niekoľko levelov
  • jednoduchý level builder
  • hudbu
  • peknú grafiku
  • kameru, ktorá nasleduje hráča

To, čo sme si práve popísali (až na obsah zátvoriek), sú všetko všeobecné kategórie, ktoré sa môžu vyskytovať v akejkoľvek plošinovke, ktorú by sme si prípadne priali urobiť. Z toho dôvodu budú všetky patriť do herného enginu.

Naopak položky v zátvorkách (tj. Tie, ktoré sú konkrétne pre našu hru - postavička, včeličky, diamanty, zámky, tráva) budú patriť až do samotného kódu hry. A máme dokonca aj rozdelené, čo kam patrí!

ASSET

Ešte než sa ale pustíme do samotnej hry, musíme zhodnotiť naše schopnosti. Zvládneme si sami nakresliť všetky obrázky (v hernej terminológii sprity, j. Č. Sprite)? A tiež zložiť vlastný hudobný doprovod? Ak nie sme úplne všestranní ľudia, tak je dosť možné, že aspoň na jednu otázku odpovieme nie. Čo ale v takomto prípade robiť? Našťastie pre nás, vývojárov, existujú na internete miesta, kde môžeme zohnať podklady do našej hry. Uveďme si teda nejaké príklady.

Grafika

Pripravená herný grafika zadarmo na použitie sa dá samozrejme nájsť na internete, najlepšie v balíkoch a na weboch k tomu priamo určených. Treba však dávať pozor, aby k sebe obrázky štýlovo sedeli. A samozrejme si vždy overiť licenciu, ako možno danú grafiku použiť. To napokon platí aj pre ďalšie podklady.

Kenney.nl

Vyhľadávanie obsahu na Kenney.nl - Pygame

Kenney je tím ľudí, ktorí tvoria úžasnú grafiku do hier zdarma, väčšinou pod veľmi voľnú licenciou, ktorá po nás, vývojároch, nevyžaduje ani uvedenia zdroja. Na ich stránkach si stačí vybrať typ a žáner hry, načo je nám obratom vydaný zips, v ktorom máme všetky potrebné veci. Môže obsahovať od niekoľkých typov postavičiek, cez rôzne typy krajiny, rieky, budov atď. Ako na striebornom podnose, v niekoľkých formátoch a veľkostiach.

Platformačného Deluxe

Ich skvelých grafik zadarmo budeme využívať aj pri tvorení našej hry, konkrétne ich Platformer Art Deluxe a Platformer Art: Extended Enemies:

Pygame

OpenGameArt.org

Vyhľadávanie na OpenGameArt - Pygame

Ak hľadáme skôr než celý set niečo konkrétne, môžeme sa pozrieť na stránky OpenGameArt.org, kde si môžeme vybrať z nepreberného množstva grafiky, hudby atď. Hodiť sa určite bude aj možnosť filtrovať podľa typu obsahu a licencie.

Pixabay.com

Vyhľadávanie „cool cat“ na Pixabay - Pygame
. <> Na obrázku je výsledok vyhľadávania "cool cat" na Pixabay

Pixabay.com nie je priamym zdrojom grafiky do hier, avšak pri správne zadanom vyhľadávacom výraze pomôže nájsť to, čo hľadáme. Všetky obrázky na sieti sú pod Pixabay licenciou, ktorá je prakticky to isté ako CC0 - Public domain.

Hudba

A podobné weby máme aj na hudbu a zvuky.

Soundimage.org

Fantasy 10 na Soundimage - Pygame

Soundimage.org je projektom jedného skladateľa, ktorý má na svojich stránkach nepreberné množstvo kvalitnej hudby zadarmo v mnohých rôznych žánroch. Jediné, čo autor na oplátku vyžaduje, je uvedenie svojho mena a odkazu. Aj jeho dielo budeme v našej hre využívať.

Freesound.org a soundbible.com

Vyhľadávanie na Freesound - Pygame

FreeSound.org a SoundBible.com sú veľmi podobné servery, oba ponúkajú vyhľadávanie rôznych útržkov zvukov a zvukových efektov. Freesound dovoľuje vyhľadávanie filtrovať aj podľa licencie. Kvalita zvukov na týchto serveroch je často nedostatočná a je potrebné ich vyskúšať veľa, než nájdeme ten správny, však ak by sme chceli profesionálnu kvalitu efektov, hľadali by sme skôr na platených serveroch.

Motivácia na koniec

Keď už teraz vieme, čo chceme robiť a kde k tomu hľadať potrebné podklady, môžeme sa v ďalšom článku rovno pustiť do tvorenia. Čo ale urobíme ako posledný, je motivácia vo forme gameplaye nášho finálneho produktu. Spojler alert, samozrejme:

V ďalšej lekcii Skákačka v Pygame - Logging zistíme, ako si udržať prehľad o priebehu projektu našej Skákačky pomocou knižnice logging.


 

Predchádzajúci článok
Pygame - Pong - Logika stavov hry a dokončenie
Všetky články v sekcii
Pygame
Preskočiť článok
(neodporúčame)
Skákačka v Pygame - Logging
Článok pre vás napísal Adam Hlaváček
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
vývoji užitečných aplikací zjednodušujících každodenní život
Aktivity