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 3

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

A co že tedy musíte umět? Téměř nic. Nemá smysl chodit zbytečně do hloubky, takže veškeré základní věci jako vysvětlení co jsou proměnné, funkce atp. vezmeme jen letmo, společně s řešením konkrétních problémů (což ale nemusí být na škodu). Nicméně je velká šance, že vám i takový zrychlený výklad postačí. Pokud ale ne, nic se neděje. Tyhle věci jsou stejné pro většinu skriptovacích i programovacích jazyků a já vás vždy odkážu na nějaké využitelné české tutoriály, kde najdete detailnější a trpělivější výklad. Pokud se děsíte nutnosti znát nějaká komplikovaná odvětví matematiky, tak zbytečně. S největší pravděpodobností narazíte (samozřejmě kromě základních matematických operací a trojčlenky) hlavně na různé operace s vektory. A pokud si nebudete vědět kdykoliv s čímkoliv rady, pak je tu internet hemžící se vysvětlivkami i kusy skriptu, které jen čekají na copy & paste, stejně jako různá diskusní fóra plná nápomocných zkušenějších uživatelů.

Co je tedy na skriptování komplikovaného? Zní to jednoduše.

Řekněme, že jste pochopili základy skriptování a chystáte se začít. Proč nebudete skriptovat tak rychle, jak jste schopni ťukat do klávesnice a nemáte hru hotovou druhý den ráno?

To proto, že se budete většinu času potýkat s některým z těchto problémů:

Rozsáhlost skriptu:

  • tohle je věc, která vás zřejmě bude trápit a zdržovat nejvíc. Skripty v UDK jsou opravdu rozsáhlé. Jak přesně jsou provázány, pochopíte, až si vysvětlíme princip dědičnosti – pro tuto chvíli nám postačí prostý příklad. Představte si, že chcete upravit specifický aspekt chování některého z vozidel dostupných v UDK. Dost možná, že jediné co je třeba udělat, je upravit jeden jediný řádek skriptu. Problém je, že třeba zrovna skripty ovlivňující chování a fungování vozidel mají těch řádek stovky či tisíce. Sice obsahují komentáře, to ale bohužel nutně neznamená, že byste váš kýžený řádek našli nějak rychle. Vy totiž často vlastně ani nevíte, jak přesně dosáhnout vytyčeno cíle. Nejprve budete muset alespoň zběžně projít relevantní části skriptu (a teď, které to jsou, že) a zjistit, co vlastně všechno má vliv na to, co vás zajímá. Možná je to opravdu jediná hodnota, možná budete muset poupravovat řadu věcí na různých místech. Problém je, že dokud se v příslušné části skriptu aspoň trochu nezorientujete, můžete jen těžko odhadnout, jak komplikované je to, čeho se snažíte dosáhnout.

Dobré ale je, že čím více budete se skriptem pracovat a nořit se do zdrojových souborů, tím více začnete chápat vnitřní logiku celého systému a tím snáze se v něm budete orientovat.

Chybějící dokumentace:

  • čím komplikovanější věci budete dělat, tím větší je šance, že narazíte na oblast, která dokumentovaná málo či vůbec– teď nemluvím přímo o skriptu ve zdrojovém souboru, ale spíš o obecnějším „jak co udělat“ nebo „proč nefunguje A zároveň s B“ atp. V ten moment nezbývá než se podívat, zda podobný problém neřešil už někdo před vámi a pokud ne, tak testovat, testovat a testovat, dokud nepochopíte, jak vlastně co funguje.

Nativní funkce:

  • většinu funkcí UDK, které budete používat, můžete dohledat ve zdrojových souborech. Tam se můžete podívat, co funkce přesně dělá a případně si ji upravit tak, jak potřebujete. Některé základní funkce jsou však nativní. To znamená, že je nenaleznete (resp. jejich „vnitřek“) v žádném souboru, protože jsou přímo uvnitř enginu (napsané v C++). Do takových funkcí nejen že nezasáhnete, ale v případě, že se funkce nechová tak, jak čekáte, ani nezkontrolujete, co se v ní opravdu děje, což může být trochu nešťastné zvlášť v případech, kdy v této oblasti existuje jen špatná dokumentace. Zároveň bych vás měl ale uklidnit, že na tenhle problém narazíte, až budete skriptovat pokročilé věci.
Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama