Hrátky s Unreal Engine VII: Klid před bouří
i Zdroj: PCTuning.cz
Hry Článek Hrátky s Unreal Engine VII: Klid před bouří

Hrátky s Unreal Engine VII: Klid před bouří | Kapitola 2

Aleš Ulm

Aleš Ulm

17. 9. 2010 03:00 34

Seznam kapitol

1. Když začít, tak v novém 2. Skriptovat či neskriptovat… 3. Skriptovat či neskriptovat podruhé 4. Je to plné souborů! 5. Třída jako ve škole 6. Kdo že tu dědí?

Na konci minulého dílu jsme vás navnadili na pokračování, ve kterém budeme vyrábět vlastní hru. Ještě než s tím začneme, je třeba si ale vysvětlit několik posledních detailů a naučit se pár drobností. Dneska si tedy povíme o dalších zákonitostech týkajících se skriptování a hlavně potom něco o dědičnosti skriptů.

Reklama

Proč – a jestli vůbec – se vám vyplatí proniknout do tajů toho „opravdového“ skriptování v UDK je poměrně zásadní otázka. Není to sice žádná magie a nemusíte se obávat ani komplikované matematiky, ale abyste byli schopni dosáhnout víceméně všeho, co si vytyčíte, bude vás to stát poměrně dost času a experimentování. Proto se teď pokusím zodpovědět některé z otázek, na které byste se dříve či později měli nejspíš chuť zeptat, a upozorním vás rovnou na problémy, které vás, když se rozhodnete jít se mnou i do tohohle dobrodružství v rámci UDK, dost možná neminou.

Nestačí mi Kismet?

Kismet vám umožní provádět celou řadu pěkných věcí a opravdu existuje určitá pravděpodobnost, že si nakonec vystačíte s tím, co vám nabízí. To ale pouze v případě, že vaše ambice nebudou příliš vysoké nebo budete UDK používat ke specifickým záležitostem jako vytváření. Proč? Protože Kismet je primárně navržený k tomu, aby se jeho pomocí nastavovaly a ovlivňovaly objekty a děje v aktuální úrovni, aby se jeho pomocí pouštěly a ovládaly specifické cutscény atp. Co mají tyto úkony společného? Ovlivňují objekty a děje vždy v jedné konkrétní úrovni. Proto se také vámi vytvořené sekvence v Kismetu ukládají společně s úrovní, ve které jste je vytvořili. Samozřejmě, že v Kismetu lze udělat i něco globálního, něco, u čeho dává smysl, aby se to využívalo ve více úrovních. Když zabrousíte do diskusních fór UDK, můžete narazit na komplikované sekvence, které například fungují jako komplexní systém pro dynamické přehrávání hudby podle situace ve hře.

To, že se dá takováhle záležitost udělat v Kismetu, je důkaz jeho výjimečné flexibilnosti, ale není to zrovna příklad hodný následování. Přinejmenším proto, že takovýto skript musíte nakopírovat do každé nově vytvořené úrovně, hlídat, abyste případné změny v systému vždy zanesli do každé z nich a nestala se vám opravdu děsivá věc, kdy se vaše hra bude v některých úrovních chovat jinak než v jiných. Obecné pravidlo zní – systémy, které běží v identické podobě nad všemi úrovněmi (ovládání, AI, atp.) by měly být řešeny ze skriptu. Existuje řada zapálených uživatelů Kismetu, kteří ho budou hájit do roztrhání těla, ale faktem je, že spoustu věcí v něm prostě neuděláte a jak píše sám Epic na svých stránkách, Kismet by se měl využívat „to script complex gameplay flow in level“. Že začnete skriptovat zdaleka neznamená, že přestanete Kismet zcela používat – to ani v nejmenším. Právě naopak. Budete schopni si do Kismetu sami přidávat nové akce a eventy.

Jak moc je skriptování komplikované? Co musím umět?

Skriptování v UDK je relativně jednoduchá záležitost. Slovo relativně jsem použil úmyslně, protože existují skriptovací jazyky (a enginy), kde je skriptování jednodušší, než práce s Unreal Scriptem. Tato jednoduchost, která se obvykle projevuje tak, že uživateli ve skriptu „projde“ mnohem víc různých nepříliš hezkých či nejednoznačných konstrukcí, ale má i svou stinnou stránku. V takových případech se sice může podařit hru spustit (skript se zkompiluje), ale poměrně dost se zvyšuje pravděpodobnost, že se kdesi uvnitř stane něco, co uživatel nechtěl a hledání chyb může být obtížné. Unreal Script sice v některých ohledech trvá dost striktně na dodržování jistých pravidel a postupů, které mají blízko programovacím jazykům, ale na druhou stranu se tím snižuje riziko možných chyb a „nedorozumění“. Důležité je, že veškeré prohřešky, které ve vašem skriptu engine najde, vám srozumitelně ohlásí a vy většinou okamžitě zjistíte, co je třeba udělat jinak.

Samotné skriptování není nic komplikovaného. Jakmile pochopíte pár základních principů a pravidel, což je otázka spíše hodin než dní, budete schopni začít měnit věci podle svého gusta. Troufám si tvrdit, že jakmile pochopíte základy Unreal Scriptu, bude pro vás skriptování často mnohem snadnější než třeba práce s editorem. Představte si, že chcete udělat nový emitor částic (k čemuž se dostaneme v příštím díle). V editoru otevřete Particle editor… a nestačíte se divit. Zase nové rozhraní, spousta neznámých tlačítek, spousta otázek jak se co dělá. Když budete ve skriptu potřebovat udělat něco, co jste ještě nedělali, nic vás příliš nezaskočí. Jistě, otevřete třeba soubor, kde se na vás vyvalí desítky či stovky řádek neznámého skriptu. Jenže vy se v něm snadno zorientujete. Všechno je popsané, okomentované. Všechno funguje na principech, které už znáte. Možná vás dokonce začne bavit si skripty vytvořené Epicem procházet a zjišťovat, jak to vlastně dělají oni. Nevím, jestli vám to už někdo řekl, ale skriptování může být a často je, zábavné.

Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama