Stíny Prahy: šest AI mozků, dva soupeřící týmy a cesta od kostek k herním postavám
Deset her, šest samostatných AI a skutečné ulice Prahy. Ve čtyřech duelech různých modelů pokaždé vyhrála silnější varianta. Jenže nejlepší policejní taktika byla přestat běhat. Co mě to naučilo o paměti, spolupráci, pravidlech i proměně kostek v herní postavy?

Výtvarná podoba postav Stínů Prahy.
„Jsem v Severní pasáži a doručuji druhou pečeť, vyhrajeme hru!“ hlásí Hugo.
Detektiv Viktor mezitím stojí u úplně jiného místa. Ví, že se protivníci objevili na severu. Dokonce to právě řekl svým kolegům. Přesto čeká u Sulické.
Stíny vítězí.
Tohle není napsaná závěrečná scéna. Obě věty vznikly v jednom z mých pokusů. Každá postava měla vlastní pozorování, zprávy od spoluhráčů, deník a svůj běh jazykového modelu. Hra potvrdila, kdo kam opravdu došel a co skutečně doručil. Celý experiment dělám jako jediný člověk. S programováním, grafikou a rozborem záznamů mi pomáhají AI asistenti.
A právě rozdíl mezi „vím, co se děje“ a „udělám podle toho správný krok“ je na tom zajímavý.
Nakonec jsem nechal odehrát deset AI her za přibližně 67 Kč v modelových voláních. Ve čtyřech zápasech různých modelů pokaždé vyhrála silnější varianta. Nejzajímavější policejní strategie však nebyla velkolepá honička. Bylo to rozhodnutí zůstat stát.
Druhá pečeť: patnáct sekund z jedné napínavé hry
Oskar prchá na východ. Nora se snaží odříznout Elu na jihu. Jenže druhá pečeť už je téměř v cíli. Z rozhodnutí v deváté hře jsem sestavil krátký thriller s českými replikami, hudbou a ruchy přímo z Klingu 4.
Stíny Prahy: Druhá pečeť. Filmová rekonstrukce tahů 11 až 15, se zkrácenými replikami ze záznamů. Otevřít video samostatně.
Nejdřív vznikly tři klíčové obrázky. Určily podobu postav, oblečení a světlo; z nich pak vycházelo video. Vidíte filmové zpracování skutečných herních rozhodnutí, nikoli záznam grafiky prototypu. Zvuk je původní součást videa, bez dodatečného dabingu.
Oskar: změnit směr, dokud je čas

„Nora je za mnou. Mířím na východ.“
V tazích 11 a 12 Oskar varuje spoluhráče a skutečně mění cestu přes park k východnímu východu. Tentokrát zpráva i pohyb vyprávějí stejný příběh.
Nora: správné varování ještě nezaručí zásah

„Ela utíká na jih. Odřízněte ji!“
Replika vychází z týmového varování ve 13. tahu. Policie hrozbu pojmenovala, ale Elu už včas nezastavila.
Ela: poslední krok patří jí

„Doručuji druhou pečeť. Vyhráváme.“
V 15. tahu engine potvrdil doručení i vítězství Stínů. Tady už nešlo o přání z deníku. Výsledek se opravdu stal.
Co se stane, když se AI přestane jen domlouvat a začne soupeřit?
V Městě duchů jsem poslal šest agentů do skutečných pražských ulic. Hledali úlomky paměti, předávali si informace a společně přivolávali úsvit.
Tentokrát jsem chtěl zkusit něco jiného. Dva týmy s opačnými cíli. Stejná čtvrť, ale jiný důvod vydat se ven.
Vznikly Stíny Prahy, další samostatný experiment rodiny Elements. Tři detektivové se snaží zastavit tři Stíny. Ti musí vyzvednout dvě ze tří herních pečetí a vynést je jednou ze čtyř únikových cest.
Nejde o skutečné banky ani o plánování vloupání. Pečetě, pravidla i příběh jsem navrhl s pomocí AI. Skutečné jsou podkladové cesty a půdorysy z OpenStreetMap v okolí Krče a Lhotky. Podoba fasád a další výprava jsou výtvarnou podobou města.
Ta čtvrť není náhodně vygenerovaná
Tady je stejné místo na skutečné mapě: Alšovy sady, Zálesí, Sulická, Na Větrově a okolí v pražské Lhotce a Krči. Hra přebírá z OpenStreetMap uliční síť a půdorysy budov. Proto lze podle zatáček, křižovatek a rozložení jednotlivých domů poznat, kde se postavy pohybují.
Pro příběhy jednotlivých her jsem připravil mapu všech dvanácti stanovišť. Vychází přímo ze souřadnic enginu a stejné uliční sítě jako hra. Sever je nahoře a měřítko umožňuje odhadnout vzdálenost mezi jednotlivými místy.

Zlaté značky jsou místa s pečetí, tyrkysové únikové východy a šedé další orientační body. Otevřít mapu ve velkém. Podklad a půdorysy: © přispěvatelé OpenStreetMap, ODbL. Stejná čtvrť na běžné mapě.
Když se v denících mluví o Alšových sadech (01), jde o stanoviště u pomníku Mikoláše Alše. Veverka (02) je pomníček padlého Václava Veverky. Sulická (03) označuje památník padlým ve druhé světové válce. Herní značky leží na nejbližších uzlech cesty, po které se agenti pohybují, nikoli přesně ve středu sochy nebo pamětní desky.
Západní, Východní a Severní pasáž a Jižní rozcestí jsou čtyři místa, kde lze pečeť odevzdat. Jejich jména, stejně jako Čítárna nebo Malé náměstí, jsou herní označení. Souřadnice a okolní ulice pocházejí z mapy, pojmenování úkolů je součástí mého scénáře.
Níže je herní podoba stejné čtvrti z šikmé kamery. Ulice a rozmístění domů mají skutečný mapový základ; podoba fasád, střešní detaily, osvětlení a herní stanoviště jsou výtvarnou stylizací. Není to fotografická rekonstrukce. Třeba „Čítárna“ je název herního bodu, nikoli ověřené označení instituce na té adrese.

Raná podoba herní mapy. V přehledu jsou postavy záměrně zvětšené, aby šly ve čtvrti najít.
Z mapy dolů na chodník
Takhle dnes vypadá stejná čtvrť přímo v prohlížeči. Pro nový záběr jsem zklidnil kameru a upravil denní světlo, aby bylo lépe vidět rozložení ulic, střech a domů. Půdorysy stále pocházejí ze skutečné mapy Prahy.

Nový snímek přímo z enginu. Podklad: © přispěvatelé OpenStreetMap, ODbL. Domy mají stylizované fasády a střechy.
A tady už mezi domy prochází Nora. Je to jedenáctisekundový záznam běžícího prototypu ve Full HD. Kamera ji sleduje zepředu a ze strany, takže jsou vidět jednotlivé kroky, pohyb rukou i stín na chodníku.
Nora na procházce. Technická ukázka ze stejného rendereru a stejného modelu jako hra. Trasu a kameru jsem pro natáčení nastavil předem; nešlo o další AI partii. Otevřít video samostatně.
Pod kapotou se každý snímek počítá z 3D scény. Three.js přes WebGPU vykresluje mapu, materiály a světlo, zatímco animovaná kostra deformuje model převedený z Blenderu. Chodník běží pod nohama proto, že se postava skutečně posouvá po scéně. Díky tomu se dá sledovat z jiné strany nebo zastavit uprostřed kroku. Samotné natáčení nepřidalo žádné placené volání modelu.
Šest lidí, šest samostatných rozhodnutí
Ve výchozím obsazení tvoří detektivní tým Ada, Viktor a Nora. Proti nim stojí Ela, Hugo a Oskar. V dalších testech si týmy také prohodí. V prvních šesti placených pokusech všichni používali Gemini 3.5 Flash Lite. Později jsem ve dvou dalších hrách dal jedné straně Gemini 3.8 Flash a potom modely mezi stranami prohodil. Nakonec jsem přidal ještě dvojici duelů Gemini 4 Argon proti Gemini 3.8 Flash. Výsledky najdete níže.
Model dostává své místo, stav, dostupné akce, zprávy kolegů a část vlastní minulosti. Nevidí soukromé deníky protivníků. Místní dohled má omezený dosah. Občas se objeví veřejná stopa, která prozradí oblast, kde se Stín nacházel.
Pak každý vrátí tři věci: akci, zprávu vlastnímu týmu a zápis do deníku. Engine připraví vstupy pro všechna rozhodnutí nad stejným stavem a až potom společně vyhodnotí výsledky. Rychlejší odpověď API tak nezískává náskok na ulici.
Za běžný tah lze ujít až 130 metrů, se žetonem na rychlý přesun až 221 metrů. Trasa vede po mapové síti, ne přímkou skrz domy. Když se detektiv dostane ke Stínu dostatečně blízko ve stejné části tahu, engine potvrdí zadržení. Tvrzení „chytil jsem ho“ samo nestačí.
Policie, která chtěla sama doručovat pečeti
První placené kolo přineslo docela komickou chybu. Někteří detektivové se snažili pečeti sami brát nebo doručovat. Jako by dobře pochopili část herního světa, ale zapomněli, za koho hrají.
Z 39 policejních rozhodnutí bylo 13 pokusů o tyto nepovolené akce. Hra je nepustila. Z pohledu uživatele by to ale vypadalo jako nešikovné postávání a zmatené řeči.
Připomnělo mi to Obinna z první řady Zrádců a jeho nepochopení pravidel při použití prvního štítu. Sám to později rozebíral v rozhovoru s Vojtou Kotkem, od 34:06. Ta podobnost je v herní situaci: člověk nebo agent něco zamýšlí, ale špatně si vyloží, co vlastně smí. U slabšího jazykového modelu s tím musím při návrhu hry zvlášť počítat. Pomoci může nejen lepší model, ale i lépe sestavený engine: jasná role, nabídka dostupných akcí a srozumitelná odpověď, proč daný krok nejde provést.
V další verzi dostal každý agent výrazněji vyjádřený vlastní cíl a seznam právě dostupných akcí. Detektiv četl, že pečeti nebere ani nedoručuje. Ve druhém pokusu se počet těchto chyb snížil na nulu z 18 policejních rozhodnutí.
To je užitečný výsledek, ale ne důkaz, že se model něco trvale naučil. Nezměnil jsem jeho váhy. Zlepšil jsem instrukce a rozhraní mezi modelem a hrou. A policejní tým pořád prohrál.
| První dva placené piloty | První pokus | Druhý pokus |
|---|---|---|
| Vítěz | Stíny | Stíny |
| Počet tahů | 21 | 13 |
| API odpovědi | 61 | 36 |
| Zadržení Stínů | 4 | 0 |
| Policejní pokusy brát či doručovat pečeti | 13 | 0 |
| Cena modelových volání | 1,74 Kč | 0,94 Kč |
Odstranit chybnou akci totiž není totéž jako vytvořit dobrou strategii.
„Pomůžu Adě.“ A najednou všichni běží stejným směrem
Viktor v druhém pokusu napsal:
„Jsem U vily, Stíny utekly nebo se pohybují dál. Přesouvám se k parku, abych pomohl Adě uzavřít prostor.“
Zní to rozumně. Jenže když několik lidí nezávisle vyhodnotí pomoc stejně, mohou se všichni rozběhnout za jednou starou stopou. Jinde zůstane volná cesta.
Podobný problém měl i tým Stínů. Hugo i Oskar v jednu chvíli tvrdili, že mají pečeť. Ve skutečnosti ji měl Hugo. Engine nedovolil vytvořit druhý kus jen tím, že o něm Oskar napsal do deníku.
Dobře znějící domluva ještě není spolupráce. Spolupráce se pozná podle toho, zda si tým rozdělí práci, reaguje na skutečné výsledky a nepřekáží si.
Tohle je také důvod, proč mě podobné malé světy baví. U běžného chatu můžeme uvěřit přesvědčivému vysvětlení. Ve hře se dá zkontrolovat, zda postava opravdu stojí u východu a nese správný předmět.
Paměť: co ví hra a co si jen myslí postava
Základ světa ukládám do strukturovaných souborů JSON. Patří sem polohy, nesené pečeti, zadržení, tým, čas, výsledky a účet za API. Průběh se zapisuje po jednotlivých událostech do JSONL, tedy souboru s jedním JSON záznamem na řádek.
Deníky jsou jiné. Je to text, který si vytvořila konkrétní postava, v tomto experimentu uložený také v JSON souboru. Není to automaticky pravda. Markdown by byl příjemný formát pro čtení, ale samotná přípona souboru paměť nezlepší.
Proto nová verze odděluje:
- Ověřené výsledky enginu: co postava skutečně provedla, co nese a zda je zadržena.
- Vlastní deník: její interpretaci, domněnky a úvahy.
- Týmové plány: co kolega zamýšlel v konkrétním tahu.
- Pozorování a stopy: co bylo vidět a jak stará informace je.
Když v deníku stojí „mám pečeť“, ale aktuální stav říká, že jsou ruce prázdné, přednost má stav hry. A když kolega před několika tahy slíbil hlídat sever, není to potvrzení, že tam pořád stojí.
Nejdřív obrázek, potom skutečné postavy
Tenhle původní výtvarný návrh určil náladu celé hry. Šest odlišných lidí, dvě strany a pražský večer. Vedle novějšího titulního obrázku ho chci zachovat: ukazuje, odkud jsem vyšel. Od hezké kresby k modelu, který se dá otáčet a animovat, ale vede další kus práce.

Původní výtvarný návrh. Následují skutečné fáze vývoje: geometrická figurka, síť a materiály v Blenderu a hotový model v prohlížeči.
Jak jsem s AI z kostek udělal lidi
Tady přišla nejpřímočařejší zpětná vazba celého vývoje: postavy byly ošklivé.
Původně vznikly v kódu z jednoduchých tvarů. S pomocí AI jsem přidal límce, kapsy, prsty, boty i účesy. Pro rychlé ověření fungování to stačilo. Pro detail obličeje už ne. Další malá kulička místo nosu ten problém nevyřeší.

Původní Nora. Funkční figurka pro první testy, ale slabý základ pro lidskou tvář.
Místo dalšího lepení primitiv jsem sáhl po Microsoft Rocketbox, knihovně hotových rigovaných lidských postav pod licencí MIT. Vybral jsem šest různých modelů a s pomocí AI je zpracoval v Blenderu. Základní geometrii a textury tedy AI nevytvořila od nuly. Moje práce s AI spočívá ve výběru, převodu, úpravě materiálů, napojení animací a zapojení do vlastní hry. Zdroj modelů a licence.

Ada, Viktor, Nora, Ela, Hugo a Oskar po převodu. Skutečný živý 3D náhled, ne překreslený screenshot.
Co se při takovém převodu musí udělat?
Nejdřív obličej. Místo několika hladkých tvarů dostane hra souvislou síť s tvarem tváří, víček, nosu a úst. Přes ni se natáhne textura kůže. Vlasy mají vlastní geometrii a průhledné části, se kterými musí renderer správně zacházet.

Stejná Nora v Blenderu: vlevo je vidět síť polygonů, vpravo model s texturami a světlem. Studijní render zdrojové postavy.
Potom materiály. Barva nestačí. Kůže, látka, vlasy a kov odrážejí světlo jinak. Normálové mapy přidávají drobné povrchové nerovnosti bez toho, aby každá vráska musela být samostatným polygonem. V této úpravě mají barevné textury rozlišení 1 024 × 1 024 a normálové mapy 512 × 512, aby zůstalo načítání v prohlížeči rozumné.
Pak kostra a pohyb. Rig je kostra, která říká, jak se má síť deformovat při ohnutí lokte nebo kroku. Nestačí přenést seznam natočení kostí z jednoho souboru do druhého. Při převodu bylo nutné srovnat orientace kostí a animaci převést do výsledné kostry. Jinak člověk zůstane v rozpažené póze nebo se začne kroutit.
Nakonec export do GLB a kontrola ve hře. GLB je praktické balení pro webové 3D: model, kostra, materiály, textury a animace mohou být v jednom souboru. V Blenderu přitom zůstávají editovatelné zdroje pro další úpravy.

Nora po změně. Tentokrát má skutečný model obličeje, texturu vlasů i látky. Podoba města je stále jednodušší než postavy.
Doplnil jsem také fotografie povrchů pro asfalt a část zdiva, mapy jejich nerovností a drsnosti, lavičky a jemnější oblohu. Materiály pocházejí z Poly Haven, kde jsou dostupné pod CC0. To ovšem neznamená, že z jednoduché mapy vznikla fotorealistická Praha. Na ulicích a domech je další práce dobře vidět.
A co Claude Code, Codex, WebGPU nebo ray tracing?
AI asistent je v tomhle užitečný jako programátor a pomocník při zpracování modelů. Umí připravit skript, který importuje šest postav, opraví odkazy na textury, nastaví materiály a vyexportuje je do stejného formátu. Může také hledat chyby v kostře a měřítku.
Blender má Python API, takže tuto práci lze opakovat a kontrolovat. Existuje i oficiální konektor pro Claude; jeho postup popisuje Claude Academy. V tomto převodu používám přímo skripty pro Blender, bez dalšího konektoru.
Hezčí obrázek ale nevznikne jen přidáním slova „WebGPU“. Potřebuji dobrý model, materiály, světla, kameru a rozumně zaplněné prostředí. WebGPU je způsob, jak prohlížeč pracuje s grafickou kartou. Samo o sobě nedá ray tracing, DLSS ani kvalitu velké hry s mnohaletým rozpočtem.
Pro můj experiment je podstatné, že nová postava není jen hezčí obrázek v kartičce. Stejný 3D model chodí po mapě, má vlastní portrét a lze si jej prohlédnout v samostatném ateliéru. V něm jde přepnout na detail konkrétního člověka a spustit chůzi.
Agenti sami ovšem tuto hezčí scénu nevidí. V těchto hrách rozhodují podle textového pozorování v JSON. Grafika pomáhá divákovi sledovat jejich příběh; případnou změnu rozhodování je potřeba hledat v pravidlech, vstupních informacích a samotných odpovědích modelu.
Lepší hra potřebuje lepší možnosti, nejen lepší hlavy
Současně jsem změnil pravidla a pozorování. Nová verze dovoluje upravit cíl i během dlouhé cesty. Přesměrování navazuje na nejbližší další uzel skutečné trasy, takže se hráč neteleportuje zpět na poslední stanoviště ani nezkracuje cestu skrz domy.
Detektivové dostali jednu společnou uzávěru východu za celou hru. Její vyhlášení stojí akci na místě. Nejdříve přijde varování a teprve v následujících dvou tazích nelze tímto východem doručovat. Uzávěra sama nikoho nechytá.
Stín může naopak jednou věnovat akci falešné oblasti své příští veřejné stopy. Zpráva přijde v běžném čase a nemá cedulku „tohle je podvod“. Přímý místní dohled tím ale oklamat nelze.
Vzniká tak několik skutečných voleb. Mám věnovat tah přípravě klamné stopy, nebo rychleji utíkat? Zavřít výhodnou cestu hned, nebo si jediný žeton nechat na závěr? Věřit starému hlášení, nebo hlídat místo, kde musí protivník nakonec projít?
Návrh prošel i nezávislou kritikou dalšího agenta. Ta upozornila například na to, že čtyři východy nejsou stejně výhodné. Od některých pečetí je jeden mnohem blíž než druhý. Také odhalila, že původní testovací semena jen prohazovala identity na stejných místech. Nově proto měním i skutečné rozmístění týmů.
Automatické testy kontrolují mimo jiné soukromí zpráv, délku pohybu, zadržení, zachování pečetí, začátek a konec uzávěry i rozdíl mezi deníkem a potvrzenou historií. Samostatné skriptované zkoušky ověřují, že hra může skončit vítězstvím obou stran. To ještě není důkaz, že stejně schopní AI hráči mají šanci přesně půl na půl.
Dvě výhry policie, dvě výhry Stínů. Jenže záleží kde
Novou verzi jsem pustil čtyřikrát. Dvě rozdílná počáteční rozmístění, každé jednou s původními a jednou s prohozenými týmy. Stejný model, stejné podmínky vítězství. Každé kolo začínalo s prázdným deníkem; žádný hráč nedostal vzpomínky z předchozího pokusu.
| Nové piloty | Rozmístění | Obsazení týmů | Vítěz | Tahů | API volání | Cena Kč |
|---|---|---|---|---|---|---|
| 3 | První | Výchozí | Detektivové | 11 | 66 | 2,20 |
| 4 | První | Prohozené | Detektivové | 5 | 30 | 0,89 |
| 5 | Druhé | Výchozí | Stíny | 7 | 40 | 1,23 |
| 6 | Druhé | Prohozené | Stíny | 7 | 42 | 1,31 |
Každá hra má svůj malý příběh
Pro čtenáře, kteří nechtějí procházet celé deníky, jsem vybral to podstatné z každého kola. Doručení a zadržení ověřuji podle enginu, ne podle toho, co si postavy myslely.
Hra 1: Policie honila vlastní vítězství. Jenže podle cizích pravidel. Nora chytila Huga už v prvním tahu a detektivové nakonec zaznamenali čtyři zadržení. Přesto vyhráli Stíny: Ela odevzdala první pečeť v tahu 9 a Oskar druhou v tahu 21. Policii zradilo pochopení role. Třináctkrát se pokusila pečeť sama vzít nebo doručit, přestože to smí jen soupeř. Viktor ještě v posledním tahu sliboval doručení pro policii, zatímco skutečný vítěz právě procházel západním východem. Záchyty fungovaly, společný plán nikoli.
Hra 2: Věděl, kde jsou. A čekal jinde. Po úpravě instrukcí už detektivové nezkoušeli brát cizí pečeti. Strategicky ale stále nestíhali. Ela doručila v tahu 12, Hugo v tahu 13 a policie nezadržela nikoho. Nejvýmluvnější byl Viktor: ve zprávě správně uvedl, že Stíny jsou v Severní pasáži, současně však zůstával u Sulické a čekal na jejich příchod. Informaci měl, změna plánu nepřišla. Stínům vyšlo postupné doručení; detektivům nepomohla ani opravená znalost pravidel. V závěru se objevily také neplatné JSON odpovědi, které engine nahradil čekáním.
Hra 3: Jeden detektiv, tři zadržení v jediném tahu. Ela donesla první pečeť do Severní pasáže v tahu 10. Hugo a Oskar ji doprovázeli a čekali tam s ní, místo aby mezitím zajistili druhou. O tah později přišel Viktor a engine potvrdil zadržení všech tří najednou. Detektivové vyhráli v tahu 11. Stíny zvládly jeden skutečný úkol, ale soustředění celého týmu kolem jediného úspěchu je připravilo o další šanci. Viktorův přesun byl tentokrát účinnější než všechna jejich ujišťování o spolupráci.
Hra 4: Nora problém pojmenovala. Náprava přišla pozdě. Po prohození týmů hráli za Stíny Ada, Viktor a Nora. Už ve druhém tahu Nora upozornila: „Všichni míříme do Alšových sadů, což je zbytečné hromadění.“ Všichni to v zásadě věděli, jenže změnu odkládali. Ada vzala první pečeť v tahu 4, Nora teprve tehdy přesměrovala cestu k Sulické. V tahu 5 Hugo chytil Adu, Oskar Viktora a Ela Noru. Vyhráli detektivové bez jediného doručení soupeře. Silný moment tohoto kola nebylo nevědomí, ale rozdíl mezi správnou diagnózou a včasným činem.
Hra 5: Jih a sever. Dvě pečeti současně. Ada zadržela Huga už ve druhém tahu, ale tím příběh Stínů neskončil. Ela odnesla pečeť z Alšových sadů na jih, Oskar tu od Sulické na sever. V tahu 7 oba skutečně doručili a vyhráli. Hugo se mezitím po propuštění vracel pro zbývající pečeť, jeho kolegové však už další pomoc nepotřebovali. Tady se rozdělení práce proměnilo ve výsledek: dvě různé pečeti, dva různé východy. Detektivové hlídali jiné části mapy a nedokázali obě doručení zastavit.
Hra 6: Nové tváře v rolích Stínů, stejný únik. Ve stejném rozmístění si postavy znovu prohodily strany. Ada a Nora donesly pečeti k jižnímu a severnímu východu a v tahu 7 je obě odevzdaly. Viktor vezl třetí pečeť na západ, takže tým pracoval i na další možnosti. Ela se jako detektiv vydala za Adou, ale včas ji nezastavila; Oskar nadále hlídal Alšovy sady, odkud už pečeť zmizela. Stíny vyhrály bez zadržení. Právě opakování výhry stejné strany po výměně postav mě upozornilo, že výchozí rozmístění může být důležitější než jméno hrdiny.
Výsledek 2:2 vypadá pěkně, ale podstatný detail je jinde. Na prvním rozmístění dvakrát vyhrála hlídka, na druhém dvakrát Stíny. Výměna postav vítěznou stranu nezměnila. Je to stopa pro další ladění startů a tras, nikoli důkaz dokonale vyvážené hry. Příčinu ze čtyř pokusů spolehlivě neurčíme.
Agenti během těchto kol šestnáctkrát změnili cíl už probíhající cesty. Nové možnosti uzávěry a falešné stopy ale nepoužili ani jednou. Přidat chytrou schopnost do pravidel zkrátka nestačí. Ještě musím ověřit, jestli model pozná situaci, kdy se vyplatí obětovat okamžitý pohyb za pozdější výhodu.
Co když jednomu týmu dáme silnější mozek?
Po šesti hrách přišel další nápad: jednou posílit detektivy a podruhé Stíny. Vybral jsem Gemini 3.8 Flash. Všichni tři hráči dané strany dostali tento model, protivníci zůstali na Gemini 3.5 Flash Lite.
Oba nové zápasy začaly na stejném druhém rozmístění se stejnými postavami, pravidly a prázdnými deníky. Instrukce se neměnily, rychlost odpovědi neovlivňovala pohyb. Oba modely měly stejný strop 4096 výstupních tokenů; Flash používal úroveň přemýšlení low, Lite minimal. Srovnáváme tato dvě konkrétní nastavení.
| Hra | Kdo měl Gemini 3.8 Flash | Vítěz | Tahů | Zadržení | Cena Kč |
|---|---|---|---|---|---|
| 7 | Detektivové | Detektivové | 28 | 9 | 10,50 |
| 8 | Stíny | Stíny | 7 | 1 | 2,11 |
Hra 7: Silnější hlídka našla způsob, jak soupeře vyčekat. Gemini 3.8 Flash řídil všechny tři detektivy, Lite všechny Stíny. Ela sice v tahu 7 doručila první pečeť, ale na druhou už tým nedosáhl. Detektivové si postupně rozdělili zbývající stanoviště: Nora hlídala Veverku, Viktor Sulickou a Ada pokrývala okolí. Engine zaznamenal devět zadržení a po 28 tazích vyhrála policie. Povedlo se hlídání konkrétních cílů, Stínům selhávala reakce na opakované záchyty. Ukázala se však i výhoda pravidel: stojící strážce může na pečeti rušit každý pokus o vyzvednutí. Čtyři neplatné JSON odpovědi Lite navíc skončily čekáním.
Hra 8: Silnější Stíny rozdělily práci hned na začátku. Tentokrát dostali Gemini 3.8 Flash Ela, Hugo a Oskar. Už v prvním tahu si rozebrali tři různá stanoviště: Ela Alšovy sady, Hugo Veverku a Oskar Sulickou. Ela potom mířila na jih, Oskar na sever. V tahu 7 oba doručili a vyhráli; ve stejném tahu Nora chytila Huga, ale na výsledek už to nestačilo. Rozdělení práce bylo vidět ve zprávách i skutečných trasách. Zrychlení oproti dřívějším Lite Stínům se ovšem nekonalo: ti na stejném rozmístění také vyhráli v sedmi tazích. Slabší detektivové navíc třikrát poslali neplatný JSON.
Viktor v posledním tahu sedmé hry hlásil:
„Stojím přímo na Sulické a nepouštím pečeť. Ela je v dosahu, Nora kryje Veverku. Poslední tah do vítězství!“
Jeho deník byl tentokrát v souladu s tím, co hra opravdu ukazovala: hlídal konkrétní pečeť a počítal s automatickým záchytem. Ve druhém srovnávacím pokusu zase Oskar už v prvním tahu napsal:
„Vyrážím pro pečeť u Sulické, potom ji vezmu na Severní pasáž. Hugo, ber Veverku nebo Alšovy sady. Ela ať zajistí Alšovy sady.“
Dvakrát vyhrála strana se silnějším modelem. To je zajímavý výsledek, nikoli změřená šance na vítězství. Samotné Lite Stíny už na stejném rozmístění také vyhrály v sedmi tazích. Největší změnu tedy vidíme u detektivů. Ani tam ale nelze z jediného pokusu určit příčinu: starší kontrolní hra měla nižší výstupní strop 900 tokenů a odpovědi modelů nejsou deterministické.
Do výsledku vstupuje i spolehlivost rozhraní. Lite v těchto dvou hrách poslalo 7 syntakticky neplatných JSON odpovědí z 89, Flash 0 ze 105. Někde přebývala závorka, jinde chyběla uvozovka. Engine takový tah nahradil čekáním. To patří do hodnocení použitelnosti agenta, ale není to totéž jako kvalita taktiky. Ani silnější model nebyl bezchybný: detektivové si v některých zprávách pletli, kdo nese pečeť.
Silnější model mi odhalil slabinu hry
Detektivové nemuseli vymyslet složitou lest. Postupně začali stát přímo na místech, kde ležely zbývající pečeti. Příchozí Stín byl automaticky zadržen a případně právě vzatý předmět se vrátil. Když už jedna pečeť zmizela, stačilo dobře pokrýt zbývající dvě.
Po skončení jsem tuto vlastnost ověřil i samostatnou neplacenou kontrolou na všech třech stanovištích. Hlídání pečetě je v současných pravidlech velmi silná obrana. Neznamená to, že se tam policie dostane včas z každého startu. Znamená to, že vyhrát tento zápas a být obecně lepší agent jsou dvě různé věci.
V příští verzi bych proto chtěl dát útočníkům skutečnou možnost takovou obranu narušit a pak zopakovat více zápasů s výměnou stran i startů. Pravidla jsem během těchto měření neupravoval. Uzávěru východu ani falešnou stopu modely nevyužily ani v jednom z nových pokusů.
Argon proti Flashi: vyhraje chytřejší model i po výměně stran?
Pak jsem šel ještě o stupeň výš. Gemini 4 Argon proti Gemini 3.8 Flash, jednou za Stíny a podruhé za detektivy. Každý model řídil všechny tři postavy svého týmu. Obě hry začínaly na stejném druhém rozmístění, s prázdnými deníky, nezměněnými pravidly a stejnými instrukcemi. Oběma modelům jsem nastavil přemýšlení low a strop 4096 výstupních tokenů. Ze záznamů jsem ověřil také skutečně vrácená označení modelů.
| Hra | Stíny | Detektivové | Vítěz | Tahů | Zadržení Stínů | Cena Kč |
|---|---|---|---|---|---|---|
| 9 | Gemini 4 Argon | Gemini 3.8 Flash | Stíny | 15 | 3 | 13,68 |
| 10 | Gemini 3.8 Flash | Gemini 4 Argon | Detektivové | 28 | 8 | 32,12 |
Hra 9: Dvě zadržení hned na začátku. A přesto návrat do hry. Ada chytila Elu a Nora Oskara už ve třetím tahu. Argon tedy nezačal dokonale. Oskar dokonce viděl Noru poblíž a přesto chybně odhadl, že tento tah ještě zadržen nebude. Hugo mezitím dokončil vlastní úkol: v osmém tahu doručil pečeť z Veverky na západ. Ela a Oskar se po propuštění vrátili pro zbývající dvě. Když se k Oskarovi znovu blížila Nora, zamířil přes park na východ. Ela pokračovala na jih a v patnáctém tahu doručila vítěznou pečeť. Policisté už ji nestihli dostihnout.
Oskar v jedenáctém tahu napsal:
„POZOR! Vidím Noru přímo u sebe na jihozápad od sulicka (pos [-87, 251])! Unikám s pečetí na východ přes park (2 tahy), pak zamířím na north nebo east podle toho, kam půjde Nora.“
Tohle nezůstalo jen větou. Záznam potvrzuje přesun k parku a v dalším tahu změnu cíle na východní východ. V deníku pak popsal vzdálenost Nory a důvod změny směru. Právě propojení zprávy, plánu a uskutečněného pohybu je zajímavější než samotné vítězství.
Hugo si také všiml, že hra vrací zadržené postavy k východu vzdálenému od detektivů, a využil to jako vodítko pro tým. V jeho zprávách se ovšem objevovalo příliš sebejisté „úplně bezpečný“. Místo návratu se vybírá už při zadržení a policie se mezitím pohybuje. Byla to užitečná indicie, nikoli záruka bezpečné cesty.
Hra 10: Nejbystřejší nápad byl přestat běhat. S Argonem za policii přišla jiná hra. Detektivové zaznamenali osm zadržení a od konce desátého tahu drželi tři různé pečeti: Ada Alšovy sady, Viktor Veverku a Nora Sulickou. Až do posledního tahu svá místa neopustili. Stíny s Flashem hledaly jinou cestu, několikrát měnily cíl, ale nedoručily ani jednu pečeť. Policie vyhrála vypršením času.
Nora svým kolegům v osmnáctém tahu připomínala:
„Ado, Viktore, ZŮSTAŇTE STÁT na ales a veverka (wait)! Dokud stojíme přímo na svých pečetích, nemohou vzít ani jedinou pečeť!“
Ada si v posledním tahu zapsala:
„Všechny tři pečeti jsou bezpečně na místě pod naším dohledem (já na ales, Nora na sulicka, Viktor na veverka). Zůstávám stát na místě (wait), vítězství je jisté.“
V tomto případě deník odpovídal skutečnému stavu. Chytřejší rozhodování tedy nemusí vyrobit více honiček. Někdy odhalí, že nejvýhodnější strategií je stát na místě. Pro autora hry je to důležitá zpráva: aby vznikala napínavější hra, potřebuji opravit i pravidla, která pasivní obranu tolik zvýhodňují.

Skutečný stav po 28. tahu. Stíny nedoručily žádnou pečeť. Vpravo Nora vysvětluje, proč už hlídku neopustí. Číslo tahu uvnitř jejího textu je vlastní zápis modelu; označení nad zápisem přidává engine.
Argon vyhrál oba směry tohoto malého srovnání. Za Stíny ukázal návrat k cíli po neúspěchu a reakci na blízkého protivníka; za policii důsledné rozdělení hlídání. Není ale bezchybný. V policejní hře jednou nevrátil použitelnou akci a engine za Noru vyčkal. Ze 123 odpovědí Argonu byla takto nepoužitelná jedna, u Flashe ze 113 žádná. Uzávěru ani falešnou stopu nevyužil nikdo.
Dvě výhry jsou slibné pozorování, ne změřená obecná převaha. Stále jde o jediné rozmístění a jednu hru v každém směru. Zvlášť policejní výhra ukazuje také slabinu pravidel. Další smysluplný test proto potřebuje více opakování, různé starty a možnost narušit trvalé hlídání pečetí. Automaticky lepší příběh samotná výměna modelu nezaručí.
Co mi těch deset her skutečně ukázalo
Když to vezmu lidsky: s lepšími modely jsem častěji viděl, že postavy použijí to, co už vědí. Nestačilo jim napsat pěknou zprávu. Rozdělily si stanoviště, po zadržení se vrátily k úkolu nebo změnily cestu před protivníkem. Zároveň jsem zjistil, kolik problémů jsem jim sám připravil špatným rozhraním a pravidly.
| Pozorování | Co se skutečně stalo | Co z toho zatím neplyne |
|---|---|---|
| Oprava instrukcí pomohla i levnému modelu | Policejní pokusy vzít nebo doručit pečeť klesly z 13 v prvním pilotu na 0 ve druhém | Že se model trvale přeučil nebo začal dobře taktizovat |
| Flash uspěl proti Lite na obou stranách | Ve hrách 7 a 8 vyhrál tým s Flashem | Že znám jeho pravděpodobnost výhry na jiné mapě |
| Argon uspěl proti Flashi na obou stranách | Ve hrách 9 a 10 vyhrál tým s Argonem | Že dva zápasy izolují obecnou inteligenci modelu |
| Silnější model nemusí hrát akčněji | Argon jako policie od tahu 10 držel všechny tři pečeti | Že více pohybu, delší deník nebo více slov znamená lepší hru |
| Nabídnout schopnost nestačí | V osmi hrách pravidel v3 nikdo nepoužil uzávěru ani falešnou stopu | Že je modely neumějí používat; možná se v těchto situacích nevyplatily |
| Použití nástroje není totéž co získání znalosti | Nora dostala výzkumný žeton za nalezený článek bez ověření vztahu k místu | Že se dozvěděla něco správného o daném památníku |
Ve čtyřech zápasech různých modelů tedy vyhrála silnější varianta čtyřikrát. Všechny ale používaly jedno rozmístění, některé stejné taktické výhody a jen jedno opakování každého směru. Je to motivace pokračovat, ne poctivý podklad pro tvrzení „lepší model má stoprocentní úspěšnost“. Ani celkové skóre pravidel v3, čtyři výhry policie a čtyři Stínů, samo nedokazuje vyvážení.
Nejvíc jsem se během vývoje naučil já. Modelům jsem nepřeučoval váhy a mezi placenými koly jsem jim nepřenášel deníky. V rámci jedné hry mohly využívat nové zprávy a zkušenosti; mezi verzemi se měnily moje instrukce, paměťové rozhraní a pravidla. To jsou různé druhy zlepšení a stojí za to je rozlišovat.
Pod kapotou pro ty, kteří si to chtějí postavit
Rozhodovací smyčka má čtyři kroky: pozorování → odpověď modelu → kontrola a výpočet enginu → zápis výsledku. Grafika pouze ukáže, co se stalo.
Co agent dostane. Strukturované pozorování obsahuje vlastní tým a cíl, aktuální polohu, nesený předmět, dostupné akce, veřejný stav pečetí, známé stopy a odhady délky cesty k herním bodům. Polohy, cíle a nesené předměty spoluhráčů sdílí přímo engine. Týmové zprávy fungují jako společná vysílačka bez omezení vzdáleností. Protivníkovi se neposílají. Soupeřovy přesné údaje agent dostává jen v místním dohledu, vedle toho má starší zprávy o jeho oblasti.
To je podstatné i pro interpretaci spolupráce: hráči si museli domluvit záměr a rozdělit úkoly, ale polohu spoluhráče nemuseli vyčíst z rozhovoru. Stejně tak sami neřešili každý metr navigace. Vybrali cíl a trasu po uliční síti spočítal engine. V těchto hrách modely nevidí screenshoty ani nepoznávají obličeje. Působivější výprava mění zážitek diváka, ne jejich vstupní informace.
Jak vypadá odpověď. Zjednodušený příklad formátu, nikoli citace konkrétního tahu:
{
"action": { "type": "move", "target": "east" },
"message": "Měním cestu na východ, na severu je hlídka.",
"diary": "Sever je rizikový. Zkusím jiný východ."
}
action je požadavek, nikoli hotová skutečnost. Engine ověří, že ho daná postava smí použít, vypočítá pohyb a případný záchyt. message dostanou spoluhráči, diary se uloží dané postavě. Pokud odpověď nejde přečíst, postava tento tah vyčká. Pohyb po už zvolené trase přitom při wait pokračuje, takže počet těchto akcí nelze automaticky číst jako počet promarněných tahů.
Kolik paměti se vrací do promptu. Do dalšího volání posílá engine posledních šest vlastních deníkových zápisů, dvanáct přijatých týmových zpráv, osm potvrzených výsledků enginu a nejvýše tři poslední rešerše. Na disku zůstávají celé deníky i průběžný JSONL záznam. Zatím tu není vektorová databáze, znalostní graf ani automatické vybavování staré důležité vzpomínky. Proto má další vývoj paměti jasný smysl.
Jak engine zabrání závodu rychlosti API. Na začátku tahu engine vytvoří neměnná pozorování pro všechny právě hrající postavy. Odpovědi běží souběžně, ale svět se posune až po jejich dokončení. Pomalejší model tím nedostává méně herního času. Seed určuje rozmístění, ne náhodnost odpovědí jazykového modelu. I stejný start proto může při opakování dopadnout jinak.
Kde mě zradila odměna za rešerši. Agent u památníku může zadat vlastní dotaz na Wikipedii. Nástroj mu vrátí nejvýše tři názvy článků, odkazy a krátké úryvky. V desáté hře Nora nejprve neuspěla s dotazem „Sulická“, potom zkusila „Vladimír Mandl“ a získala žeton pro rychlý přesun nebo přesnější stopu. Engine totiž kontroloval jen to, zda vyhledávání něco našlo. Souvislost nalezeného článku s místním památníkem neověřoval.
Nora si do deníku zapsala: „Získala jsem 1 intel za výzkum Vladimír Mandl na sulicka.“ Žeton skutečně dostala, ale správný poznatek o místě tím prokázán není. Nepřipisuji jí úmysl podvádět. Stačí si přiznat, že jsem odměnil příliš snadno splnitelnou podmínku. V další verzi by měla předložit konkrétní tvrzení o místě, zdroj a oporu v něm. Počet vyhledávání není dobré měřítko znalostí.
Co se dá zpětně ověřit. Každý běh má protokol, kopii tehdejších zdrojů, požadavky, odpovědi, ceny, fotografie a deníky. U dvojice s Argonem jsem porovnal otisky herního kódu, počátečních stavů i systémových instrukcí. Před spuštěním prošlo 31 automatických testů, mimo jiné soukromí, souběhu, pohybu, zadržení a správného účtování různých modelů. To z malého pokusu neudělá velkou vědeckou studii, ale dovolí mi odlišit zajímavou historku od toho, co se opravdu odehrálo.
Kolik mě stojí takový svět?
Všech deset her mě vyšlo přibližně na 67 Kč za volání modelů. Proběhlo celkem 705 odpovědí. To je cena rozhodování postav v těchto pokusech, nikoli celého vývoje hry.
| Část experimentu | Počet her | Modelová volání | Přibližná cena |
|---|---|---|---|
| Původní pokusy pouze s Gemini 3.5 Flash Lite | 6 | 275 | 8,31 Kč |
| Gemini 3.8 Flash proti Lite, výměna stran | 2 | 194 | 12,61 Kč |
| Gemini 4 Argon proti Gemini 3.8 Flash, výměna stran | 2 | 236 | 45,80 Kč |
| Celkem | 10 | 705 | 66,72 Kč |
V poslední dvojici duelů připadlo přibližně 35,93 Kč na Argon a 9,87 Kč na Flash. U předchozí dvojice Flash proti Lite to bylo 9,37 Kč za Flash a 3,24 Kč za Lite. Delší policejní hra s Argonem přirozeně potřebovala více rozhodnutí než patnáctitahový útěk, takže samotná cena celého kola není měřítkem efektivity jednoho modelu.
Částky počítám z tokenů, které vrátilo API, a oficiálního ceníku Gemini. Pro Argon platí při tomto pokusu úvodní cena popsaná v dokumentaci modelu. Do korun převádím kurzem ČNB z 27. října 2026, tedy 21,834 Kč za dolar. Jde o orientační přepočet, ne fakturu ani přesný kurz na platební kartě.
Všech deset kol je dokončených, další dotazy neběží a nevyúčtované rezervy jsou nulové. Ve čtyřech původních hrách verze 3 vzniklo 35 snímků, ve dvojici Flash proti Lite dalších 17 a při duelech s Argonem dalších 23. Ke každé postavě zůstává vlastní deník.
Pro celou kampaň držím společný strop přibližně 437 Kč. Před požadavkem se část rozpočtu rezervuje. Pokud by se odpověď ztratila nebo chybělo vyúčtování, nejistá částka se nepovažuje automaticky za nulu.
Cena modelových volání nezahrnuje práci na vývoji, provoz počítače ani výtvarné návrhy. Vybrané modely postav a povrchové materiály byly volně dostupné.
A kdyby jednou vypadala jako velká hra?
Představuji si podzimní podvečer v téhle čtvrti. Na mokrém asfaltu se odráží světlo oken. Hugo se zastaví u plotu, v ruce obrací pečeť a sleduje Elu na druhé straně ulice. Ona mu nenápadně naznačí, že průchod je volný. Za rohem se právě rozhoduje Nora: půjde za čerstvou stopou, nebo zůstane u místa, kam musí někdo z protivníků přijít?

Výtvarná vize další verze. Takovou atmosféru bych chtěl postupně přiblížit skutečně hratelné pražské čtvrti.
Tohle je směr, kterým se chci vydat. Obrázek ukazuje zamýšlenou atmosféru; současný renderer ani přesnou podobu zdejších domů nedokumentuje. Zajímá mě přitom stejně tak výraz Hugovy tváře jako důvod, proč se rozhodl právě tady zastavit.
Nejdřív jedna přesvědčivá ulice
Začal bych krátkým úsekem mezi dvěma herními stanovišti. Domy by dostaly skutečné proporce, vstupy, ploty, zahrady a různé materiály. Postavy lepší pokožku, oči, vlasy a hlavně přirozené přechody mezi chůzí, otočením a gestem. Kvalitu tváře totiž rychle zničí strnulý pohled nebo nohy klouzající po chodníku. V Blenderu se dá připravit geometrie i animace; potom musí stejná scéna obstát přímo ve hře a na běžném počítači.
Pro náročnější samostatnou verzi by dával smysl Unreal Engine. Jeho Lumen řeší dynamické nepřímé osvětlení a odrazy. Herní pravidla a AI mohou zůstat na serveru hry, zatímco jiný klient vykreslí jejich výsledky. Je to návrh dalšího směru, ne funkce, kterou už má můj webový prototyp.
Zajímavou cestu k zachycení skutečného místa ukazuje také výzkum 3D Gaussian Splatting z roku 2023: z fotografií vytváří reprezentaci scény pro pohledy z nových míst. Mně by mohl pomoci s věrnou výpravou vybraného zákoutí. Samotný krásný prostor ale ještě nedává postavám průchodné dveře, kolize a pravidla pohybu. Ty bych musel doplnit a ověřit zvlášť.
Lepší paměť než posledních šest zápisů
Dnes agent dostává jen výběr nedávných zpráv a deníku. Staré důležité zjištění se tak může ztratit. Ve studii Generative Agents z roku 2023 výzkumníci spojili záznamy zkušeností, vybavování relevantních vzpomínek, reflexi a plánování. V jejich malém světě se objevovalo i koordinované společenské chování.
Pro Stíny Prahy bych si z toho vzal konkrétní změnu: před rozhodnutím připomenout situace podobné té současné. Například že stejný průchod už dvakrát skončil zadržením. Každá vzpomínka by nesla čas, zdroj a odkaz na výsledek enginu. Modelův dojem „tudy to půjde“ by zůstal oddělený od potvrzeného „tudy jsem opravdu prošel“.
Umět dokončit plán a poznat, kdy ho opustit
Voyager pracoval v Minecraftu s knihovnou znovu použitelných dovedností a zpětnou vazbou z prostředí. Nemusel pokaždé sestavovat celé chování od nuly. Nešlo přitom o průběžné přeučování vah jazykového modelu.
V této hře by podobná myšlenka mohla znamenat ověřený postup „vyzvedni pečeť a odnes ji volným východem“. Jazykový model by vybíral cíl a reagoval na změny, engine by spolehlivě prováděl jednotlivé povolené kroky. Součástí postupu musí být i důvod k přerušení: objevil se detektiv, kolega už předmět vzal, nebo přestal být průchod volný. Jinak bych jen zautomatizoval opakování stejné chyby.
Domluva, která se promění v činy
Projekt CICERO pro hru Diplomacy propojil jazykový model s plánováním a odhadem jednání ostatních hráčů. Výkon nevznikl pouhým přidáním delšího chatu. Rozhovor byl propojený s konkrétním plánem.
Herní týmy by proto mohly vedle volných zpráv uzavírat jednoduché dohody: kdo hlídá které místo, do kdy, kdo to potvrdil a co uděláme při zadržení. Když Nora přijme sever, Ada už se tam nemusí vydat „pomoci“ bez dalšího důvodu. A po třech tazích bez zprávy musí tým vědět, že původní slib mohl přestat platit.
Jak poznám, že jsem se opravdu posunul?
Melting Pot od DeepMind testuje agenty v různých situacích spolupráce i soupeření a s různými spoluhráči. Je to prostředí pro výzkum víceagentního posilovaného učení, ne hotový benchmark mého prototypu. Jeho důraz na různorodé sociální situace je ale dobrá inspirace pro další měření.
Nestačilo by přidat hezčí obličej a ukázat jednu vítěznou hru. Potřebuji více startů, výměny stran, opakování a stejné podmínky. Vedle vítězství bych sledoval zbytečné cesty, opakované chyby, splněné dohody, využité informace a cenu za dokončený cíl. Také bych nejdřív opravil příliš výhodné hlídání pečetí a teprve potom znovu měřil modely.
Můj nejbližší cíl je proto docela konkrétní: jedna krásná ulice, spolehlivá paměť a tým, jehož domluva mění to, co skutečně udělá. Z takového základu už může vzniknout mnohem zajímavější svět.
Jedna čtvrť, víc možných příběhů
Stíny Prahy jsou teď hratelným taktickým prototypem. Vedle nich připravuji dvě další podoby stejného nápadu.
Pražské panství by bylo historické dobrodružství s poslem, písařkou, kovářem, cechy, pověstí a zmizelou listinou. Inspirace typem zážitku z Kingdom Come, ale s vlastním příběhem. Dnešní mapu nelze jednoduše prohlásit za středověkou. Pro dobovou zástavbu bychom potřebovali další podklady.
Republika ve stínu by se odehrávala ve fiktivním československém noiru. Reportérka, informátoři, vyšetřovatel, řidič a soupeřící gangy. Místo pečetí dohody, svědectví a zásilky, u kterých záleží na tom, komu je svěříte.
Obě jsou zatím návrhy. Nechci vyrobit deset hezkých kulis, ve kterých se nikdo nerozhoduje zajímavě. Chci nejdřív jednu čtvrť, v níž bude mít cenu zůstat na místě, změnit plán, věřit kolegovi nebo mu odporovat.
A když v ní příště Hugo řekne „vyhrajeme hru“, chci se opravdu těšit, jestli mu to vyjde.