Programování pro hračičky/Měniči/Lekce 4

Z Wikiverzity
Jak používat klasifikační nálepkuTato stránka je součástí kurzu:
středoškolská
Příslušnost: skupinová

Světy a prahy[editovat]

Jak jsme zmínili v závěru předchozí lekce, Prahy se jmenují podle prahů, tedy průchodů mezi různými světy, z nichž hra sestává. O různých „světech“ hovoříme v kontextu hry samotné, jako hráči, kteří tyto světy prožívají a pohybují se v nich a mezi nimi; programátorsky se hovoří spíše o „doménách“, či v Prazích konkrétně o „panstvích“ podle toho, že správci-programátoři jsou zde zobrazeni jakožto nade vším bdící andělé. Základní principy fungování hry platí ve všech doménách stejně (tedy ve všech má hráč k dispozici stejné základní příkazy, ve všech při ztrátě všech životních bodů zemře, všechny jsou propojeny touž poštou a systémem nástěnek atd.), ovšem jejich konkrétní rozpracování se může i dost výrazně lišit.

Aktuálně jsou hráčům přístupny tyto domény:

  • Dům: Svět, v němž se ocitne nově zaregistrovaný hráč. Byť je to jen jediný dům, je to svět sám pro sebe, v němž je vždy dostatek jídla a pití, v němž je zakázáno bojovat (s výjimkou cvičného lovu mola v galerii) a v němž je umístěn právě jeden jediný úkol, a to ten povinný nováčkovský — zkrátka je to svět přizpůsobený ve všech ohledech herním nováčkům (i když se do něho z různých důvodů rádi vracejí i ostřílení hráči).[1]
  • Oikúmené: Svět podle reálné historie, časově kolem roku 60 n. l. Zpřístupněno je celé Středomoří, ale podrobněji zpracován je jen Blízký východ.
  • Středozemě: Svět podle knih J. R. R. Tolkiena, časově na konci Třetího věku, dějově po událostech popsaných v Hobitovi, ale před událostmi z Pána prstenů. Zpracované jsou dvě oblasti, doly Morie a Anórien, jenž leží u hranic Gondoru s Rohanem.
  • Stínadla: Svět podle knih Jaroslava Foglara Záhada hlavolamu, Stínadla se bouří a Tajemství velkého Vonta a částečně podle komiksů o Rychlých šípech a podle knihy Poslední tajemství Jana T. od Jaroslava Velinského. Tento svět je ve hře zachycen v době těsně před událostmi popsanými v knize Stínadla se bouří. Specifikem této domény je, že při soubojích se zde nebojuje na život a na smrt, nýbrž je možné se jen „klukovsky poprat“.[2] Hráčům je v současnosti přítomna část koryta Černé vody a přilehlého stínadelského podzemí a několik ulic poblíž Terásku.
  • Současnost: Svět podle reálné současnosti, nepropojený ovšem kontinuálně, nýbrž složený jen ze vzájemně propojených herních ostrůvků, sídel různých neziskových organizací působících v Česku. Hráčům je aktuálně přístupna jen budova a zahrada Waldorfského lycea v Praze na Opatově.

Ve výstavbě jsou i další domény: Pásmo, svět podle knihy Piknik u cesty bratrů Strugackých, Narnie podle Letopisů Narnie C. S. Lewise a Matematika, svět obývaný čísly, funkcemi a dalšími matematickými jsoucny. Ty však zatím nejsou hráčům běžně přístupné (je však možno se do nich dostat například při některých testovacích akcích).

Jednotlivé domény jsou propojeny sítí časoprostorových průchodů, již vícekrát zmiňovaných „prahů“. Některé z nich jsou obousměrné, jiné jen jednosměrné. První práh, který jste překročili z Domu do Oikúmené, je příkladem prahu jednosměrného — ani při sebelepším hledání mezi kameny u hradeb Chrámu tam nenajdete cestu zpět. Jiný jednosměrný práh však vede z jiného místa v Jeruzalémě zpátky do Domu. Obousměrné jsou oba v současnosti zprovozněné prahy spojující Oikúmené se Středozemí i práh spojující Oikúmené se Stínadly. Dům je spojen se Současností (či konkrétně s virtuálním Waldorfským lyceem) dvěma jednosměrnými prahy, které jsou však umístěny tak, že s nimi hráč může víceméně počítat jako s jediným obousměrným prahem.

Exteriéry a mapy[editovat]

Jakmile jsme překročili práh z Domu do Oikúmené, můžeme si povšimnout, že v popisu místnosti přibyla řádka informující nás o denní době, případně též o počasí. To souvisí sice i se změnou domény (každá doména může tyto informace podávat jiným způsobem), ale především s tím, že jsme se nyní ocitli pod širým nebem, v exteriéru.[3] Jakmile vstoupíme například do jednoho z jeruzalémských obchodů, tato řádka z popisu místnosti opět zmizí.

Obsah této přidané řádky není uložen jako vlastnost do objektu místnosti, v níž se právě nacházíme, nýbrž kdesi v útrobách neviditelných řídicích objektů (jimiž se zatím nebudeme zabývat) jsou jako jejich vlastnosti uložena různá pravidla, podle nichž se má v příslušné doméně měnit denní doba a počasí. Z těchto pravidel se pak přidaná řádka s informacemi o denní době a počasí automaticky vygeneruje ve chvíli, když si hráč místnost prohlédne (nebo do ní vstoupí).[4]

Jakmile opustíme Jeruzalém a vydáme se na cestu volnou krajinou, začneme automaticky generované texty potkávat v ještě větší míře. Spojitá krajina samozřejmě pro potřeby hry musí být i nadále rozdělena na místnosti, takže se pak pohybujeme (přibližně kilometrovou)[5] čtvercovou sítí jednotlivých vzájemně propojených sousedních míst, ovšem na rozdíl třeba od jeruzalémských ulic tato místa ve většině případů nemají žádný vlastní popis, nýbrž jsou celá generována automaticky podle určitých pravidel, uložených kdesi v neviditelném řídicím objektu — zde tedy v mapovém objektu domény Oikúmené.

Z toho, že jsou mapové místnosti generovány automaticky, plyne jejich určitá jednotvárnost — místnosti jsou generovány podle mapy, v níž je vždy pro políčko na určitých souřadnicích uložena jednoznaková informace o druhu místnosti, a všechny místnosti téhož druhu mají následně zpravidla stejný hlavní popis a sice náhodně generovanou, ale druhově stále stejnou flóru a faunu. Kupříkladu okolí Jeruzaléma vypadá v mapě takto:

‎thhhhhhhhhhhhhhhh*hhhhhhhhhhhhhhhhhhh*h++hhhhhhhhhhhhhhhss**sssssjjj!!rrSr!!
tthhhhhhhhhhhhhhhh***hhhhhhhhhhhhhhhh*hhh++hhhhhhhhhhhhss*sssssssjj!!!!rT!!!
ttthhhhhhhhhhhhhhhhhh**hhhhhhhhhhhhhh*hhhhh+.hhhhhhhhhhss*sssssss!!!!!!R!!!!
thhhhhhhhhhhhhhhhhhhhhh***hhhhhhhhhhhh*hhh+h+hhhhhhhhh***ssssssss!!!!!!S!!!!
Qhhhhhhhhhhhhhhhhhhhhhhhhh*hh*h.hhhhhh*hh+hh+hhhhhhhh*hssssssssss!!!!!!!T!!!
tPWVUhhhhhhhhhhhhhhhhhhhhhh**h***VUhhhh*++h+hhhhhhh**hhssssssssss!!!!!!!R!!!
hhhhhWVUhhhhhhhhhhhhhhhhhhhhhhhUW***hhhh''+hhhhhhh*hhhhssssssssss!!!!!!S!!!!
hhhhhhhhWVhhhhhhhhhhhhhhhhhhhWVhhhhh*h''''*h.hhh**hhhhhsssssssss!!!!!!!!T!!!
hhhhhhhhhhUWVhhhhhhhhhhhhhWVUhhhhhhhh**'''U*****hhhhhhhssssssss!!!!---------
hhhhhhhhhhhhhUWVhhhhhVUWVUhhhhhhhhhhhh^'''Vhhhh.hhhhhhhssssssss!------------
hhhhhhhhhhhhhhhhUWVUWhhhhhhhhhhhhhhhhh*++Whhhhhhhhhhhhsssssssss!------------
Uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh**hhh*UVhUVhhhhhhhssssssss!!------------
hWVUhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh**hhhh*hhhWhhWhhhhhsssssssss!-------------
hhhhWVhhhhhhhhhhhhhhhhhhhhh**hh***hhhhh*hhhhhhhUhhhhhsssssssss!-------------
hhhhhhUhhUWhhhhhhhhhhhh****hh**hhhhhh**hhhhhhhhhVhUVWssWUssss!!-------------
*hhhhhhWVhhVUhhhhhh*hh*hhhhhhhhhhhhh*hhhhhUhhhhhhWhhsUVssVWUs!--------------
*hhhhhhhhhhhhWhhh**h**hhhhhhhhhhhhh*h*.hhhhVWhhhhhhsssssssssVW--------------
*hhhhhhhhhhhhVhh*hhhhhhhhhhhhhhhhh*hh*hhhhhhhUVWhhssssssssss!!--------------
h*hhhhhhhhhhhU**hWVhhhUWhhhhhhhhh*hhhh*hhhhhhhhhUVWsssssssss!---------------

Shluk apostrofů uprostřed značí samotný Jeruzalém a jeho nejbližší okolí, které není generováno automaticky, ale sestává ze samostatně naprogramovaných místností, a nejběžnější znak h v okolí města znamená onu typickou hornatou krajinu Judeje, jejíž místnosti pak mají stále stejný základní popis:

Jsi v suché krajině zvlněné pahorky a kopci, místy se zvedajícími do úctyhodné
výšky nad prolákliny a údolí. Na svazích, dílem porostlých tvrdou travou a
suchomilnými bylinami, vidíš tu a tam vystupovat okrovou horninu. Terasovité
vinice na svazích kopců a políčka v údolích svědčí o tom, že v této krajině
žijí a pracují lidé.

K tomuto popisu se pak — stejně jako u jeruzalémských exteriérů — automaticky doplňuje popis denní doby a počasí, a tu a tam narazíme na náhodně vygenerovanou rostlinu nebo zvíře. Když však místnost není nějakou dobu používána, pak se zase z operační paměti odstraní a v případě nové potřeby později zase automaticky vygeneruje, a zatímco předtím v ní třeba rostl yzop, nyní v ní roste třeba voňatka, nebo také vůbec nic.

Velké rozlohy automaticky generovaných krajin se mohou na první pohled zdát hráčsky nudné a nepotřebné. Mají však svůj smysl — jednak tím krajina přibližně odpovídá skutečnosti zobrazené v určitém měřítku, jednak se i každá jednotlivá místnosti dá jednotlivě využít k dalším akcím, tedy hráč si v ní například může zakopat poklad nebo koupit pozemek a založit pole či sad. Informace o takovýchto dodatečně do krajiny umístěných objektech se ukládají zvlášť a potřebné objekty (jako poklad nebo pole) se pak do místnosti přidají po jejím automatickém vygenerování.

S automaticky generovanými místnostmi se můžeme setkat i mimo volnou krajinu. Konkrétní podoba místností pak není uložena v mapě výše uvedeného typu, nýbrž je popsána buď mapě obdobným schématem, nebo se přímo vypočítává či odvozuje z polohy místnosti v rámci celku. Oblastí hry, která v současné době soustředí nejvíce takto generovaných místností mimo mapu, je středozemská Morie, jejíž nesmírně rozsáhlé systémy chodeb, schodiště o tisících stupních nebo podzemní jezera by bez automatických generátorů místností[6] dokázaly zaměstnat celou armádu programátorů na mnoho let.

Velká cesta[editovat]

Zatím jste jen poznávali svět kolem sebe a možná už byste sami rádi taky něco naprogramovali, alespoň něco malého. Pro to je tu cech zvaný Bratrstvo změny. Ten svým členům nabízí nástroje k programování na základní, pokročilé i mistrovské úrovni. Abyste je ale mohli začít využívat, potřebujete se nejdříve stát členem tohoto cechu (o tomto cechu a dalších hráčských společenstvích se více dozvíte v lekci 6). Velmistr cechu Ezechiel ben Barzel vás do něj rád přijme, stačí ho o to požádat. Má to ale jeden háček: mistr sídlí v calenhadské věži. A Calenhad leží v jiné doméně, ve Středozemi.

Calenhad je šestý majákový vrch mezi Gondorem a Rohanem, počítáno od Minas Tirith, hlavního města Gondoru. Po procházkách po Domě bude cesta na Calenhad opravdu Velká. V tomto kroku je popsána její část z Jeruzaléma až po přechod prahu z domény Oikúmené do domény Středozemě. Zbytek cesty ve Středozemi je uveden v následující lekci.

Skrz Jeruzalém[editovat]

Po přechodu přes první práh, vedoucí z Domu do domény Oikúmené, jste se ocitli v prostoru mezi pásy hradeb jeruzalémského chrámu, odkud se nedá jít jinam než na hlavní chrámové nádvoří. Jeruzalém je velké město, kde své služby nabízí mnoho řemeslníků. Jsou zde mj. také dva trhy, kde lze nakoupit potraviny, a vícero hospod. Proto se přímo nabízí nejprve se po Jeruzalémě trochu porozhlédnout.

Až si Jeruzalém dostatečně prohlédnete, resp. až uvidíte, že čas se vám krátí a vy chcete ještě někam dojít, opusťte město směrem na jihozápad Horní branou. K té se z chrámového nádvoří dostanete tak, že vyjdete z nádvoří jižní Koňskou branou, dáte se na západ, sejdete do Údolí, zabočíte na sever a vystoupáte k Velkému tržišti v Horním městě, odkud pak budete pokračovat ulicí na jihozápad. Druhou možností je vydat se u Koňské brány na jihozápad, projít Starým městem, v Mezibraní vyjít z města Hnojnou branou a poté projít pod hradbami údolím Hinnóm přímo na západ k Horní bráně.

Pokud jste již o něco zkušenější hráči a hledáte dobrodružství, pak se můžete před Horní branou případně rozhodnout využít práh, který vede ze skalního bludiště pod Jeruzalémem do opuštěných trpasličích dolů Morie, skrze něž se dále můžete dostat až na Calenhad. Tuto cestu však nebudeme podrobněji popisovat, protože hráči, kteří mají síly k jejímu zdolání, budou mít také dost zkušeností k tomu, aby ji našli. (Právě tak nepopisujeme alternativní úseky cesty pro hráče, kteří mají již vlastní jízdní, nebo dokonce létající zvíře, kteří se mohou plachtit na vlastní lodi atd.)

Ve společně popisované cestě se tedy nyní od Horní brány vydáme jihozápadním směrem k Pelusiu, nedaleko něhož se nachází práh spojující mokřadní krajinu nilské delty s mokřadní krajinou na hranicích Rohanu a Anórienu.

Přes Gazu do Pelusia[editovat]

Poté, co jsme stanuli na silnici před jeruzalémskou Horní branou, čeká nás nejdelší úsek celé cesty na Calenhad. Zvolíme cestu nejjednotvárnější, ale tím také nejrychlejší — půjdeme po římských silnicích nejprve do Gazy, a odtamtud dále do Pelusia. Na cestu počítejme 10 až 15 minut reálného času (podle toho, jak pohotově zvládneme zadávat světové strany podle popisu cesty a jak často se budeme rozhlížet po okolí). Pokud jsme to ještě neudělali, tak si nyní zcela určitě nastavme pohyb pomocí numerických kláves, bez toho bychom se na cestě motali zbytečně déle a nudili se více.

Vydejte se tedy po silnici na jihozápad. Cestou budete každou chvíli potkávat silniční milníky, které na některé hlavní tahy umístili Římané. Krom informací o stavbě ukazují hlavně odkud kam daná silnice vede a kolik římských mil již od jejího začátku uběhlo. Po přečtení textu na milníku příkazem čti nápis (nebo zkratkou c nápis) uvidíte nápis A HIEROSOLYMIS AD GAZAM (tedy „z Jeruzaléma do Gazy“) a údaj o dosud překonané vzdálenosti v mílích, zapsaný římskými číslicemi.

U milníku XXIX přijdete na rozcestí u Betgabry. Zamiřte na jih, vstupte do Betgabry Východní branou, projděte skrz tržnici a týn opusťte branou Západní. Pokračujte dále na jihozápad po silnici; poslední milník před Gazou má číslo LVI.

Silnice míjejí Gazu z východu, takže pokud si město nechcete zrovna prohlédnout, pokračujte na jihozápad po silnici do Pelusia. Cesta kopíruje pobřeží Středozemního moře, postupně se stáčí z jihozápadního směru k západnímu a je výrazně delší než trasa z Jeruzaléma do Gazy; Pelusium totiž leží až v severozápadním cípu Sinajského poloostrova, na východní hranici starověkého Egypta. Nápisy na milnících nyní hlásají A GAZA AD PELVSIVM („z Gazy do Pelusia“).

Poslední milník před branou Pelusia má číslo CXXXIV, ale už u milníku číslo CXXXIII narazíte na řeku. Pokud se chcete dostat na druhou stranu, buď využijte služeb Usiramana, místního převozníka (např. pomocí nastup do člunu a vystup z člunu), nebo řeku přeplavte. Pro přeplavávání ale jděte nejdříve oklikou k severu nebo jihu, protože v místech, kudy proplouvá přívoz, je řeka velmi zrádná: tamní silný proud vám dovolí se vrátit pouze tou cestou, kterou jste se do vody dostali.

Přes pelusijský práh[editovat]

Jakmile jste překonali řeku (ve skutečnosti tedy jen jedno z vícera ramen Nilu v deltě), můžete navštívit Pelusium, poměrně nudné, ale pro nákupy docela dobře zařízené posádkové město. Když následně vyjdete před pelusijskou Jižní bránu, stačí vydat se přesně na východ, a zanedlouho narazíte na rákosovou chatrč.[7]

Do chatrče vstupte pomocí vstup do chatrče. Až si dostatečně prohlédněte její vnitřní vybavení, vyjděte opět ven. Rozhlédněte se. Podívejte se na sebe, jak nyní vypadáte. Vítejte ve Středozemi.

Úkoly[editovat]

Povinné[editovat]

  • Překročte práh do Středozemě.

Dobrovolné[editovat]

  • Otrhejte plody z nějakého stromu. Ovocné stromy lze často nalézt např. na návsích vesniček rozesetých po krajině kolem Jeruzaléma.
  • Zkuste v Jeruzalémě objevit práh vedoucí zpátky do Domu.
  • Navštivte v Jeruzalémě alespoň jeden trh, dva řemeslníky či obchodníky a jednu hospodu. Vyzkoušejte si komunikaci s nehráčskými postavami, které tam potkáte. Prodejte jim něco nebo od nich nějaké zásoby či vybavení nakupte.

Pomocné stránky[editovat]

Poznámky[editovat]

  1. I soubory místností a dalších objektů Domu mají v počítači, na kterém Prahy běží, úplně jiné umístění než ostatní domény.
  2. I ve Stínadlech je ovšem možno zemřít, stejně jako se smrt vyskytuje i v knihách a komiksech o Rychlých šípech — vzpomeňme na Emila Hačiříka, Karla Dymoráka nebo Maxmiliána Drápa.
  3. Můžeme též zkusit pozorovat nebe a meteorologické úkazy na nebi viditelné. Později se k tomu vrátíme podrobněji.
  4. Někdy se může stát, že řádka o denní době a počasí úplně neladí s popisem místnosti, nebo dokonce že tato řádka sama ve svém složení z různých částí nepůsobí úplně koherentně. To pak není přímá chyba programátora dané místnosti, nýbrž chyba vzniklá tím, že programátor počasí nepromyslel některou kombinaci různých atmosférických jevů, nebo že programátor místnosti a programátor počasí nedostatečně sladili své představy, podle nichž vytvářeli popisy, a automaticky vygenerovaná řádka zrovna vyhmátla nějaký bod nesouladu. I takovouto chybu ovšem můžeme (a měli bychom) oznámit příkazem chyba, nejlépe chyba zde, protože programové moduly vytvářející počasí jakožto běžní smrtelníci nemáme jak označit.
  5. Kilometrové údaje souhlasí se skutečností, pokud měříme větší vzdálenosti, resp. třeba vzdálenosti středů měst. Jinak jsou ovšem jak lidská sídla, tak cesty mezi nimi zobrazeny přes míru, protože v kilometrové síti zabírá i nejmenší vesnice plochu 1 × 1 km, stejně jako cesty se skládají z pozemků 1 × 1 km. Souběžné cesty tedy vedle sebe nemohou vést blíže než ve dvoukilometrové mapové vzdálenosti, a některá města, která by se reálně vešla na plochu 1 × 1 km, musí mít v mapě průměr více kilometrů, pokud se v nich sbíhá více cest.
  6. Úplně přesně se takovýto automatický generátor místností jmenuje „virtuální kompilátor“. Zatím si můžeme toto označení uložit do paměti na později, protože v jednom z dalších kroků se k virtuálním kompilátorům vrátíme.
  7. Cestou od brány města k chatrči budete muset plavat přes jakousi řeku. Protože jste krátce předtím jakousi řeku překonali v opačném směru, napadne vás možná, jak to spolu souvisí, a zda by nešlo k chatrči vyrazit už dříve a ušetřit si tak dvojí setkání s vodním tokem. Prozkoumání této souvislosti však přenecháváme vaší objevitelské vášni.