Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 50% výuky zdarma!
Pouze tento týden sleva až 80 % na e-learning týkající se Javy

Lekce 6 - Skákačka v Pygame - Engine a assety

V posledních pár lekcích jsme si vyzkoušeli, jak udělat nějaké ty menší hry. Nejspíše jste si všimli, že pokud bychom chtěli dělat něco většího, byl by náš kód přímo obrovský a také obrovsky komplikovaný. Jak tedy vytvořit nějakou hru bez toho, abychom se sami utopili v jejím kódu?

Herní engine vs. kód hry

Přehlednější a kratší kód hry získáme, pokud jej rozdělíme na kód pro engine a kód samotné hry.

Herní engine

Herní engine je ta část hry, která není specifická pro danou hru. Nejspíše jste někdy již o nějakém herním enginu slyšeli, velice známé jsou Unity, Unreal engine, ale i např. můj oblíbený Game Maker, nebo Simplex Game Studio vytvořený zde na ITnetwork. Všechny tyto softwary nám určitým způsobem usnadňují tvorbu hry - pomáhají nám oprostit se od nízkoúrovňových operací a pomocí abstrakce se soustředit na pokročilejší pochody ve hře.

Herní engine je to, čemu řekneme "pohni objektem o 20 pixelů doprava" nebo "zobraz okénko se zprávou". Samotná Pygame se sama představuje jako sada modulů, je tedy spíše frameworkem usnadňujícím kreslení spritů a podobně, ale neposkytuje nám předpřipravené herní mechaniky.

Díky tomu, že jsou enginy tak obecné, tak je možné je použít u dalších her, čímž značně zrychlují a usnadňují vývoj.

Kód hry

Naopak do kódu hry patří všechny věci specifické pro danou hru. To jsou akce typu "nastav ikonku hráče na vesmírnou postavičku" nebo "pokud se auto dotkne s helikoptérou, zobraz černou obrazovku".

Space Ground Adventure

Nyní se tedy, když už známe základy Pygame, můžeme pustit do tvorby něčeho většího, co nebude složeno pouze ze čtverců a kruhů. Místo toho bychom rádi měli hezkou grafiku, hudbu a zvukové efekty. A protože míříme ještě výše, rovnou si k tomu můžeme přidat základní fyziku a kameru. Co by něco takového mohlo splňovat?

Space Ground Adventure
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Ano, správně! Je to standardní plošinovka!

Funkčnosti

Pojďme si tedy rovnou rozvrhnout, co by naše hra měla obsahovat:

  • postavičku hráče, která umí skákat a pohybovat se
  • gravitaci
  • objekty, po kterých může postavička chodit (platformy)
  • objekty, se kterými může postavička interagovat (klíče, vlajky, diamanty)
  • nepřátele, kteří půjdou zabít skokem na hlavu, ale jiná interakce hráče zabije
  • dekorativní objekty (stromy)
  • několik levelů
  • snadný level builder
  • hudbu
  • hezkou grafiku
  • kameru, která následuje hráče

To, co jsme si právě popsali (až na obsah závorek), jsou všechno obecné kategorie, které se mohou vyskytovat v jakékoliv plošinovce, kterou bychom si případně přáli udělat. Z toho důvodu budou všechny patřit do herního enginu.

Naopak položky v závorkách (tj. ty, které jsou konkrétní pro naši hru - postavička, včeličky, diamanty, zámky, tráva) budou patřit až do samotného kódu hry. A máme dokonce i rozděleno, co kam patří!

Assety

Ještě než se ale pustíme do samotné hry, musíme zhodnotit naše schopnosti. Zvládneme si sami nakreslit všechny obrázky (v herní terminologii sprity, j. č. sprite)? A také složit vlastní hudební doprovod? Pokud nejsme naprosto všestranní lidé, tak je dost možné, že alespoň na jednu otázku odpovíme ne. Co ale v takovém případě dělat? Naštěstí pro nás, vývojáře, existují na internetu místa, kde můžeme sehnat podklady do naší hry. Uveďme si tedy nějaké příklady.

Grafika

Připravená herní grafika zdarma k použití se dá samozřejmě najít na internetu, nejlépe v balících a na webech k tomu přímo určených. Je třeba ovšem dávat pozor, aby k sobě obrázky stylově seděly. A samozřejmě si vždy ověřit licenci, jak lze danou grafiku použít. To ostatně platí i pro další podklady.

Kenney.nl

Vyhledávání obsahu na Kenney.nl

Kenney je tým lidí, kteří tvoří úžasnou grafiku do her zdarma, většinou pod velice volnou licencí, která po nás, vývojářích, nevyžaduje ani uvedení zdroje. Na jejich stránkách si stačí vybrat typ a žánr hry, načež je nám obratem vydán zip, ve kterém máme všechny potřebné věci. Může obsahovat od několika typů postaviček, přes různé typy krajiny, řeky, budov atd. jako na stříbrném podnose, v několika formátech a velikostech.

Platformer Deluxe

Jejich skvělých grafik zdarma budeme využívat i při tvoření naší hry, konkrétně jejich Platformer Art Deluxe a Platformer Art: Extended Enemies :

OpenGameArt.org

Vyhledávání na OpenGameArt

Pokud hledáme spíše než celý set něco konkrétního, můžeme se podívat na stránky OpenGameArt.org, kde si můžeme vybrat z nepřeberného množství grafiky, hudby atd. Hodit se určitě bude i možnost filtrovat podle typu obsahu a licence.

Pixabay.com

Vyhledávání „cool cat“ na Pixabay .<> Na obrázku je výsledek vyhledávání "cool cat" na Pixabay

Pixabay.com není přímým zdrojem grafiky do her, nicméně při správně zadaném vyhledávacím výrazu pomůže najít to, co hledáme. Všechny obrázky na síti jsou pod Pixabay licencí, která je prakticky to stejné jako CC0 - Public domain.

Hudba

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

soundimage.org

Fantasy 10 na Soundimage

Soundimage.org je projektem jednoho skladatele, který má na svých stránkách nepřeberné množství kvalitní hudby zdarma v mnoha různých žánrech. Jediné, co autor na oplátku vyžaduje, je uvedení svého jména a odkazu. Také jeho dílo budeme v naší hře využívat.

freesound.org a soundbible.com

Vyhledávání na freesound

FreeSound.org a SoundBible.com jsou velice podobné servery, oba nabízejí vyhledávání různých útržků zvuků a zvukových efektů. FreeSound dovoluje vyhledávání filtrovat i podle licence. Kvalita zvuků na těchto serverech je často nevalná a je zapotřebí jich vyzkoušet mnoho, než najdeme ten správný, nicméně pokud bychom chtěli profesionální kvalitu efektů, hledali bychom spíše na placených serverech.

Motivace na konec

Když už nyní víme, co chceme dělat a kde k tomu hledat potřebné podklady, můžeme se v dalším článku rovnou pustit do tvoření. Co ale uděláme jako poslední, je motivace ve formě gameplaye našeho finálního produktu. Spoiler alert, samozřejmě:


 

Předchozí článek
Pygame - Pong - Logika stavů hry a dokončení
Všechny články v sekci
Pygame - Tvorba her v Pythonu
Článek pro vás napsal Adam Hlaváček
Avatar
Jak se ti líbí článek?
1 hlasů
vývoji užitečných aplikací zjednodušujících každodenní život
Aktivity (3)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!