Jak na textovky? 1. díl
Po vedrech že by se jeden roztekl přišel déšť, obloha potemněla, poněkud se ochladilo, ale v pokoji je stále nedýchatelno, to ale nic nemění na tom, že jsem se rozhodl napsat takový kratičký článeček a opět bude o textových hrách.
Co mě k tomu vlastně vede ani sám nevím, no nicméně dneska mě k tomu navedl kamarád FLY, se kterým jsem žvatlal asi tři hodiny po ICQ a probírali staré zlaté časy nepřekonatelné zábavy, které nám dávali textové hry.
Dnes nebudu psát o nějaké hře, spíš prostě napíšu jak takovou hru naprogramovat, možná, že jednoho krásného dne ještě nějakou naprogramuju. Takže pro neznalé, mladší ročníky, pro ty co se narodili po explozi atomové elektrárny v ukrajinském Černobylu bude tento krátký a výstižný úvod.
Jaké jsou textové hry a co je na nich tak zajímavé? No prostě jsou skvělé, zvláště pak ty moje (dovolím si tu trochu převzít myšlenku Viktora Lošťáka), no nicméně v textové hře, takové té klasické, na jakou jsme zvyklí z osmibiťáků, hráč komunikuje se systémem hry pomocí klávesnice. Tzn. prostě zadává příkazy a hra na to reaguje, někdy kladně, někdy záporně, vše je závislé na enginu (nemám moc rád to poangličťování, ale co naděláme) hry.
Takže si nastiňme nějakou herní situaci (na obrazovce je vypsán popis herní lokace):
Stojíš na uzoučké pěšině v borovém lese, vítr šumí v korunách stromů, z dáli se ozývají zvuky ptáčků zpěváčků, přesný směr se ti však nedaří určit, ale co na tom. Stejně máš jiný úkol.
V nízké trávě u pěšiny je vidět zmačkaný kelímek od jogurtu, či jiné pochutiny.
Cesta vede k jihu a západu.
No tak to byl takový náčrt herní situace. Hráč pak do příkazového řádku vepisuje jednotlivé příkazy. Ty se mohou v různých hrách mírně lišit, ale v podstatě jsou stejné. V česky mluvících krajích se totiž ujal standart zadávání příkazů ve zkrácené formě, čili když by se náš fiktivní hráč chtěl dostat do sousední lokace, no prostě kdyby chtěl jít na jih, jak mu to popisuje lokace, tak prostě vepíše do příkazového řádku „jih“, nebo „jdi jih“ a nebo což je značné ulehčení hry jen první písmeno „j“. Záleží však na enginu hry, jak je dobře napsán.
Samozřejmě, záleží také na fantazii toho či onoho autora, jaké příkazy vymyslí, ale v podstatě by mělo jít o směrové příkazy, čili tedy o sever, jih, východ popř. nahoru a dolů. Málokdy se dá ještě použít třeba severovýchod atd.. ale to už je docela pak masakr, zažil jsem vlastně jen jednu textovku, kde se tato možnost vyskytovala a tou byl slavný Nekonečný příběh.
Mezi ty nejzákladnější dvouslovné příkazy patří bezesporu „prozkoumej něco“, nebo jeho synonymum „zkoumej něco“, „seber“, „polož“ a „použij“. Když je engine hodně dobrý, tak pracuje s více možnostmi daného slovesa, protože skalní hráči jsou zvyklí na své oblíbené příkazy, takže mnohdy hra přestane bavit už na začátku, protože to prostě hráče otráví. Důležitou maličkostí je i forma zadávání příkazů, tzn. že příkazový řádek se bude chovat jako řádek klasického textového editoru. U mnohých her, zvláště pak pro osmibitové Atari to tak nebývalo. Stávalo se totiž to, že autoři (nebo chceme-li programátoři) si vytvořili vlastní systém zadávání příkazů, takže třeba po stisku klávesy „backspace“, se vymazal celý řádek, to jsem nejedenkrát málem rozmlátil vzteky klávesnici. Nebo si vzpomínám na jednu rádoby vychytávku a tou jsou některé hry od Datri. Tam byl zase příkazový řádek zkrácen nebo jak to jinak nazvat modifikován. Hráč vepisoval jen první tři písmena příkazu, takže příkaz pak vypadal asi takto: PRO-POP, což znamenalo „prozkoumej popelnici“, nejen že nefungovala klávesa „backspace“, ale ona mezera, nebo vlastně čárka se doplňovala automaticky a příkaz se sám odeslal. Bezesporu vychytávka, ale asi jen pro autora, dodnes se těmto hrám vyhýbám a mohou mít příběh sebelepší. Prostě není nad to si napsat příkaz celý: „prozkoumej zebru“, samozřejmě, že se nebráním zkráceným tvarům příkazů, takže psát „pro zeb“ a odeslat je lepší. Další věcí je diakritika v příkazech, mnohdy prostě engine hry neumí háčky a čárky, to je také špatně, může se totiž stát, že v popisu lokace se nachází např. zebra a žebrák, co se asi stane, když napíše hráč „pro zeb“? No stane se to, že se vypíše jen jedna varianta a engine už prostě neví jestli hráč chtěl zkoumat zdechlinu zebry, nebo plesnivého žebráka. Dalším případem může být problém v třípísmenné zkratce, vemte si, že v popisu lokace bude „popelnice a popelářský vůz“, pokud tedy engine hry nebude znát slova celá, což v mých hrách také nebylo, ano přiznávám se, byl jsem také prase. No nicméně, vrátím se k tématu, hráč napíše „pro pop“ a hra odpoví třeba: „Má nastartovaný motor a vypadá to, že se chystá k odjezdu…“, no jo, ale chtěl hráč zkoumat popelářský vůz a nebo jen popelnici? Ano i takovým kuriózním situacím může v textových hrách docházet. Čili je prostě nejlepší si naprogramovat engine, tak aby znal celá slova, ale nemuseli se vepisovat celá. Dejme tomu, systém obdrží příkaz „prozk popeln“. Zadaný řetězec si rozdělíme hezky na dva. První příkaz bych oříznul na první tři znaky, ale druhý bych nechal tak jak je, pak systém začne hledat „popeln“, v datech najde ale popelnici, nevadí je to podobné slovo, ještě zkontrolovat správnost lokace a je vyhráno, prostě nedojde k chybě. Nebo alespoň ne takovým, kde jsou věci ke zkoumání zadané ve zkrácené třípísmenné podobě.
No a co jsme se tedy dnes vlastně dozvěděli? Jak vypadá textová hra, jak se správně zadávají příkazy a jak by na ně měl reagovat engine hry. K příkazům jako takovým se ještě vrátím v nějakém dalším pokračování článku, protože pro dnešek by to mohlo stačit. Příště si povíme cosi o enginu pohybu v místnostech, nebo chcete-li lokacích.