snowatch/carbon/ep1

Jak se říká u nás na vsi: First things first.

Takže, repozitář s kódem hry je zde: https://bitbucket.org/jIRI/snowatch.

Repo má issue tracker, nevím nakolik je přístupný z venku (nepřihlášený uživatel, který není členem týmu), ale mělo by být lze v něm sledovat jak postupuji a tak dále.

Do souboru snowatch/doc/decision-log.md postupně doplňuji něco jako dokumentaci a decision log, ale jelikož jsem, jako obvykle, nejprve nachrlil velké množství kódu, než jsem ho začal dokumentovat, jde to pomalu (pokud by nastal naprosto nepravděpodobný případ, že by někdo chtěl použít snowatch k psaní vlastní hry — ne, to momentálně není dobrý nápad, možná až dokončím [carbon] a celá věc se víc usadí).

Teď trochu technicky. Repo obsahuje v zásadě dvě věci: zaprvé snowatch jako takový, což je framework/engine/whatever ve kterém bych chtěl napsat několik her, které mám tak nějak ve frontě, a zadruhé [carbon], což je kódové označení první hry, kterou za pomocí frameworku píšu. Celá věc vzniká asi tak dva a půl roku (závratným tempem maximálně čtyř hodin týdně), s tím, že jsem začal programovat v ES6, pak jsem (kvůli typové kontrole a dalším důvodům) přešel na Typescript, jako UI framework (a pro aplikační bootstrap a dependency injection) používám Aurelia (jakkoliv by neměl být problém použít cokoliv jiného, protože těch závislostí na Aurelii není moc), styly píšu v SASS a celé to builduje Webpack. Prostě klasická SPA jak se dneska píše…

Nicméně. Po několika pokusech s Twine, jsem došel k závěru, že chci psát hry, které jsou více system-based než CYOA (a třeba takový Drift byl ke konci hodně náročný na údržbu a jakékoliv změny). Proto jsem zvažoval, že bych použil některý z existujících nástrojů pro psaní interaktivních fikcí, ale takový, který by podporoval distribuci ve formě webové stránky, přitom nebyl převážně klikací a nepoužíval vlastní DSL (ke kterým jsem si několika bolestivými zkušenostmi vypěstoval odpor) jsem tehdy nenašel. (Současně s tím, v mé profesní kariéře v té době vzniklo období, kdy mé web-dev schopnosti spíše zaostávaly, takže jsem potřeboval něco, co by mělo udrženo v kondici.)

Proto jsem se rozhodl napsat si vlastní framework/engine, který bude sice spíše deklarativní (komponenty ve hře by měly mít v kódu nějaký konvencemi předdefinovaný tvar), ale současně mi nebude nic bránit vrazit kamkoliv nějakou tu ad hoc funkci, když to bude potřeba. Také jsem v té době experimentoval s různými druhy designu a chtěl jsem zkusit něco jiného, než je takový ten obvyklý typ aplikací co se píšou v korporacích, kde každý soutěží v tom, kolik přechytřelých návrhových vzorů do aplikace nacpe a tak podobně.

Proto snowatch vznikl jako jakýsi hybrid mezi lehce objektově orientovaným a mírně funkcionálním návrhem pospojovaný přes pub-sub sběrnici.

Tolik prozatím k technické stránce věci (i když mám ještě několik dalších technických poznámek, které tu časem utrousím).

Pokud jde o [carbon]: [carbon] je hra, kterou jsem už dvakrát začal psát v Unity, ale náročnost tvorby 3D hry je pro mě prostě příliš velká. Modelování a ladění jemných detailů 3D světa je něco, co je nad moje síly jak časově, tak jaksi řemeslně (je rozdíl mezi tím napsat si nějaký ten A* nebo zjednodušený raycaster pro textovou hru a učit se jak psát shadery pro grafickou kartu), takže jsem skončil u varianty, kdy většina hry bude v textu a části, kde to dává smysl, naimplementuji pomocí canvasu.

To ovšem neznamená, že bych chtěl psát hru stejně, jako jsem to dělal, blahé paměti, na začátku devadesátých let na Didaktiku Gama. Jak už jsem řekl, chci hru, která bude zaměřená spíše na systémy než na skriptované události, takže každý předmět ve hře je entita, která má různé atributy a může být manipulována za pomocí různých schopností. Pokud mám bednu a chci se postavit před ni, nebo na ni, potřebuji aby měla horní a přední povrch a pro postavu dovednost přesunout se do nějakého vztahu s takovým povrchem. Pak už je otázka hry, aby propojila ty dvě věci dohromady a nabídla mi co je k dispozici.

Podobně s kompozicí textu, který jde směrem k uživateli — pokud hra umožňuje přepínat pohlaví postavy, nechci psát texty dvakrát pro každý rod, ale je na hře, aby dala dohromady pokud možno gramaticky správnou verzi věty. (A, omluvte mou výslovnost, čeština je v tomto směru kurva nejhorší jazyk na světě.)

Takže toto je zhruba směr, kterým se hra bude vyvíjet — existuje nějaká abstraktní narativní linka, které se chci držet, ale jinak by hra měla být nelinární (ve smyslu, že existuje nějaký souhrn úkonů, které je potřeba provést, ale je jedno v jakém pořadí a za pomocí jakých nástrojů) a zaměřená více na interakce systémů než na vyprávění jako takové. Což je pro mě, vzhledem k mým předchozím angažmá v textových hrách, spíše novinka, takže uvidíme jak to celé dopadne.

Tolik zatím na úvod, následovat bude pravděpodobně popis dalších technických aspektů a více vulgárních nadávek na adresu našeho rodného jazyka.

Zůstaňte (dobře) naladěni.

snowatch/carbon

Takže.

Řekněme, že tak dva až tři roky pracuji na své další interaktivní fikci (nebo textové hře?) a že jsem se s vývojem dostal do stavu, kdy bych potřeboval nějakou tu zpětnou vazbu. Nebo něco v tom smyslu.

Takže dokončím první puzzle hry, trochu ho vyleštím a zveřejním.

Například tady: [carbon].

A pak budu dál pracovat na zbytku a doufat, že se k tomu někdo vyjádří.

Takže asi tak.

PS: Další informace, detaily, zdrojový kód a možná i dokumentace budou následovat, ale momentálně je pro mě kritické dojít alespoň do této úvodní fáze.

Stalo se

Ach.

Po takové době.

Nicméně.

Provedl jsem určitou reorganizaci svého internetového portfolia, spočívající zejména v tom, že jsem se rozhodl zbavit se domény naracea.com a přesměrovat všechny své aktivity sem.

Důvody jsou pořád stejné: udržovat více než jednu instalaci WordPressu není něco, co bych byl ochoten snášet, takže statické zálohy jak festivalu tak naracey skončily v podsložkách tohoto webu (viz položky Blog a Projects na boku). Jelikož mě takové věci nezajímají ani co by se za nehet vešlo, došel ve svém studiu nastavení redirekce jen k řádku “redirect 301 / http://adresa”. Nějaké hluboké přesměrování je daleko za hranicí toho, co jsem ochoten pro mumifikaci svých předchozích aktivit udělat, takže to bude muset stačit.

Co z toho jaksi implicitně plyne je, že naracea jako taková se přesouvá definitivně do stavu “abandoned”. Repozitář s posledním stavem projektu (tedy ve chvíli, kdy jsme se odvážně rozhodl celý editor refaktorovat a tak dále) je dostupný na bitbucketu. Musím říct, že to byl dobrý projekt, naučil jsme se na něm spoustu věcí a i když nakonec k ničemu nevedl, jsem rád, že jsem se mu těch pár let věnoval. Na psaní momentálně používám Atom, který (doplněný o nějaké pluginy) víceméně dělá co potřebuji (až na téměř neřešitelný problém klávesy AltGr).

Pokud jde o další projekty, tak momentálně věnuji úsilí rozvíjení svých pokusů s textovými hrami. Což v zásadě znamená, že v ES2015 programuji základ pro skutečnou (textovou) hru, nikoliv jen interaktivní povídku jako v případě Hrdiny nebo Driftu. V rámci širšího sociologického experimentu své programování občas (převážně v pátek a v sobotu v noci) streamuji přes Twitch.tv, a teď, kdy se mi snad podařilo nastavit správně OBS a vysílá se už i okno textového editoru, možná v budoucnu bude vidět i nějaký ten lítý souboj já vs moderní Javascript; určitě sem dám vědět až podobná chvíle nastane s příslušnými odkazy. Hlavním cílem streamování je zabránit mi v neustálém těkání mezi různými věcmi v době, kdy se opravdu upřímně rozhodnu, že budu něco dělat (jako se to děje například v tuto chvíli). A samozřejmě — sledovat někoho při programování je neuvěřitelně nudná a nezáživná aktivita.

Takže tak.

Post mortem: Drift

Mé interaktivní povídky, stejně jako programy, nejsou nikdy hotovy, jen opuštěny. A jelikož jsem někdy kolem Vánoc nabyl pocitu, že je po více než roce (nechce se mi to dohledávat přesně, ale 17. 10. 2013 zní jako rozumný odhad data, kdy jsem začal na své interaktivní druhotině nějak seriózněji pracovat) přišel čas Drift opustit, jsem se konečně rozhodl text jaksi veřejně publikovat. Dále následuje krátké zastavení nad tím, co Drift, je, jak vznikl a tak dále a tak podobně. Při první iteraci jsem se pokoušel dát textu ucelenou strukturu, ale bohužel se nějaké rozumné kategorizaci usilovně vzpíral, takže, bez dalšího otálení, následují převážně náhodné poznatky a poznámky, které cítím potřebu zaznamenat pro (především své vlastní) budoucí použití.

(A samozřejmě: Dále uvedené informace prozrazují větší část příběhu, takže pokud máte v úmyslu někdy Drift číst, doporučuji tak učinit než se pustíte do zbytku tohoto textu.)

Vodík

Vesmír je v principu cyklický, proto se to stalo podruhé: z jednoduchého příběhu o zbabělosti a slabosti (a o tom, jak je prakticky nemožné je překonat, pokud je člověk opravdový zbabělec), který jsem začal někdy v roce 2012 prototypovat v Unity3D jako 3rd person adventuru, opět vzniklo něco… jiného (při prvním pokusu zpracovat téma do interaktivní fikce se před časem vyvinul Hrdina). Nicméně jsem v době, kdy se ukázalo, že dokončit Zbabělce mi asi není souzeno, stejně jako už deset let více či méně usilovně myslím na Singularitu (simulační interaktivní fikce epických rozměrů), měl už nějakou práci hotovou, takže jsem se rozhodl zrecyklovat repozitář pro projekt a proto, poněkud nelogicky, je Hydrogen až po Heliu… ehm.

V každém případě jsem měl ještě dlouho po tom, co se příběh vyvinul do své současné podoby pocit, že je celé schéma… přitažené za vlasy. Pak jsem ale (značně náhodně) četl recenzi na The Act of Killing a mé pochybnosti se alespoň částečně rozptýlily: Ano, lidé jsou schopní udělat téměř cokoliv, aby si o sobě nemuseli myslet, že jsou špatní. A věci nikdy nejsou černobílé a zlo může vyrůst z nejlepších úmyslů. Což je asi tak v kostce co jsem chtěl sdělit.

Prostorové omezení

Základním problémem jakékoliv interaktivní formy zábavy, je jak dát konzumentovi iluzi svobody, ale při tom nenásilně omezit počet stupňů volnosti na nějakou rozumnou úroveň (optimálně na absolutní minimum), aniž by vnímal toto omezení negativně. Některé hry volí stereotypní prostředí (ostrov, vesmírnou stanici, podmořské město atp.), které umožňuje omezit herní prostor organicky, jiné za cenu mírného narušení pocitu vnoření do herního světa vytvářejí umělé překážky a neviditelné zdi, a ty opravdu brutální volí narušení čtvrté stěny a hovoří přímo k hráči/konzumentovi, pokud se pokusí opustit stanovenou herní plochu (např. Battlefield postavu zabije, pokud se nevrátí do vymezeného prostoru v časovém limitu).

Jelikož jsem se od začátku chtěl vyhnout promlouvání přímo k hráči, a situacím, kdy budu muset na obrazovku napsat něco jako “ještě není čas odtud odejít”, a protože vesmírná loď byla od začátku součástí konceptu, který jsem měl v úmyslu realizovat, problém s hranicemi simulace se vyřešil sám.

Můj původní plán zahrnoval pečlivě orchestrované postupování lodí stimulované nějakou uměle vytvořenou situací, která by nutila hráče/čtenáře jít tam kam potřebuji, abych byl s to servírovat retrospektivy (ano, odhalování hlavního příběhu při interakcích s předměty na lodi byla součástí textu od úplného začátku — ostatně vzpomínky jsem napsal v poměrně krátkém čase jako první). Pak jsem ovšem někdy během jara 2014 hrál Gone Home a nenásilný a plynulý způsob, jakým mě hra vedla a má schopnost seřadit různé fragmenty do souvislého příběhu mě přesvědčila, že bránit čtenáři ve volném přístupu ke kterékoliv části textu je kontraproduktivní. Naopak, nechronologické čtení a řazení fragmentů příběhu do správného pořadí, je podle mě lepší než jakýkoliv syntetický puzzle, který bych byl s to vytvořit.

Drift se tak z puzzle adventury v textové podobě změnil na explorativní interaktivní povídku, ve které zůstal prakticky jediný puzzle a velký pomník mého osobního selhání: zamčené dveře do strojovny.

Když jsem nad celou věcí teď znovu přemýšlel, pravděpodobně by bylo lepší se vyhnout tomuto klišé a použít ještě extrémnější in media res, a vstoupit do příběhu v okamžiku, kdy hlavní postava zamčené dveře odemkne. Nicméně jsem měl při psaní klasičtější představu, a už tak jsem se cítil velmi radikálně, protože mi přišlo, že na to, aby byl Drift hrou, toho v něm prostě není dost ke hraní, takže zbavit se zamčené strojovny mi přišlo absurdní.

Vedlejším efektem zamčených dveří pak byla potřeba navést čtenáře na správnou cestu, a dát mu nějaký impuls, který by jej pohnul směrem k opravě poškozené tiskárny a možnosti odemknout strojovnu. Jako příhodný MacGuffin mi nakonec posloužil enviromentální systém, ale protože jsem se chtěl vyhnout falešnému dramatu (“oprav to hned, nebo zemři”), text naznačuje, že opotřebení filtrů je velmi pomalá záležitost a že vlastně není kam spěchat.

Původně jsem měl v úmyslu být mnohem explicitnější pokud jde o prostorové rozložení lodi (součástí textu měla být interaktivní mapa), ale nakonec jsem došel k závěru, že prostor lodi je tak malý, že ještě více zdůrazňovat jeho strukturu není potřeba. Místo toho jsem se rozhodl použít jako vizuální vodítko (jak prostorové pro paluby, tak časové pro vzpomínky) lehce odlišné barevné odstíny pozadí textu.

Hlavní vs vedlejší linie

Drift měl původně končit jednou ze dvou hlavních linií: podstata vyhnanství je odhalena a buď čtenář usoudí, že hlavní postava už trpěla dost a vysvobodí ji, nebo jsou její činy morálně tak zvrácené, že si zaslouží zůstat uvězněná uprostřed prázdnoty navěky. Oboje je legitimní vyústění příběhu a moje neschopnost rozhodnout se který osud si hlavní hrdina zaslouží, je hlavním důvodem, proč je Drift interaktivní.

Nicméně se ukázalo, že s tím, jak jsem odstranil řízený postup textem (a lodí), nejsem v rozhodujícím okamžiku, kterým je otevření zásobníků paliva, s to zajistit, že čtenář četl všechny vzpomínky a že dějový zvrat dává smysl. Přemýšlel jsem, že bych do textu zapracoval více ukazatelů, které by indikovaly, že je příběh podivně nekonzistentní, což by čtenáře přimělo vrátit se k průzkumu lodi a nalezení všech vzpomínek (což je v současné implementaci nutná podmínka k otevření hlavních konců), ale nakonec se mi líbilo, že přibylo jedno další možné vyústění příběhu. Takže jediná nesrovnalost, na kterou ani není čtenář explicitně upozorněn, jsou prázdné podavače palivových článků. A v pokud se čtenář v tuto chvíli rozhodne provést zbytek explorace, mělo by být stále možné dojít k jednomu z “hlavních” konců.

Co vzniklo dodatečně, jsou vzpomínky po obratu, u nichž jsem pro největší efekt předpokládal čtení v opačném pořadí, a bohužel na nejméně dvou z nich je znát určitá obsahová bezradnost. Nicméně se domnívám, že se mi podařilo udržet hluchá místa na snesitelné délce a celkově vnímám poobratové vzpomínky pozitivně.

Show, don’t tell

Dlouhodobě se netajím tím, že za nejlepší literární dílo vůbec považuji Strugackých Piknik u cesty. (Je to už nějaký čas, co jsem ho četl naposledy, takže následující reflektuje jak si Piknik pamatuji a idealizuji; slibuji, že si ho letos přečtu znova, abych si byl jistý tím co tvrdím a všichni ostatní by měli učinit totéž.)

S postupujícím časem čím dál víc oceňuji u fikce stručnost a autorovu důvěru v mou inteligenci. (Proto se mi, mimo jiné, líbí třeba Cit slečny Smilly pro sníh a další Hoegovy knihy, protože mám pocit, že nemá pocit, že mi musí všechno servírovat až pod nos.) Snažil jsem se u Driftu o stejný přístup, což znamená, že jsem často psal spíš méně než více. A i tak jsem často škrtal.

Kdekoliv to šlo, snažil jsem se vyhnout obratům jako cítil jsem, pomyslel si, připadalo mi a tak dále a tak podobně. Všechny emoce (a to je můj názor na jakoukoliv fikci obecně) by měly být předávány bez otravného vysvětlování, jen za pomocí popisů toho, jak se postavy chovají a fyzicky projevují. Několikrát jsem se při psaní přistihl při narušení tohoto svatého principu a jakkoliv jsem se pokaždé snažil takový prohřešek odstranit, nejsem si zcela jist, že jsem toho vyškrtal dost.

On není vy (a už vůbec ne ty)

U Hrdiny jsem použil pro vyprávění třetí osobu jednotného čísla, protože je to opravdu čistokrevná povídka, u níž lze volit další směřování stejně jako u gamebooku. U Driftu jsem velmi krátce zvažoval v textových hrách klasickou druhou osobu jednotného čísla, protože postup textem není lineární a na první pohled by se mohlo zdát, že mluvit přímo ke čtenáři je rozumná volba. Ale použití druhé osoby je přesně ten druh narušení čtvrté stěny, který mě irituje a to řádově intenzivněji, když mi dílo tyká.

Domnívám se, že většina autorů interaktivní fikce (nebo textových her), nepřemýšlí nad tím proč oslovují hráče přímo, ale prostě používají co je jaksi standardem v žánru bez hlubšího porozumění, co takové použití druhé osoby implikuje.

Ve zásadě existují v interaktivních dílech čtyři přístupy k interakci s herními postavami:

  1. Postava je mlčenlivá prázdná nádoba, která interaguje se světem jen prostřednictvím přímých akcí. Nikdy nemluví, pouze naslouchá. Pokud dostane od herních postav úkol, nikdy ho nezpochybňuje. Tento přístup umožňuje hráči akceptovat postavu jako vyjádření sebe, protože postava nikdy nemá příležitost být osobou. Typickým zástupcem je Gordon Freeman v sérii Half-Life.
  2. Hráč vstupuje do definované postavy bez vlastní agendy (ta je dána postavou) v podobě jakéhosi ducha, který za určitých okolností řídí chování postavy, jindy je jen pozorovatelem vlastních projevů postavy. Toto schéma používají prakticky všechny FPS hry, které obsahují nějaké dialogy. Hráč řídí postavu během situací, kdy je potřeba podniknout nějakou akci, v situacích, kdy je postava účastníkem např. rozhovoru kontrolu ztrácí (na základě stejného principu některé hry omezují friendly fire).
  3. Hráč řídí postavu ve třetí osobě a má na výběr z voleb, které by postava byla s to provést v rámci svého povahového a morálního kontextu. Například v sérii Mass Effect vybíráme z nabízených dialogových stromů co by Shepardová mohla říct, ale nemáme možnost vystoupit z jejího celkového vzorce chování. Hranice jejího akčního repertoáru jsou pevně dané, náš vliv je čistě selektivní (jakkoliv si může otevřít či uzavřít některé volby akcemi, ke kterým ji ze své pozice našeptávače přimějeme).
  4. V podstatě jedinou situací, kdy postava přímo reflektuje hráče, je čistokrevná RPG, kdy hráč definuje postavu (její vzhled, pozadí, charakteristiky) stejně jako její chování během hry. Toto je jediná situace, kdy přímé oslovení hráče nenarušuje simulovanou iluzi, protože hráč sám sebe projektuje do herní postavy.

Takže: pokud netvoříme RPG, přímé oslovení hráče ve druhé osobě nejen že narušuje vnoření a pracně budované potlačení nedůvěry, ale především nedává vůbec žádný smysl. Jestliže postava kterou ovládáme, má jakoukoliv vlastní minulost a názory, pak není hráčem/čtenářem, a jestliže není naší přímou reprezentací v textu, pak nemá smysl hovořit ze hry k nám, hráčům, jako bychom byli postavou. A je důležité uvědomit si, že netextové hry nám simulovaný svět prezentují tak jak je, nepopisují ho slovy, a proto se k nám nemusí obracet. Stačí když vytvoří simulaci, ve které se můžeme pohybovat (ať už z první, nebo ze třetí osoby).

Pokud jde o mě, je použití druhé osoby žánrové klišé a překonaný anachronismus.

Což přináší zajímavou otázku: jestliže je Drift napsán v první osobě, jak jej interpretovat? Jelikož to není popis našich zážitků, ale sledujeme (a mírně ovlivňujeme) zážitky a volby herní postavy, co vlastně takový text je? V neinteraktivní literatuře je asi nejrozšířenější myšlenka za použitím první osoby deník, který hlavní postava píše nebo vypráví, pokud je použit minulý čas, nebo cosi jako telefonování, nebo popis situace slepému pozorovateli, pro případy, kdy je dílo v přítomném čase. (U textu ve třetí osobě jsme jako čtenáři mlčenlivými pozorovateli dění kolem s tím, že buď sledujeme jen hlavního hrdinu, nebo všechny postavy příběhu, a buď vnímáme jejich vnější projevy, nebo jsme s to sledovat i jejich dušení pochody.)

A to je pravděpodobně nejlepší interpretace Driftu: sledujeme deník hlavního hrdiny s tím, že interakcí vybíráme, ve kterém z alternativních vesmírů (ze všech možných, které text umožňuje sestavit) se nacházíme.

Agenda

Ano, pokud to chcete vědět, cítím se, svým malým, bezvýznamným způsobem, jako bojovník za rovná práva.

Technologie & Twine

Pokud přemýšlíte, že byste napsali interaktivní fikci v Twine (klasickém Twine 1.x, ne Twine 2.x), udělejte si laskavost a použijte SugarCube.

SugarCube obsahuje všechna makra, která by vám mohla chybět v klasickém Twine, CSS je v zásadě připravené pro použití na mobilních zařízeních (i když v případě Driftu jsem s CSS chvíli bojoval, protože jsem chtěl mít menu a hamburger v horní části obrazovky, na což není SugarCube tak úplně připraven). Pro Drift jsem SugarCube počeštil, pokud by někdo měl eminentní zájem, můžu upravenou verzi pushnout jako fork na svůj bitbucket.

Dělat na tomto místě reklamu mému editoru by bylo nevkusné, ale přes všechny nedostatky, kterými naracea trpí, je to pro psaní čehokoliv souvisejícího s Twine, solidní volba.

Pixelhunting

Vpodstatě celou dobu, co jsem na Driftu pracoval, jsem se nemohl rozhodnout, jestli použít pixelhunting nebo ne. Na jednu stranu mi přišlo, že je text příliš… jednoduchý, pokud jsou všechny odkazy viditelné, na druhou stranu je pak dosažení jednoho ze dvou hlavních konců prakticky otázka náhody. Nakonec jsem do textu zapracoval možnost volby režimu a po několika prvních připomínkách z testovací fáze jsem změnil výchozí nastavení z hra na povídka.

Došel jsem totiž k závěru, že nemá cenu plýtvat časem lidí, kteří ho mají už tak málo, a že pravděpodobnost, že bude někdo text procházet znova, aby odhalil nějaká tajemství, je téměř nulová.

Proto na režimy upozorňuji na úvodní stránce a je možné je kdykoliv mezi sebou přepínat.

There’s an app for that

Jako vždy na začátku projektu, jsem měl velké oči a chtěl jsem vytvořit verzi Driftu přímo pro mobilní zařízení. Dokonce jsem nainstaloval Cordovu (což je netriviální proces), a Drift zprovoznil jako aplikaci. Nicméně jsem zjistil, že výsledek je prakticky neodlišitelný od prostého čtení v prohlížeči. Jediný důvod proč mít Drift jako aplikaci byl pixelhunting (skryté odkazy se měly zobrazit po zatřesení telefonem/tabletem), který jsem ovšem ve výsledku potlačil, čili tvořit samostatnou aplikaci pozbylo smyslu.

Teoreticky je možné, že někdy v budoucnu Drift nějak zásadněji rozšířím a mobilní aplikace nakonec vznikne, ale jak víme, rozdíl mezi teorií a praxí je pouze teoretický. Takže si velké naděje nedělám.

Dialogy

Mé velké plány ohledně dialogového systému v Driftu vzaly za své v okamžiku, kdy bylo možné vzpomínky nacházet nechronologicky. To zcela rozbilo mou představu o tom, jak volby v předchozích dialozích budou ovlivňovat volby dále. Teoreticky by bylo možné podle nechronologického pořadí eliminovat to, co postavy řekly v kterémkoliv bodě textu, ale bylo by to tolik práce (jak po stránce obsahové, tak pokud jde o programování), že jsem nebyl s to se odhodlat k tomu něco takového realizovat. (Nicméně mě to přivedlo k myšlence někdy v budoucnu naprogramovat interaktivní dialogový systém, který by mohl podobný problém vyřešit.)

Telemetrie

Protože jsem se nikdy nedozvěděl, kolik lidí mělo trpělivost prozkoumat tu osudnou hromádku papírů v Hrdinovi čtyřikrát, rozhodl jsem se, že se v Driftu zbavím pochybností, a napsal superjednoduchou aplikaci na sběr dat ze čtení. Klientská část je jednoduché SugarCube makro, které POSTuje názvy passages, serverová část běží na neplacené Azure website (zdrojový kód je tady). Protože Azure nenabízí v neplacené variantě služby databázi, ukládají se data do SqLite databáze, což přináší určité nevýhody, ale na druhou stranu je to zadarmo, že ano.

V nejbližší době telemetrii doplním o nějaké jednoduché statistiky, zatím se můžete podívat na nezpracovaná data, pokud vás takové věci zajímají. Pokud se vám nechce probírat se daty osobně, můžu vám říct, že spousta lidí Drift začne, mizivé procento jej dokončí. Jeden z hlavních konců našel zatím jeden, nebo dva čtenáři.

Ne, nějaký ego trip se rozhodně nekoná.

Tečka

Celkově jsem především rád, že se mi podařilo Drift dokončit, což je skoro víc, než v co jsem doufal. Hlavní problém je v tom (jak už jsem tu pravděpodobně ventiloval), že psaní beletrie je pro mě řádově složitější než programování. Časy nutné k ponoření jsou delší, rušivé vlivy rušivější, pocit proboha, co za pitomce tohle napsal intenzivnější. Už teď, po měsíci, vidím na textu spoustu chyb a věcí, které bych udělal jinak, a obávám se, že časem to bude jen horší (asi jako jsem postupně přestal být schopen přečíst už jen první odstavec většiny povídek, které jsem kdysi napsal).

Nicméně. Zkuste si Drift přečíst. Uvidíte sami.

PS: Ještě jsem chtěl poděkovat všem umělcům, na jejichž dílech jsem při psaní parazitoval:

Hydrogen playlist

Drift

Jakkoliv bych mohl ještě nějaký čas předstírat, že na své druhé interaktivní povídce stále pracuji, nebyla by to pravda. Pokud jde o mne, je hotová.

Tady.

Tomb Raider

I když je to samozřejmě nefér, jsem v pokušení svést všechny ty potemnělé rebooty, restarty a origin stories (a různé kombinace výše uvedeného v jednom) na Nolanův film Batman Begins. Protože Nolan vzal skomírající (v případě Batmana spíš bezpečně mrtvou) frančízu a vystřihnul tři finančně nechutně úspěšné filmy, z nichž nejméně dva (podle mě tři, ale odborná veřejnost se s mým laickým názorem na Dark Knight Rises rozchází) byly současně i dobré.

To samozřejmě způsobilo nástup celých zástupů kopírovačů, kteří z balíku důvodů, proč jsou Nolanovi Batmani dobří, vybrali jen a pouze tu potemnělou estetiku a vrhli se na všechny ostatní série, kterým docházel, nebo už došel dech, takže posledních pár let jsme bohatě syceni filmy o temných počátcích nejrůznějších superhrdinů a jiných smyšlených popkulturních veličin.

Přitom je to asi to nejlínější, co se dá udělat. Ano, je to bezpečné, protože reboot zavedené série nejspíše finančně neskončí jako úplná katastrofa, ale na druhou stranu, místo pokusu o něco nového a originálního, dostaneme jen nastavovanou kaši o kterou se nikdo neprosil, ale všichni ji půjdou ochutnat, protože co kdyby se stal zázrak a nebyl to takový blivajz jako posledně.

Proto je mi ve vší své upřímné stupiditě Pacific Rim stokrát milejší, než všechny temné remaky, rebooty a příběhy o původu, kterými jsme posledních pár letech zásobováni.

Čímž se dostáváme k poslední instanci historicky významné hry Tomb Raider, kterou jsem právě (po nějakých 22 hodinách, při 82% využití obsahu — miluji tyhle statistické údaje, které aktivují mou obsesivní stránku) dohrál. A ano: je to temný reboot, origin story a změna z puzzle platformeru na střílečku v jednom.

Nejsmutnější na tom je, jak jsem celou dobu viděl cíl, jehož mělo být dosaženo, záměr za tím, proč je hra taková, jaká je: má to být příběh o tom, jak v sobě Lara objeví instinkty k přežití a stane se tou Larou Croft — silnou, sebevědomou, samostatnou. Takže neustále balancuje na hraně smrti, prodělává nějaké děsivé fyzické utrpení, ale současně nám má být předáno poselství, že takové přežití je občas morálně sporné, takže jsme svědky Lařina prvního zabití a ke konci hry nám arcipadouch nemilosrdně nastaví zrcadlo a vmete nám naše činy do tváře.

Achich ouvej.

Hlavní a zásadní problém je v tom, že si dnes velká studia se všemi těmi deseti a stamiliónovými rozpočty nedokáží představit, že by úspěch mohla mít jiná hra než střílečka. Jsem dalek od toho prohlašovat se za experta na sérii Tomb Raider, ale ta polovina Tomb Raider: Anniversary kterou jsem hrál, pokud si to správně pamatuji, obsahovala přesně nula zabitých lidí. Restartovaná Lara je vraždící psychopat, který nejen že střílí lidi z dálky (což by ještě bylo, vzhledem k okolnostem, akceptovatelné), ale může je také upalovat zápalnými šípy, naučit se nějaké ty speciální chvaty, kdy je ve zpomaleném záběru střelí do obličeje pistolí nebo brokovnicí, či ubije pažbou pušky. A protože nová Lara je opravdový survivor, nebrání se ani tomu trochu si ušpinit ruce a rozsekat někoho na kousky horolezeckým cepínem, když je to potřeba.

Ano, pokaždé, když mi ve sluchátkách nepříjemně věrohodně křičeli hořící lidé, nebo jsem někomu zarazil cepín do hlavy, myslel jsem na toho prvního mrtvého kolouška a jak jsme si u něj s Larou poplakali.

Hra se snaží ospravedlnit všechno to zabíjení několika úvodními scénami, kdy Laru postupně napadne několik vraždících psychopatů (převážně s ruským přízvukem, jak jinak) a zkusí ji upálit, rozčtvrtit a znásilnit, ale čím déle jsem hrál, tím neodbytnější jsem měl pocit, že zabíjím otce od rodin (ano, jistě nepřátelé jsou samí muži, zatímco přátelé jsou rasově a genderově vyvážení, včetně obligátního bílého blonďatého zrádce), kteří prostě jen měli smůlu. Ale narozdíl od SpecOps: The Line, kde vzbudit nepříjemný pocit z toho co dělám, je primárním záměrem hry, mě Tomb Raider odměňuje za brutalitu rychlejším přibýváním zkušeností, které můžu vyměňovat za přístup k ještě brutálnějšímu zabíjení.

Nechci vzbudit dojem, že mám problém s Larou Croft. Ne. Co jsem viděl z Uncharted ve mně vzbuzuje úplně stejné pocity, i když je postavou muž. Problém je v lidech, kteří hru vyvíjejí. Nevím kolik z toho, co je ve hře, bylo ve scénáři (zábavný faktoid: scénář psala Rhianna Pratchett, ano, je to dcera toho Pratchetta), ale byly chvíle, kdy jsem obracel oči v sloup a říkal si ano, takto si muži představují, že by se měly chovat silné ženy, stejně jako jsem si u videa z Uncharted říkal ano, takto si bílí hoši se vzděláním představují, že by se měli chovat drsní sympaťáci.

Takže. Takže zhruba od poloviny hry, když místo toho, abych někoho zachraňoval, jak by radil zdravý rozum, jsem běhal po ostrově a hledal hrobky, které bych vyplenil (nakonec hra se jmenuje Tomb Raider, že), nebo pátral po dalších nepovinných úkolech (protože takový už jsem, a nemůžu si pomoci), jsem myslel na to, jak by možná bylo zajímavější hrát docela jiný reboot. Takový, kde bychom řídili Lařino ztracené dvojče Larryho, který má nevyrovnaný vztah k matce a silné ženy v okolí mu pomáhají dospět a nalézt v sobě muže, který si bude vážit žen. Protože jestli něčeho máme dost, jsou to stupidní, vážně se tvářící střílečky bez vtipu, které se snaží vzbudit dojem, že obsahují silnou a emancipovanou ženskou protagonistku, kterou pak nechají celou dobu pobíhat v čím dál tím otrhanějším tílku s nezbytnými záběry na její dekolt shora.

Bohužel.

Snaha oprostit se od minulosti zdroje pro ulepené masturbační fantazie se nezdařila, a poslední Tomb Raider je tak dalším z mnoha zbytečných rebootů, které nepřinesly nic zajímavého.

Tak třeba příště? Ehm.

Zatmění

Korporace milují Eclipse. Je to přesně ten druh softwaru, kterému nedokáží odolat: důkladně architektovaná Java, rozšiřitelná, legitimizovaná všemi ostatními, kdo ji používají, distribuují a zvelebují. A přitom je všechno to potěšení zadarmo!

Ale: Eclipse nejzářnějším příkladem, toho, jak vývoj softwaru upadl do jakéhosi podivného stavu, kdy jsou náklady na vývoj minimalizovány za cenu brutálního nárůstu nákladů uživatelů. Místo toho, aby na moderním hardwaru běžely aplikace rychleji a rychleji… čekáme. Čekáme až se spustí, až provedou operaci, až se ukončí.

A co jsme udělali, když obědy zdarma skončily, a frekvence procesorů přestaly růst? Ó, ne, nechytili jsme se za nos a nezačali optimalizovat, zjednodušovat, zrychlovat. To by bylo… zpátečnické. Protože principem naší společnosti je růst. Dokud software a jeho nároky rostou, je svět v pořádku. Jakmile se začnou zmenšovat, je něco špatně.

A tak jsme začali růst jinak. Začali jsme přidávat jádra, paměť, a tak dále. To je správná cesta. V tom je to opravdové falické uspokojení.

A ano, i já jsem vinen. Lepil jsem na sebe jednu abstrakci za druhou a lebedil si, jak sofistikovaný jsem, jak krásně mi to… roste. Bez ohledu na to, že na banální aplikaci potřebuji gigabajt paměti a čtyři jádra procesoru.

Ale když se tak dívám na Eclipse, říkám si, že všechno má své meze. Že bychom se možná měli zastavit a zamyslet se nad tím, jestli něco neděláme špatně. Ne že bychom snad měli všechno zahodit a začít znova. To je delší a dražší cesta ke stejnému stavu v jakém jsme dnes.

Ale možná bychom si měli pokaždé, než přidáme další úroveň indirekce, zkusit spustit Eclipse, abychom věděli kam až věci mohou dojít.

…a mají plán

Prakticky jsem dopsal svou druhou interaktivní povídku (ještě čekám na nějaké nálezy od lidí, kteří snad čtou její současnou verzi, nicméně nepředpokládám, že bych dělal nějaké zásadnější změny v textu) a přemýšlím čím to je, že můj smělý plán zevrubně dokumentovat její vznik, se tak docela nevydařil.

Nejde jen o to, že dokumentovat tvorbu interaktivní povídky je obtížná záležitost (nevím co jsem si představoval — že budu publikovat screenshoty textového editoru?), ale především psaní beletrie je pro mě o tolik obtížnější, že když už se do toho pustím, má schopnost psát cokoliv dalšího je prakticky nulová. Psaní totiž (v mém případě a tak dále — samozřejmě mohou být lidé, kteří to mají úplně jinak) vyžaduje naprostou koncentraci po celou dobu psaní. Oproti tomu třeba programování je spíše cyklická záležitost: obtížná období tvorby se střídají s dosti rutinními úseky, kdy se vymyšlené implementuje.

A tak jsem psal a psal a editoval a pořád nebyla ta správná chvíle na nějaký ten blogísek (když pominu občasné erupce zoufalství nad tím, že mi to nejde). Nakonec to vypadá, že někdy kolem Vánoc tu povídku vystavím, napíšu krátké post mortem o tom, co všechno jsem chtěl udělat ale neudělal a proč, a volně se přesunu k dalšímu projektu.

Což bude další interaktivní povídka.

Ano.

Ale tentokrát ji hodlám vytvořit v RPG Makeru (který jsem si před časem koupil v rámci nějakého Humble Bundle i s celým obsáhlým balíkem assetů), a chtěl bych ji tentokrát opravdu pojmout spíš jako simulaci s co nejvolnější strukturou. A protože dneska každá hra musí mít v sobě zombies, budou i v mém dalším projektu. Jen se je místo zabíjení bude hráč snažit udržet… naživu? Jako osmiletá holčička. Asi.

Chci říct, že jelikož půjde především o grafický projekt, doufám, že budu s to generovat aktualizace nějak průběžněji. Ale to už jsem tvrdil tolikrát, že to stejně nemá žádnou váhu, že ano. Takže… uvidíme. Jako obvykle.

Beta test nové interaktivní fikce

Ehm.

Dopsal jsem další interaktivní fikci. Je to takové moralistické SF v Twine, hodně to připomíná point & click adventuru v textu, kombinovanou s Gone Home.

Kdyby se někdo chtěl podílet na jejím testování, napište mi e-mail na jiri @ tato doména.

Aspik

Intertnet je plný samodiagnostikovaných majitelů Aspergerova syndromu.

Samozřejmě nikomu nechci upírat právo na trochu té hypochondrie, ale nabyl jsem dojmu, že v drtivé většině případů jde o typický příklad záměny korelace s kauzalitou. Takový aspík (dočetl jsem se, že tak se tito jedinci označují mezi přáteli), si nastuduje jaké jsou projevy choroby, vyhledá své vlastní osobní problémy, namapuje je na vhodné syndromy a prohlásí se za nemocného. Úplně jako nějaké kouzlo.

Na rovinu: sociální interakce jsou složitý problém a to, že denně interagujeme s čím dál tím více lidmi to rozhodně neulehčuje. Máme dokonce Dunbarovo číslo, které říká, že jsme s to udržovat sociální vztahy s nějakými 150 jedinci, nicméně velká města, velké firmy, velké sociální sítě a širokospektrální komunikace nás tlačí k tomu, abychom toto číslo řádově překračovali. Pak možná není divu, že často a epicky tápeme jak se chovat k lidem, s nimiž se vidíme málo nebo nejsme v dostatečně intenzivním kontaktu.

Chci říct, že i když se opravdu snažím a věnuji úvahám o tom co a proč dělám v komunikaci s lidmi špatně, jsou chvíle, kdy plácnu nějakou tragickou hovadinu, která někomu může zranit city nebo ho rozrušit. Nicméně nikdy mě nenapadlo připisovat takové selhání tomu, že bych trpěl nějakou mozkovou poruchou, shodou okolností takovou, která by ze mě dělala tak sexy sekáče jako je Benedict Cumberbatch v Sherlockovi.

Čili možná, spíš než hledat zástupné důvody, proč nejsme s to dobře a citlivě komunikovat s ostatními, by bylo zajímavé začít pracovat na tom, abychom si tak nějak navzájem porozuměli.