Adventure Game Studio - první kroky Překlad a úpravy: Richard Hermann Návod je zamýšlen i pro zvídavce s minimální znalostí angličtiny a výpočetní techniky, coby pohled "pod kapotu" počítačů a jejich logiky. S jeho pomocí lze vytvořit kompletní klasickou adventuru s animovaným hlavním hrdinou, prozkoumáváním herního světa, sbíráním a používáním předmětů a rozhovory s ostatními postavami. Původní průvodce vznikl pro verzi 3.0, ale překládám jej s verzí 3.2.1. Obrázky se občas budou mírně lišit, ale v textu jsou popsané i novější funkce. Kód byl pro snadné kopírování a vkládání všude přepsán z obrázků do textu, vše testováno ve hře.
1. Vytvoření hry Po spuštění AGS souborem "AGSEditor.exe" se objeví uvítací obrazovka: Ujistíme se, že je zvolena první možnost 'Start a new game' - zahájení práce na nové hře - a stiskneme Continue. Druhá volba nabídne k otevření rozdělané projekty a třetí otevře naposled zavřený projekt.
V dalším okně stačí stisknout Next.
Teď si zvolíme šablonu. Pár jich máme k dispozici hned, další můžeme stáhnout na oficiálním fóru. Pro začátek budeme používat šablonu "Default Game" výchozí hra. Obsahuje nějakou tu ukázkovou grafiku, která nám do začátku pomůže. Pro pokročilé se více hodí šablona "Empty Game", protože si stejně budou chtít všechnu grafiku dodat vlastní. Vybereme tedy šablonu a opět klikneme Next.
Zbývá naši novou hru pojmenovat. • Do prvního políčka patří plný název, který bude vypsán v titulku okna hry. • Druhé políčko se zajímá o jméno souboru. Takto bude pojmenován .exe soubor hotové hry. • Třetí pole se nás táže na složku, kam chceme náš projekt umístit. Výchozí umístění bývá v Dokumentech. Tlačítkem Finish se konečně dostaneme do hlavního okna programu.
Takto nás AGS uvítá v hlavním pracovním prostředí. Na následující stránce se na něj podíváme podrobněji.
Open windows - panely, kde můžeme rychle přepínat mezi různými prvky hry, na kterých pracujeme. Fungují podobně, jako panely internetového prohlížeče pro více otevřených stránek současně. Property Grid - zde jsou vlastnosti a nastavení čehokoliv, s čím zrovna pracujeme. Zatím uvidíme toto okénko prázdné. Project Tree - projektový strom, v němž jsou podle typů uvedeny všechny prvky hry. Kliknutí na symboly a zobrazí nebo skryje obsah příslušné větve stromu. Nejprve se podíváme na celková nastavení hry dvakrát klikneme na první položku stromu, General Settings. Panel, který se nám tak otevře, se trochu překvapivě jmenuje Game Settings. Mnoho voleb je nastaveno na True nebo False, což znamená "Ano/Ne". Číslo 0 obvykle znamená, že lze vložit nějaká data (číslo, text, obrázek...), ale zatím tam není nastaveno nic. (Setup)
• • • •
Colour Depth - barevná hloubka, tedy počet barev. Pro co nejsnazší práci vybereme 32-bit, pro nejsnazší práci a také možnost poloprůhledných objektů. NEdoporučuje se měnit tuto volbu v už rozdělané hře. Developer Name - jméno vývojáře. Prostě podpis. Game Name - jméno hry, zde můžeme změnit, co jsme na začátku nastavili Maximum Possible Score - chceme-li ve hře počítat body za pokrok, tady uvedeme dosažitelné maximum Backward Compatibility se zabývá pokračováním s projekty ze starých verzí. Neřešíme. Compiler - většina této kategorie se týká až hotové hry • Enable Debug Mode - během práce prakticky nutnost pro testování a hledání příčin chyb Dialog - nastavení rozhovorů Character movement - nastavení pohybu postav • Characters turn before walking - plynulé otáčení při chůzi, výchozí stav je vypnuto, což doporučuju změnit • Characters turn to face direction - umožní ve skriptech používat příkaz FaceLocation - "otoč se tam a tam" Inventory - zobrazování a manipulace se sebranými předměty • Display multiple icons for multiple items - zda se má víc kusů stejného předmětu zobrazovat po jednom Saved Games - nabízí podrobnější možnosti ukládání rozehrané hry - přípona, náhled, umístění Sound má jedinou položku - zvuk, který zazní, když hráč získá body za nějaký pokrok Text output jsou detaily ohledně písma a textových prvků. • Always display text as speech - pokud je zapnuto, namísto vypravěče říká popisy a komentáře hlavní postava Visual - podrobnosti zobrazování • Default transition when changing rooms - styl "střihu" - prolínání, stmívání, okamžitý střih... • GUI alpha rendering - při 32-bit barvách nastavit Classic, jinak AdditiveOpacity • Pixel-perfect click detection - zpřesní okraje velkých předmětů, ale malinké, tenké věci se pak špatně trefují Z původního průvodce vynechávám část o 256-barevné paletě, která je spíš pro náročnější uživatele, a ti asi překlad zrovna nepotřebují...
2. První místnost Hry se v AGS skládají z takzvaných místností. Každá místnost je jedna obrazovka se svým vlastním pozadím, objekty a aktivními oblastmi. Najdeme si tedy v projektovém stromu sekci Rooms a zobrazíme si její obsah. • Vytvořit místnost - klikneme na Rooms pravým myšítkem a zvolíme New room. • Odstranit místnost - na její název ve stromu klikneme pravým myšítkem, vybereme Delete this room a potvrdíme. Teď se podíváme detailněji na místnost číslo 1. Rozbalíme ji a dvakrát klikneme na Edit room. Background selection - nastavení obrázku na pozadí Room parts - jaký typ prvku chceme v místnosti mít zobrazen, podle toho, zda chceme pracovat s předměty, postavami atd. Room background preview - náhled místnosti, zatím prázdno Properties - nastavení této místnosti. Zde se vždy zobrazují vlastnosti a nastavení prvku, se kterým zrovna pracujeme. Posuvníkem Zoom (na obrázku není; nachází se hned nad náhledem místnosti) si můžeme přiblížit, což je na často k nezaplacení
Pojmenování místnosti Popis, který teď naší místnosti dáme, není nikde ve hře zobrazen. Potřebujeme ho ale k tomu, abychom měli v místnostech při práci pořádek. K tomu slouží řádek Description v okně Properties. Sem zadáme název, pod jakým chceme tuto místnost mít v projektovém stromu. Pozadí místnosti Aby naše místnost vypadala jinak než černota, musíme pro ni vytvořit obrázek na pozadí. Obrázek musí mít alespoň velikost, jako je rozlišení hry (v našem případě 320x200 pixelů). Větší obrázek vede k tomu, že se bude obraz po místnosti posouvat a nebude vidět v jediném záběru. V tomto průvodci používáme pro úsporu času pozadí drze vykradené ze hry Space Quest 4. Obrázek si připravíme ve formátu BMP nebo PNG. V řádce Background to display klikneme na tlačítko Change, najdeme náš připravený obrázek a otevřeme ho.
Okraje Zatím nemáme z naší jediné místnosti kam odcházet, ale můžeme si zatím určit, kde mají být okraje, jimiž lze odejít. Když se nohy hráčovy postavy dostanou za tyto linie, považuje to hra za opuštění místnosti a přesune hráče do další (pokud to jde). Zobrazení nastavíme Edges a uvidíme čtyři žluté čáry při krajích. Umístíme je v takové vzdálenosti, aby mezi nimi a krajem obrazu zbýval pohodlný kus místa ke kliknutí. U našeho příkladu je třeba řešit jen pravý okraj a dveře nahoře. Horní umístíme na práh dveří a pravý na kraj "sloupu", za nímž cesta mizí. Doleva ani dolů jít nepůjde a můžeme tam žluté linky nechat hezy na kraji, ať nepřekáží. Průchozí oblasti V každé místnosti musíme vymezit oblasti, kde se mohou postavy pohybovat. Namísto Edges teď zobrazíme Walkable areas. K dispozici máme několik klasických kreslících nástrojů, kterými vyplníme modře všechny místa, kam mají mít postavy možnost chodit. Levým tlačítkem oblasti kreslíme Pravým tlačítkem je naopak mažeme Asi nejsnazší je čárou si všechno ohraničit a pak vyplnit. Cestu mizící vpravo za sloupem dotáhneme až do kraje, i když není vidět - postavy musí mít kam odcházet, aby řádně za sloupem mizely.
Pro pozici postavy se počítá bod mezi chodidly, takže je lepší nechat průchozí oblasti trochu menší, aby nám lidi nestáli jednou nohou ve vzduchu nebo naopak ve zdi. Výsledek by měl vypadat asi jako na obrázku vlevo.
Umístění postav Teď si v místosti zobrazíme Characters a tažením myší našeho hrdinu přesuneme tam, kde chceme aby se na začátku naší pidi-hry objevil. Pokud ho necháme mimo průchozí oblasti, nebude vůbec schopen chodit.
Překrývající oblasti Teď zbývá postarat se o části obrazu, které se mají zobrazovat před postavami. V AGS se jim říká "walk-behind areas", v některých podobných programech se nazývají "priority". Zobrazíme se tedy v místnosti Walk-behinds a tentokrát si modře označíme sloup napravo, za který nám mizí cesta. Stačí označit jen část, kde se může nějaký ten chodec objevit. Teď zbývá určit, kdy má být postavy překryty, a kdy ne. Takže postava bude částečně překryta třeba stolem jedině tehdy, když opravdu stojí za ním. Musíme zadat výšku, od které nahoru se postavy budou počítat jako za objektem. K tomu nám poslouží hodnota Baseline. Obvykle se umisťuje zároveň s nejnižším bodem překrývací oblasti, s jakou zrovna pracujeme. U miniukázky dole bychom Baseline umístili zároveň se spodním okrajem sloupu. Kdo je níž, stojí před sloupem a kdo je výše, toho bude sloup překrývat. Myší tedy najedeme do výšky, kde se má naše Baseline nacházet. Nad obrázkem místnosti je údaj Mouse position - koordináty myši. Druhé číslo odtud přepíšeme do řádky Baseline ve vlastnostech vpravo dole. Pokud potřebujeme více takovýchto míst v různé výšce, na další oblast můžeme přepnout výběrem, který teď uvádí 'Walk-behind area ID1'. Každá oblast má svá vlastní vyznačení a svou vlastní baseline. Každá má také svou vlastní barvu. Jak vidno napravo, k dispozici jich máme dostatek. První zkouška Konečně si poprvé prohlédneme v akci, co jsme spáchali. Stiskneme F5 nebo tlačítko "přehrát" nahoře na liště. Objevíme se v naší místnosti a můžeme se procházet. F5 spustí hru v debugovacím (testovacím) režimu a vždy v okně. Chceme-li vidět naše dílo přes celou obrazovku, stiskneme Ctrl+F5. Hra nám ale takto nebude pomáhat s hledáním chyb - proto se tento režim hodí hlavně na zkoušky grafiky, kdy potřebujeme vidět detaily. Ze hry se normálně odchází klávesovou zkratkou Ctrl+Q. Pokud se nám hra sekne a tento příkaz nereaguje, použijeme nouzové ukončení Alt+X.
3. První aktivity pro hráče
Máme tedy první místnost a můžeme se procházet. Zatím tu ale není co dělat. Musíme přidat takzvanou interakci možnosti pro hráčovu postavu, jak manipulovat s okolím a reagovat na něj. Podle toho se také počítačové hry nazývají interaktivní zábavou. Patří sem prozkoumávání, otevírání, zavírání, páky a tlačítka, klíče, nástroje, ale i rozhovory a pohyb mezi místnostmi. AGS rozlišuje tři typy prvků, se kterými může hráč provádět činnosti:
•
aktivní oblast neboli hotspot - část obrazu, kterou lze prozkoumat nebo použít, ale během hry se nemění a nepohybuje, například obraz na zdi nebo strom s dutinou, v níž se ukrývá předmět.
•
objekt - samostatný předmět, který se může po obrazovce pohybovat, mizet, objevovat se, nebo může být sebrán hráčem
•
postava - character - funguje jako objekt, ale může se pohybovat mezi místnostmi a dá se s ním hovořit. Například různé přístupové terminály jediného počítače může být výhodnější zpracovat jako postavu, přesto že s nejedná o člověka a nebude se nám po obrazovce procházet.
Aktivní oblasti - hotspoty Z možných interakcí jsou nejsnazší. Zobrazíme si v místnosti Hotspots a dostaneme se opět do kreslícího režimu. Selected hotspot - můžeme vytvořit spoustu různých hotspotů, a tady přepínáme, se kterým zrovna pracujeme. Ostatní hotspoty jsou zobrazeny šedě. Selected hotspot properties vlastnosti hotspotu, klíčová jsou tu dvě nastavení: • Description - popis, který se ve hře zobrazí, pokud máme zapnuty popisy při najetí myší.
•
Name - jméno, kterým je hotspot odkazován ve skriptech. Nesmí obsahovat mezery a u hotspotů je zvykem na začátku písmeno "h", tedy např.hOkno" nebo hKamen.
Interakce Nejvyšší čas, aby se něco začlo dít! Máme nakreslen první hotspot, a ten je teď vybrán. V jeho vlastnostech klikneme na tlačítko blesku - Events. V něm vidíme seznam situací, na které se může nějaká situace vázat: • Any click - při jakémkoliv kliknutí • Interact - při činnosti "použít" • Look at hotspot - při činnosti "prozkoumat" • Mouse moves over - při najetí myši • Pick up - při činnosti "sebrat" • Stands on - postava na hotspotu stojí • Talk to - při činnosti "hovořit" • Use inventory - při činnosti použití předmětu z inventáře • Usermode 1 a 2 - pro přidání dalších činností Můžeme použít libovolnou kombinaci událostí, podle toho co naše situace ve hře vyžaduje. Začneme prohlížením. Klikneme na řádek Look at hotspot, potom na tlačítko se třemi tečkami, které se objeví. Tím přidáme do skriptu místnosti sekci pro činnost "prozkoumávání" - look. Skript se nám rovnou otevře a my můžeme zadat, co že bude důsledkem hráčova zírání. Později si skripty rozebereme podrobněji. Prozatím si představíme, jak nechat našeho hrdinu oznámit výsledky svého průzkumu. Editor skriptů vypadá jako obyčejný textový editor s očíslovanými řádky. Uvidíme v něm skript, jak nám ho hra začala: function [název hotspotu]_Look() { } Což říká, že při prozkoumání hotspotu se má něco stát. My musíme doplnit co. Výsledek bude vypadat takhle: function [název hotspotu]_Look() { cEgo.Say("[jak má hrdina hotspot okomentovat]"); } Je důležité mít všchny závorky, středníky a podobně na svých místech, a nezaměnit například kulatou závorku za složenou. Pokud uděláme někde chybu, hra nám při pokusu o zkušební spuštění chybu nahlásí a v okénku dole najdeme hlášení v podobě: Error (line X): Expected "Y" - chyba na řádku číslo X, očekával jsem tam napsáno "Y". Což obvykle znamená jen zapomenutou závorku a podobně.
Walk-to points Tady nenacházím adekvátní překlad, nu což. Bez použití této funkce může náš hrdina s objektem manipulovat, i když je na opačném konci místnosti. Díky walk-to bodům můžeme zadat místo, kam napřed sám od sebe dojde, než začne s daným hotspotem nebo objektem provádět cokoliv kromě činnosti "prozkoumat". Walk-to bodu se zbavíme tak, že ho nastavíme na 0, 0.