Lekce 40 - Dokončení vaší hry(2. část)

GM - Základy

Konstanty (Constants)
Pod touto záložkou můžeš definovat globální konstanty hry, které můžou být použity ve všech skriptech a podprográmcích, nebo jako hodnoty v akcích. Každá konstanta má nějaký název a hodnotu. Názvy konstant se řídí stejnými pravidly jako názvy proměnných, to znamená, že musí začínat písmenem, nebo podtržítkem a může obsahovat pouze písmena, číslice, nebo podtržítko. Doporučuji označovat konstanty tak, aby byly snadno rozeznatelné. Nepsaná úmluva doporučuje používat pouze velká písmena.

Hodnota konstanty by měla být neměnným výrazem. To znamená, neměnnou číselnou hodnotu, nebo textový řetězec, nebo výraz. Výraz musí být vyhodnotitelný, před tím, než se cokoli ve hře stane. Například nemůže obsahovat odkaz na aktuální místnost, instanci, nebo skript. Ale může obsahovat vestavěné konstanty a jména zdrojů.

Můžeš přidávat konstanty stisknutím tlačítka Add a mazat je tlačítkem Delete. Kliknutím na název nebo hodnotu konstanty je můžeš měnit.

Vestavěné soubory v samostatné hře (Include)
Jak již bylo dříve řečeno, můžeš vytvořit samostatně spustitelnou verzi tvojí hry. Někdy tvoje hra bude používat další přídavné soubory. Například můžeš mít video soubory, nebo textové soubory, které ve hře použiješ. Někdy budeš chtít přidávat DLL (knihovny), nebo obrázky a zvuky, které se budou nahrávat až v průběhu hry. Můžeš samozřejmě přidat jednotlivé soubory ke hře, ale někdy je lepší je umístit přřno do výsledného exe souboru. Máš potom pouze jeden soubor pro distribuci hry (Ovšem u rozsáhlejších projektů to vzhledem k velikosti výsledného exe souboru může být právě naopak).

Zde můžeš nastavit, které soubory se mají stát přímou součásti hry, tedy výsledného exe. Nahoře je seznam vestavěných souborů. Tlačítkem Add můžeš přidat další soubor (můžeš přidat i několik souborů najednou). Tlačítky Delete, nebo Clear soubory zase vymažeš ze seznamu.

Soubory v seznamu budou přibaleny v exe souboru při jeho vytvoření. Když je hra spuštěna, soubory se rozbalí a zpřístupní pro hru. Je důležité vědět kde se to stane. Jsou dvě možnosti, které můžeš zvolit. V základní situaci jsou soubory rozbaleny do adresáře, ve kterém je hra uložena. To je také pracovní adresář hry. Tak může hra použít pro přístup k souborům pouze jejich název (není potřebná žádná jiná cesta). To bude fungovat správně, pokud bude hra uložena například na harddisku počítače, ale nebude to fungovat, pokud bude uložena na nějakém médiu, ze kterého lze pouze číst, např. na CD.

Druhá možnost je nastavit rozbalování do dočasného adresáře (temporary), který se vytvoří během hry. Pokud vybereš tuto volbu, budeš potřebovat zadat cestu, kam se adresář bude vytvářet. Tuto cestu lze získat použitím vestavěné proměnné temp_dÍrectory. Nezapomeň v tomto případě připojit obrácené lomítko. Příklad:

{

show_video(temp_directory+'\movie.avi',true,true);

}

Uvědom si, že tento dočasný adresář bude odstraněn, jakmile hra skončí. Takže sem např. nemůžeš umístit uloženou hru, nebo zvláštní informace. Tuto volbu použij pouze v případě, že chceš aby tvoje hra byla spouštěna z CD, nebo když nechceš zapisovat žádné soubory přímo ze hry (seznam rekordů, ukládání hry, ...).

Jestliže již je soubor rozbalen a existuje, normálně nelze přepsat. Pokud chceš tyto soubory přepisovat, zaškrtni volbu Přepis existující soubory (Overwrite existing files). Také, když hra skončí, soubory se normálně neodstraňují (pouze v případě dočasných adresářů jsou kompletně odstarněny). Pokud chceš, aby se soubory na konci hry odstranily, zaškrtni volbu Odstraň na konci hry (Remove at game end).

Je zde namístě varování. Pokud testuješ svoji hru, pracovní adresář hry je adresář ve kterém je uložen soubor .gm6. Pokud jsou vestavěné soubory uloženy také v tomto adresáři a ty zaškrtneš volbu Odstraň na konci hry, můžeš o ně úplně přijít! Takže je lepší tyto soubory neukládat přímo u souboru .gm6, nebo je zálohovat ještě někde jinde!

Chybová nastavení (Errors)
Zde můžeš nastavit několik možností pro zobrazování chybových hlášení.

Zobrazuj chybová hlášení (Display error messages)
Pokud je zaškrtnutá tato volba, hráči se zobrazují chybová hlášení. Ve finální verzi hry můžeš chtít odškrtnout tuto volbu.

Zapiš chybová hlášení do souboru ... (Write error messages to file) ... game errors.log
Všechna chybová hlášení se zapíší do souboru nazvaného game_errors.log v herním adresáři.

Přerušení pro všechna chybová hlášení (Abort on all error messages)

Normálně jsou některé chyby fatální (způsobí ukončení hry) a ostatní jsou ignorovány. Pokud zaškrtneš tuto volbu, všechny chyby budou považovány za fatální a povedou k přerušení hry. Ve finální verzi tvojí hry můžeš chtít zaškrtnout tuto volbu.

Nastavit neznámé proměnné na 0 (Treat uninitialized variablesas 0)

Nejčastější chyba je použití proměnné dříve, než je jí přiřazena nějaká hodnota. Někdy je tomu těžké zabránit. Pokud zaškrtneš tuto volbu, bude u všech proměnných, které dosud nemají jakoukoliv hodnotu, nastavena hodnota 0. Ale přesto buď opatrný, protože to může vést k nějakým chybám.

Informace o hře (Info)

Zde můžeš nastavit autora hry, verzi hry, a nějaké další informace o hře. Také se zde ukládá datum poslední změny. To je dobré, pokud na vývoji hry spolupracuje více lidí, nebo děláš novou verzi. Tyto informace nejsou přístupné při běhu hry.

Rychlost ? uvazovaní "  hry
Pokud vytváříš složitější hry, pravděpodobně chceš aby běhaly přiměřenou rychlostí. Přestože Game Maker dělá všechno pro to, aby hry běžely co nejrychleji, hodně záleží na tom, jak své hry programuješ. Také je důležité jak velkou část paměti hra potřebuje. V této kapitole se dozvíš pár rad, jak dělat svoje hry rychlejší a menší.

V první řadě dávej pozor jaké používáš obrázky pro vzhledy a pozadí. Animované vzhledy zabírají hodně paměti a vykreslování mnoha obrázků trvá hodně dlouho. Takže dělej svoje obrázky tak malé, jak je to možné. Odstraň všechny neviditelné části okolo obrázku (příkaz crop v editoru vzhledů to udělá automaticky). To samé udělej i u obrázků pozadí. Pokud máš obrázek pozadí překrývající celou plochu, odškrtni volbu Kresli barvu pozadí (v editoru místnosti, na záložce pozadí nahoře).

Pokud používáš celoobrazovkový režim, nedělej velikost místnosti, nebo okna, větší než jsou rozměry (rozlišení) obrazovky. Většina grafických karet dokáže jednoduše obrázky zvětšovat, ale mnohem pomaleji zmenšovat! Vždy kdy je to možné, vypni zobrazení kurzoru. Zpomaluje grafiku.

Také buďopatrný při používání více pohledů. Pro každý pohled se místnost překresluje.

Kromě grafiky jsou ještě další aspekty ovlivňující rychlost. Dělej co nejméně instancí. Především, znič instance, které už nepotřebuješ (např. když opustí místnost). Nedávej příliš mnoho příkazů do událostí krok a kreslení. Všechny věci nemusí být prováděny v každém kroku. Také některé funkce a akce zabírají spoustu času; především ty které kontrolují všechny instance (jako například odrážecí akce).

Přemýšlej o tom kam umístíš akce pro událost střetnutí. Vždy máš dvě možnosti. Objekt, který neobsahuje událost střetnutí dělá všechno mnohem rychleji, takže střetnutí umísťuj pokud možno do objektů, které budou mít ve hře méně instancí.

Buď opatrný při používání dlouhých zvukových souborů. Zabírají hodně paměti a také se špatně komprimují.

Nakonec, pokud chceš dělat hry, které bude moci hrát hodně lidí, testuj je na starších počítačích.

A to byla poslední lekce tohoto kurzu, nyní nastal čas opustit ikonky a začít psát kód, takže se na vás těším v GML kurzu.

Napsal uživatel wix