Autorský roadblock

Můj ušlechtilý záměr programovat hru pro mobilní telefony nevyšel úplně jak jsem si představoval.

Uvědomil jsem si totiž, že ve skutečnosti mě mnohem víc baví psát příběhy, než tvořit mechanické systémy, ze kterých jsou hry v tradičním smyslu. Takže jsem hru zakonzervoval a pustil se naplno do další interaktivní povídky.

Nejprve mi to šlo vážně skvěle — za pár týdnů jsem napsal celou sadu retrospektivních dialogů, které ještě potřebují trochu doprogramovat, ale v zásadě jako hrubá kostra příběhu fungují přiměřeně dobře. Pak jsem se ale pustil do enviromentálních popisů a interakcí a zkusil jsem vytvářet nějaké puzzly a tak dále, a tady jsem krutě narazil.

Zaprvé mě nebaví to programovat. V Twine se celkově programuje dost špatně, i když použijete alternativní target (jako je třeba Sugarcube), přeskočíte makra a programujete přímo v Javascriptu. Twine je dobrý nástroj na choose your own adventure povídky bez složitější logiky, ale na psaní textové point and click hry je… neohrabané. Malinko jsem koketoval s myšlenkou napsat nějaký jednoduchý DSL v Ruby, který by dokázal generovat HTML a Javascript, ale byla by s tím spousta práce, udělat to pořádně, a není to něco čím bych se teď chtěl primárně zabývat.

A zadruhé: tvořit výplňové puzzly je… stupidní. Ve skutečnosti lidé nejsou jako McGyver a když narazí na zamčené ocelové dveře, jsou v háji bez ohledu na to kolik kuchyňských přístrojů a hygienických přípravků se náhodou povaluje kolem. Zamčené dveře jsou konec. A nemá cenu se snažit o realistické emoce a tak dále, když se na ně potom naroubují nějaké absurdní puzzly. Působí to disonantně (tady bych rád využil příležitosti zmínit, jak napřed jsou čeští herní recenzenti, kteří pojem ludonarativní disonance prozíravě nepoužívali ani v době, kdy to ještě bylo v kurzu). Je to asi stejně děsivé, jako když poslední Tomb Raider prokládá emočně vypjaté scény masovým vražděním všeho co se hýbe.

Všeobecně mám čím dál tím silnější dojem, že to, co považujeme v současné době za jádro videoher (myslím těch, které touží vyprávět nějaký příběh) je potřeba nějak přetransformovat a zbavit právě těch historicky zaběhnutých mechanických systémů. O kolik silněji na mě působí podívat se na playthrough Journey, kde je interakce záměrně omezena na absolutní minimum právě proto, aby nevznikal rozpor mezi narativní a herní složkou hry, než The Last of Us, které v cut scenes velkorozpočtově ždíme emoce a vysílá poselství, aby pak následovalo půl hodiny nudné a otravné akce. Protože akce musí být. (V tomto směru je naprosto fantastická hra Brothers – A Tale of Two Sons, která je sice na poměry filmu nebo literatury předvídatelná, ale v rámci videoher je to významný počin, který kombinuje mechanické hraní s enviromentalním vyprávěním asi nejlépe co jsem zatím viděl.)

Takže jsem nakonec zjistil, že to mi vlastně nezbývá než napsat něco mezi Gone Home, Dear Esther a The Walking Dead — takový malý textový walking simulator s nepříliš košatými dialogovými stromy.

Jsem teď zhruba v polovině celého procesu, takže počítám s ještě několika měsíci, než bude povídka hotová, ale ač pomalu, přece jen se posouvám kupředu. Teď, když už skoro vím, co vlastně chci napsat.

Dilema

Někdy je to prostě potřeba udělat. Myslím vykašlat se na to, co by člověk dělat měl a dělat to, co dělat chce. Zejména pokud jde o volný čas.

Takže co bych dělat měl, je programovat Lithium. Co dělat chci, je psát další interaktivní povídky. Dokonce to zašlo tak daleko, že jsem Twee plugin do svého fantastického editoru doplnil diagramovacím oknem, kde se mohu kochat strukturou povídky tak nějak vizuálně.

Chtělo by se mi říct, že nutkání dělat to, co bych měl, místo toho co chci (což je jistě svaté právo každého středostavovského obyvatele rozvinutých — nebo jen mírně zaostalých — zemí), pochází od mých zvrácených hodnot. Že jaksi chci být nechutně bohatý z nechutně vysokých prodejů hry na appstorech (99 centů za kus), a kašlu na to, že to, co napíšu možná přivede jednoho, nebo dokonce dva lidi k zamyšlení. Ale jako obvykle to není tak jednoduché.

Důvodů proč bych chtěl mít svůj malý krámek s hrami je několik a možnost přivydělat si není zdaleka na prvním místě (i když samozřejmě by se mi líbilo mít v záloze malý soukromý podnik, který by mě mohl uživit až mi bude kolem šedesáti, budu mít před sebou ještě tak patnáct let na trhu práce ale už mě nikdo nebude chtít zaměstnat, protože budu starý). Hlavní je, jako obvykle, prestiž. Vytasit na někoho mobilní telefon a ukázat mu blikající obrazovku a říct, “Hle, toto jsem stvořil”, je určitě víc kewl, než “Tady, můžeš dvě tři hodiny strávit čtením interaktivního existenciálního dramatu”, že ano.

Tahle prestiž, to je věc.

Problém je v tom, že jsem momentálně tak trochu ve stavu, kdy touha po prestiži je válcována touhou něco sdělit, a nejrychlejší způsob, jak v tomto směru selhat, je napsat interaktivní povídku.

Takže jsem naostřil textový editor, nakoupil čaje, naklikal playlist a pouštím se do toho.

Jen na částečný úvazek, samozřejmě, protože, dělat to, co člověk chce, místo toho, co by měl, je značně změkčilé.

Using Twine/twee without Python installation

Because it seems, that I’ll be writing another Twine/twee interactive fiction in not so distant future, I realized, that there is one thing I’m bothered about twee: I don’t like the act of installing Python and twee. While I have my scripts, this kind of integration of twee and Naracea is still sort of cumbersome. Thus I decided to do something about it.

And because twee is just couple of Python scripts, and I have IronPython integrated in Naracea already, I decided to try how these two things work together. And it seems they work just fine. What twee needs is Python standard library, which I didn’t include into my Python scripting plugin before, but adding support for it was matter of one or two hours.

And after couple tests, I’ve found out that twee indeed works with IronPython, and my test story is built properly.

Thus I took my scripts and converted them into plugin, which can be just unzipped to Naracea installation directory, and you get twee support nicely integrated directly into the editor without need to install either Python or twee itself.

Installed plugin adds two buttons to ribbon Document tab:

Build builds the story (and opens result in default browser), Tweenify sets up the document so it better fits twee coding needs (it mainly sets syntax highlighting and spellchecking based on current branch settings).

At this point the plugin is kind of rough, because I’m not sure whether someone else would find it useful, and for my needs it is good enough. However if you have any improvements requests or suggestions, let me know via Naracea issue tracker.

So if this sounds interesting, you can find the plugin and short installation instructions at Naracea’s plugin page (if you are using .zip package, see also PyScript section of the page for details on Python standard library installation).