Späť na blog
·Jan Tyl·35 min čítania

Tiene Prahy: šesť AI mozgov, dva súperiace tímy a cesta od kociek k herným postavám

Desať hier, šesť samostatných AI a skutočné ulice Prahy. V štyroch dueloch rôznych modelov zakaždým vyhrala silnejšia verzia. Lenže najlepšia policajná taktika bola prestať behať. Čo ma to naučilo o pamäti, spolupráci, pravidlách aj premene kociek na herné postavy?

Tiene Prahy: šesť AI mozgov, dva súperiace tímy a cesta od kociek k herným postavám

Výtvarná podoba postáv Tieňov Prahy.

„Som v Severnej pasáži a doručujem druhú pečať, vyhráme hru!“ hlási Hugo.

Detektív Viktor medzitým stojí na úplne inom mieste. Vie, že sa protivníci objavili na severe. Dokonca to práve povedal svojim kolegom. Napriek tomu čaká pri Sulickej.

Tiene víťazia.

Toto nie je napísaná záverečná scéna. Obe vety vznikli v jednom z mojich pokusov. Každá postava mala vlastné pozorovania, správy od spoluhráčov, denník a vlastné volania jazykového modelu. Hra potvrdila, kto kam naozaj došiel a čo skutočne doručil. Celý experiment robím ako jediný človek. S programovaním, grafikou a rozborom záznamov mi pomáhajú AI asistenti.

A práve rozdiel medzi „viem, čo sa deje“ a „urobím podľa toho správny krok“ je na tom zaujímavý.

Nakoniec som nechal odohrať desať AI hier za približne 67 Kč vo volaniach modelov. V štyroch zápasoch rôznych modelov zakaždým vyhrala silnejšia verzia. Najzaujímavejšou policajnou stratégiou však nebola veľkolepá naháňačka. Bolo to rozhodnutie zostať stáť.

Druhá pečať: pätnásť sekúnd z jednej napínavej hry

Oskar uteká na východ. Nora sa snaží odrezať Elu na juhu. Lenže druhá pečať už je takmer v cieli. Z rozhodnutí v deviatej hre som zostavil krátky triler s českými replikami, hudbou a ruchmi priamo z Klingu 4.

Tiene Prahy: Druhá pečať. Filmová rekonštrukcia ťahov 11 až 15 so skrátenými replikami zo záznamov. Zvuk zostáva v češtine. Otvoriť video samostatne.

Najprv vznikli tri kľúčové obrázky. Určili podobu postáv, oblečenie a svetlo; z nich potom vychádzalo video. Vidíte filmové spracovanie skutočných herných rozhodnutí, nie záznam grafiky prototypu. Zvuk je pôvodnou súčasťou videa, bez dodatočného dabingu.

Oskar: zmeniť smer, kým je čas

Oskar s pečaťou v podvečernej pražskej ulici, Nora sa blíži v pozadí

„Nora je za mnou. Mierim na východ.“

V ťahoch 11 a 12 Oskar varuje spoluhráčov a skutočne mení cestu cez park k východnému východu. Tentoraz správa aj pohyb rozprávajú ten istý príbeh.

Nora: správne varovanie ešte nezaručí zásah

Nora s vysielačkou žiada o odrezanie južnej únikovej cesty

„Ela uteká na juh. Odrežte ju!“

Replika vychádza z tímového varovania v 13. ťahu. Polícia hrozbu pomenovala, ale Elu už včas nezastavila.

Ela: posledný krok patrí jej

Ela kladie víťaznú druhú pečať na herný prijímač pri nízkom múre

„Doručujem druhú pečať. Vyhrávame.“

V 15. ťahu engine potvrdil doručenie aj víťazstvo Tieňov. Tu už nešlo o želanie z denníka. Výsledok sa naozaj stal.

Čo sa stane, keď sa AI prestane iba dohadovať a začne súperiť?

V Meste duchov som poslal šesť agentov do skutočných pražských ulíc. Hľadali úlomky pamäti, odovzdávali si informácie a spoločne privolávali úsvit.

Tentoraz som chcel skúsiť niečo iné. Dva tímy s opačnými cieľmi. Rovnaká štvrť, ale iný dôvod vydať sa von.

Vznikli Tiene Prahy, ďalší samostatný experiment rodiny Elements. Traja detektívi sa snažia zastaviť tri Tiene. Tie musia vyzdvihnúť dve z troch herných pečatí a vyniesť ich jednou zo štyroch únikových ciest.

Nejde o skutočné banky ani o plánovanie vlámania. Pečate, pravidlá aj príbeh som navrhol s pomocou AI. Skutočné sú podkladové cesty a pôdorysy z OpenStreetMap v okolí Krča a Lhotky. Fasády a ďalšia výprava sú výtvarnou podobou mesta.

Tá štvrť nie je náhodne vygenerovaná

Tu je to isté miesto na skutočnej mape: Alšovy sady, Zálesí, Sulická, Na Větrově a okolie v pražskej Lhotke a Krči. Hra preberá z OpenStreetMap uličnú sieť a pôdorysy budov. Podľa zákrut, križovatiek a rozmiestnenia domov sa preto dá spoznať, kde sa postavy pohybujú.

Pre príbehy jednotlivých hier som pripravil mapu všetkých dvanástich stanovíšť. Vychádza priamo zo súradníc enginu a rovnakej uličnej siete ako hra. Sever je hore a mierka umožňuje odhadnúť vzdialenosti.

Mapa Tieňov Prahy so všetkými 12 presne umiestnenými stanovišťami: Alšovy sady, pomníček Veverku, Sulická a štyri východy

Zlaté značky sú miesta s pečaťou, tyrkysové únikové východy a sivé ďalšie orientačné body. Otvoriť veľkú mapu. Podklad a pôdorysy: © prispievatelia OpenStreetMap, ODbL. Rovnaká štvrť na bežnej mape.

Keď sa v denníkoch hovorí o Alšových sadoch (01), ide o stanovište pri pomníku Mikoláša Alša. Veverka (02) je pomníček padlého Václava Veverku. Sulická (03) označuje pamätník padlým v druhej svetovej vojne. Herné značky ležia na najbližších uzloch cesty, po ktorej sa agenti pohybujú, nie presne v strede sochy či pamätnej tabule.

Západná, Východná a Severná pasáž a Južné rázcestie sú štyri miesta, kde možno pečať odovzdať. Ich mená, rovnako ako Čitáreň alebo Malé námestie, sú herné označenia. Súradnice a okolité ulice pochádzajú z mapy, pomenovanie úloh je súčasťou môjho scenára.

Nižšie je herná podoba rovnakej štvrte zo šikmej kamery. Ulice a rozmiestnenie domov majú skutočný mapový základ; fasády, detaily striech, osvetlenie a herné stanovištia sú výtvarnou štylizáciou. Nie je to fotografická rekonštrukcia. Napríklad „Čitáreň“ je názov herného bodu, nie overené označenie inštitúcie na tej adrese.

Prvá mapová podoba Tieňov Prahy s pozíciami šiestich agentov

Raná podoba hernej mapy. V prehľade sú postavy zámerne zväčšené, aby sa dali v štvrti nájsť.

Z mapy dolu na chodník

Takto dnes vyzerá tá istá štvrť priamo v prehliadači. Pre nový záber som upokojil kameru a upravil denné svetlo, aby bolo lepšie vidieť rozloženie ulíc, striech a domov. Pôdorysy stále pochádzajú zo skutočnej mapy Prahy.

Pohľad na skutočnú mapovú sieť Krče a Lhotky v 3D engine Tieňov Prahy

Nová snímka priamo z enginu. Podklad: © prispievatelia OpenStreetMap, ODbL. Domy majú štylizované fasády a strechy.

A tu už medzi domami kráča Nora. Je to jedenásťsekundový záznam bežiaceho prototypu vo Full HD. Kamera ju sleduje spredu a zboku, takže vidno jednotlivé kroky, pohyb rúk aj tieň na chodníku.

Nora na prechádzke. Technická ukážka z rovnakého rendereru a rovnakého modelu ako hra. Trasu a kameru som pre natáčanie nastavil vopred; nešlo o ďalšiu AI partiu. Otvoriť video samostatne.

Pod kapotou sa každá snímka počíta z 3D scény. Three.js cez WebGPU vykresľuje mapu, materiály a svetlo, zatiaľ čo animovaná kostra deformuje model prevedený z Blenderu. Chodník sa pohybuje pod nohami preto, že sa postava skutočne presúva scénou. Vďaka tomu sa dá sledovať z inej strany alebo zastaviť uprostred kroku. Samotné natáčanie nepridalo žiadne platené volanie modelu.

Šesť ľudí, šesť samostatných rozhodnutí

Vo východiskovom obsadení tvoria detektívny tím Ada, Viktor a Nora. Proti nim stoja Ela, Hugo a Oskar. V ďalších testoch si tímy aj vymenia. V prvých šiestich platených pokusoch všetci používali Gemini 3.5 Flash Lite. Neskôr som v dvoch ďalších hrách dal jednej strane Gemini 3.8 Flash a potom modely medzi stranami vymenil. Nakoniec som pridal dvojicu duelov Gemini 4 Argon proti Gemini 3.8 Flash. Výsledky nájdete nižšie.

Model dostáva svoje miesto, stav, dostupné akcie, správy kolegov a časť vlastnej minulosti. Nevidí súkromné denníky protivníkov. Miestny dohľad má obmedzený dosah. Občas sa objaví verejná stopa, ktorá prezradí oblasť, kde sa Tieň nachádzal.

Každý potom vráti tri veci: akciu, správu vlastnému tímu a zápis do denníka. Engine pripraví vstupy pre všetky rozhodnutia nad rovnakým stavom a až potom spoločne vyhodnotí výsledky. Rýchlejšia odpoveď API tak nezískava náskok na ulici.

Za bežný ťah možno prejsť až 130 metrov, so žetónom na rýchly presun až 221 metrov. Trasa vedie po mapovej sieti, nie priamkou cez domy. Keď sa detektív dostane k Tieňu dostatočne blízko v rovnakej časti ťahu, engine potvrdí zadržanie. Tvrdenie „chytil som ho“ samo nestačí.

Polícia, ktorá chcela sama doručovať pečate

Prvé platené kolo prinieslo celkom komickú chybu. Niektorí detektívi sa snažili pečate sami brať alebo doručovať. Akoby dobre pochopili časť herného sveta, ale zabudli, za koho hrajú.

Z 39 policajných rozhodnutí bolo 13 pokusov o tieto nepovolené akcie. Hra ich nepustila. Používateľovi by to však pripadalo ako nešikovné postávanie a zmätené reči.

Pripomenulo mi to Obinna z prvej série Zrádcov a jeho nepochopenie pravidiel pri použití prvého štítu. Sám to neskôr rozoberal v rozhovore s Vojtom Kotkom, od 34:06. Podobnosť je v hernej situácii: človek alebo agent niečo zamýšľa, ale zle si vyloží, čo vlastne smie. Pri slabšom jazykovom modeli s tým musím pri návrhu hry zvlášť počítať. Pomôcť môže nielen lepší model, ale aj lepšie zostavený engine: jasná rola, ponuka dostupných akcií a zrozumiteľná odpoveď, prečo daný krok nemožno vykonať.

V ďalšej verzii dostal každý agent výraznejšie vyjadrený vlastný cieľ a zoznam práve dostupných akcií. Detektív čítal, že pečate neberie ani nedoručuje. V druhom pokuse sa počet týchto chýb znížil na nulu z 18 policajných rozhodnutí.

To je užitočný výsledok, ale nie dôkaz trvalého učenia modelu. Nezmenil som jeho váhy. Zlepšil som inštrukcie a rozhranie medzi modelom a hrou. A policajný tím stále prehral.

Prvé dva platené pilotyPrvý pokusDruhý pokus
VíťazTieneTiene
Počet ťahov2113
API odpovede6136
Zadržania Tieňov40
Policajné pokusy brať či doručovať pečate130
Cena volaní modelov1,74 Kč0,94 Kč

Odstrániť chybnú akciu totiž nie je to isté ako vytvoriť dobrú stratégiu.

„Pomôžem Ade.“ A zrazu všetci bežia rovnakým smerom

Viktor v druhom pokuse napísal:

„Som Pri vile, Tiene utiekli alebo sa pohybujú ďalej. Presúvam sa k parku, aby som pomohol Ade uzavrieť priestor.“

Znie to rozumne. Lenže keď niekoľko ľudí nezávisle vyhodnotí pomoc rovnako, môžu sa všetci rozbehnúť za jednou starou stopou. Inde zostane voľná cesta.

Podobný problém mal aj tím Tieňov. Hugo aj Oskar v jednej chvíli tvrdili, že majú pečať. V skutočnosti ju mal Hugo. Engine nedovolil vytvoriť druhý kus len tým, že o ňom Oskar napísal do denníka.

Dobre znejúca dohoda ešte nie je spolupráca. Spolupráca sa pozná podľa toho, či si tím rozdelí prácu, reaguje na skutočné výsledky a neprekáža si.

Aj preto ma podobné malé svety bavia. V bežnom chate môžeme uveriť presvedčivému vysvetleniu. V hre sa dá skontrolovať, či postava naozaj stojí pri východe a nesie správny predmet.

Pamäť: čo vie hra a čo si iba myslí postava

Základ sveta ukladám do štruktúrovaných súborov JSON. Patria sem polohy, nesené pečate, zadržania, tím, čas, výsledky aj účet za API. Priebeh sa zapisuje po jednotlivých udalostiach do JSONL, teda súboru s jedným JSON záznamom na riadok.

Denníky sú iné. Je to text vytvorený konkrétnou postavou, v tomto experimente uložený tiež v JSON súbore. Nie je to automaticky pravda. Markdown by bol príjemný formát na čítanie, ale samotná prípona súboru pamäť nezlepší.

Preto nová verzia oddeľuje:

  • Overené výsledky enginu: čo postava skutočne vykonala, čo nesie a či je zadržaná.
  • Vlastný denník: jej interpretácie, domnienky a úvahy.
  • Tímové plány: čo kolega zamýšľal v konkrétnom ťahu.
  • Pozorovania a stopy: čo bolo vidieť a aká stará je informácia.

Keď denník tvrdí „mám pečať“, ale aktuálny stav hovorí, že ruky sú prázdne, prednosť má stav hry. A keď kolega pred niekoľkými ťahmi sľúbil strážiť sever, nie je to potvrdenie, že tam stále stojí.

Najprv obrázok, potom skutočné postavy

Tento pôvodný výtvarný návrh určil náladu celej hry. Šesť odlišných ľudí, dve strany a pražský večer. Popri novšom titulnom obrázku ho chcem zachovať: ukazuje, odkiaľ som vyšiel. Od peknej kresby k modelu, ktorý sa dá otáčať a animovať, však vedie ďalší kus práce.

Pôvodný výtvarný návrh šiestich hrdinov Tieňov Prahy

Pôvodný výtvarný návrh. Nasledujú skutočné fázy vývoja: geometrická figúrka, sieť a materiály v Blenderi a hotový model v prehliadači.

Ako som s AI z kociek urobil ľudí

Tu prišla najpriamejšia spätná väzba celého vývoja: postavy boli škaredé.

Pôvodne vznikli v kóde z jednoduchých tvarov. S pomocou AI som pridal goliere, vrecká, prsty, topánky aj účesy. Na rýchle overenie fungovania to stačilo. Na detail tváre už nie. Ďalšia malá guľôčka namiesto nosa problém nevyrieši.

Pôvodná procedurálna postava Nory z jednoduchých geometrických tvarov

Pôvodná Nora. Funkčná figúrka na prvé testy, ale slabý základ pre ľudskú tvár.

Namiesto ďalšieho lepenia primitív som siahol po Microsoft Rocketbox, knižnici hotových rigovaných ľudských postáv pod licenciou MIT. Vybral som šesť rôznych modelov a s pomocou AI ich spracoval v Blenderi. Základnú geometriu a textúry teda AI nevytvorila od nuly. Moja práca s AI spočíva vo výbere, prevode, úprave materiálov, napojení animácií a zapojení do vlastnej hry. Zdroj modelov a licencia.

Šesť nových postáv v skutočnom 3D ateliéri Tieňov Prahy

Ada, Viktor, Nora, Ela, Hugo a Oskar po prevode. Skutočný živý 3D náhľad, nie prekreslený screenshot.

Čo treba pri takom prevode urobiť?

Najprv tvár. Namiesto niekoľkých hladkých tvarov dostane hra súvislú sieť s tvarom líc, viečok, nosa a úst. Na ňu sa natiahne textúra kože. Vlasy majú vlastnú geometriu a priehľadné časti, s ktorými musí renderer správne zaobchádzať.

Rovnaký model Nory v Blenderi, vľavo polygonálna sieť a vpravo textúry a materiály

Rovnaká Nora v Blenderi: vľavo vidno sieť polygónov, vpravo model s textúrami a svetlom. Študijný render zdrojovej postavy.

Potom materiály. Farba nestačí. Koža, látka, vlasy a kov odrážajú svetlo inak. Normálové mapy pridávajú drobné povrchové nerovnosti bez toho, aby každá vráska musela byť samostatným polygónom. V tejto úprave majú farebné textúry rozlíšenie 1 024 × 1 024 a normálové mapy 512 × 512, aby zostalo načítanie v prehliadači rozumné.

Potom kostra a pohyb. Rig je kostra, ktorá určuje, ako sa má sieť deformovať pri ohnutí lakťa alebo kroku. Nestačí preniesť zoznam natočení kostí z jedného súboru do druhého. Pri prevode bolo nutné zladiť orientácie kostí a animáciu previesť do výslednej kostry. Inak človek zostane v rozpaženej póze alebo sa začne krútiť.

Nakoniec export do GLB a kontrola v hre. GLB je praktické balenie pre webové 3D: model, kostra, materiály, textúry a animácie môžu byť v jednom súbore. V Blenderi pritom zostávajú editovateľné zdroje na ďalšie úpravy.

Nová Nora s textúrovanou tvárou a oblečením priamo v bežiacej hre

Nora po zmene. Tentoraz má skutočný model tváre, textúru vlasov aj látky. Mesto je stále jednoduchšie než postavy.

Doplnil som aj fotografie povrchov pre asfalt a časť muriva, mapy nerovností a drsnosti, lavičky a jemnejšiu oblohu. Materiály pochádzajú z Poly Haven, kde sú dostupné pod CC0. To však neznamená, že z jednoduchej mapy vznikla fotorealistická Praha. Na uliciach a domoch je ďalšia práca dobre viditeľná.

A čo Claude Code, Codex, WebGPU alebo ray tracing?

AI asistent je tu užitočný ako programátor a pomocník pri spracovaní modelov. Vie pripraviť skript, ktorý importuje šesť postáv, opraví odkazy na textúry, nastaví materiály a vyexportuje ich do rovnakého formátu. Môže tiež hľadať chyby v kostre a mierke.

Blender má Python API, takže túto prácu možno opakovať a kontrolovať. Existuje aj oficiálny konektor pre Claude; postup opisuje Claude Academy. Pri tomto prevode používam priamo skripty pre Blender, bez ďalšieho konektora.

Krajší obrázok však nevznikne iba pridaním slova „WebGPU“. Potrebujem dobrý model, materiály, svetlá, kameru a rozumne zaplnené prostredie. WebGPU je spôsob, ako prehliadač pracuje s grafickou kartou. Samo osebe nedá ray tracing, DLSS ani kvalitu veľkej hry s mnohoročným rozpočtom.

Pre môj experiment je podstatné, že nová postava nie je iba krajší obrázok na kartičke. Rovnaký 3D model chodí po mape, má vlastný portrét a dá sa prezrieť v samostatnom ateliéri. V ňom možno prepnúť na detail konkrétneho človeka a spustiť chôdzu.

Agenti sami však túto krajšiu scénu nevidia. V týchto hrách rozhodujú podľa textového pozorovania v JSON. Grafika pomáha divákovi sledovať príbeh; prípadnú zmenu rozhodovania treba hľadať v pravidlách, vstupných informáciách a odpovediach modelu.

Lepšia hra potrebuje lepšie možnosti, nielen lepšie hlavy

Súčasne som zmenil pravidlá a pozorovania. Nová verzia dovoľuje upraviť cieľ aj počas dlhej cesty. Presmerovanie nadväzuje na najbližší ďalší uzol skutočnej trasy, takže sa hráč neteleportuje späť na posledné stanovište ani si neskráti cestu cez domy.

Detektívi dostali jednu spoločnú uzáveru východu na celú hru. Jej vyhlásenie stojí akciu na mieste. Najprv príde varovanie a až v nasledujúcich dvoch ťahoch nemožno týmto východom doručovať. Uzávera sama nikoho nechytá.

Tieň môže naopak raz venovať akciu falošnej oblasti svojej ďalšej verejnej stopy. Správa príde v bežnom čase a nemá tabuľku „toto je podvod“. Priamy miestny dohľad tým však oklamať nemožno.

Vzniká niekoľko skutočných volieb. Venovať ťah príprave klamlivej stopy, alebo rýchlejšie utekať? Zavrieť výhodnú cestu hneď, alebo si jediný žetón nechať na záver? Veriť starému hláseniu, alebo strážiť miesto, kam musí protivník nakoniec prísť?

Návrh prešiel aj nezávislou kritikou ďalšieho agenta. Upozornila napríklad na to, že štyri východy nie sú rovnako výhodné: od niektorých pečatí je jeden oveľa bližšie než druhý. Odhalila tiež, že pôvodné testovacie seedy iba prehadzovali identity na rovnakých miestach. Teraz preto mením aj skutočné rozmiestnenie tímov.

Automatické testy kontrolujú okrem iného súkromie správ, dĺžku pohybu, zadržanie, zachovanie pečatí, začiatok a koniec uzávery aj rozdiel medzi denníkom a potvrdenou históriou. Samostatné skriptované skúšky overujú, že môže vyhrať ktorákoľvek strana. To ešte nie je dôkaz, že rovnako schopní AI hráči majú šancu presne pol na pol.

Dve výhry polície, dve výhry Tieňov. Lenže záleží kde

Novú verziu som spustil štyrikrát. Dve rozdielne počiatočné rozmiestnenia, každé raz s pôvodnými a raz s vymenenými tímami. Rovnaký model, rovnaké podmienky víťazstva. Každé kolo začínalo s prázdnym denníkom; žiadny hráč nedostal spomienky z predchádzajúceho pokusu.

Nové pilotyRozmiestnenieObsadenie tímovVíťazŤahovAPI volaniaCena Kč
3PrvéVýchodiskovéDetektívi11662,20
4PrvéVymenenéDetektívi5300,89
5DruhéVýchodiskovéTiene7401,23
6DruhéVymenenéTiene7421,31

Každá hra má svoj malý príbeh

Pre čitateľov, ktorí nechcú prechádzať celé denníky, som vybral to podstatné z každého kola. Doručenia a zadržania overujem podľa enginu, nie podľa toho, čo si postavy mysleli.

Hra 1: Polícia naháňala vlastné víťazstvo. Lenže podľa cudzích pravidiel. Nora chytila Huga už v prvom ťahu a detektívi nakoniec zaznamenali štyri zadržania. Napriek tomu vyhrali Tiene: Ela odovzdala prvú pečať v ťahu 9 a Oskar druhú v ťahu 21. Políciu zradilo pochopenie roly. Trinásťkrát sa pokúsila pečať sama vziať alebo doručiť, hoci to smie iba súper. Viktor ešte v poslednom ťahu sľuboval doručenie pre políciu, zatiaľ čo skutočný víťaz práve prechádzal západným východom. Záchyty fungovali, spoločný plán nie.

Hra 2: Vedel, kde sú. A čakal inde. Po úprave inštrukcií už detektívi neskúšali brať cudzie pečate. Strategicky však stále nestíhali. Ela doručila v ťahu 12, Hugo v ťahu 13 a polícia nezadržala nikoho. Najvýrečnejší bol Viktor: v správe správne uviedol, že Tiene sú v Severnej pasáži, súčasne však zostával pri Sulickej a čakal na ich príchod. Informáciu mal, zmena plánu neprišla. Tieňom vyšlo postupné doručenie; detektívom nepomohla ani opravená znalosť pravidiel. V závere sa objavili aj neplatné JSON odpovede, ktoré engine nahradil čakaním.

Hra 3: Jeden detektív, tri zadržania v jedinom ťahu. Ela doniesla prvú pečať do Severnej pasáže v ťahu 10. Hugo a Oskar ju sprevádzali a čakali tam s ňou, namiesto toho, aby medzitým zaistili druhú. O ťah neskôr prišiel Viktor a engine potvrdil zadržanie všetkých troch naraz. Detektívi vyhrali v ťahu 11. Tiene zvládli jednu skutočnú úlohu, ale sústredenie celého tímu okolo jediného úspechu ich pripravilo o ďalšiu šancu. Viktorov presun bol tentoraz účinnejší než všetky ich uistenia o spolupráci.

Hra 4: Nora problém pomenovala. Náprava prišla neskoro. Po výmene tímov hrali za Tiene Ada, Viktor a Nora. Už v druhom ťahu Nora upozornila: „Všetci mierime do Alšových sadov, čo je zbytočné hromadenie.“ Všetci to v zásade vedeli, lenže zmenu odkladali. Ada vzala prvú pečať v ťahu 4, Nora až vtedy presmerovala cestu k Sulickej. V ťahu 5 Hugo chytil Adu, Oskar Viktora a Ela Noru. Vyhrali detektívi bez jediného doručenia súpera. Silným momentom nebola nevedomosť, ale rozdiel medzi správnou diagnózou a včasným činom.

Hra 5: Juh a sever. Dve pečate súčasne. Ada zadržala Huga už v druhom ťahu, ale tým príbeh Tieňov neskončil. Ela odniesla pečať z Alšových sadov na juh, Oskar tú od Sulickej na sever. V ťahu 7 obaja skutočne doručili a vyhrali. Hugo sa po prepustení vracal po zostávajúcu pečať, jeho kolegovia však už ďalšiu pomoc nepotrebovali. Tu sa rozdelenie práce premenilo na výsledok: dve rôzne pečate, dva rôzne východy. Detektívi strážili iné časti mapy a nedokázali obe doručenia zastaviť.

Hra 6: Nové tváre v rolách Tieňov, rovnaký únik. V rovnakom rozmiestnení si postavy znovu vymenili strany. Ada a Nora doniesli pečate k južnému a severnému východu a v ťahu 7 ich obe odovzdali. Viktor niesol tretiu pečať na západ, takže tím pracoval aj na ďalšej možnosti. Ela sa ako detektív vydala za Adou, ale včas ju nezastavila; Oskar naďalej strážil Alšovy sady, odkiaľ už pečať zmizla. Tiene vyhrali bez zadržania. Práve opakovaná výhra rovnakej strany po výmene postáv ma upozornila, že východiskové rozmiestnenie môže byť dôležitejšie než meno hrdinu.

Výsledok 2:2 vyzerá pekne, ale podstatný detail je inde. Na prvom rozmiestnení dvakrát vyhrala hliadka, na druhom dvakrát Tiene. Výmena postáv víťaznú stranu nezmenila. Je to stopa pre ďalšie ladenie štartov a trás, nie dôkaz dokonale vyváženej hry. Príčinu zo štyroch pokusov spoľahlivo neurčíme.

Agenti počas týchto kôl šestnásťkrát zmenili cieľ už prebiehajúcej cesty. Nové možnosti uzávery a falošnej stopy však nepoužili ani raz. Pridať inteligentnú schopnosť do pravidiel nestačí. Ešte musím overiť, či model rozpozná situáciu, v ktorej sa oplatí obetovať okamžitý pohyb za neskoršiu výhodu.

Čo ak jednému tímu dáme silnejší mozog?

Po šiestich hrách prišiel ďalší nápad: raz posilniť detektívov a druhýkrát Tiene. Vybral som Gemini 3.8 Flash. Všetci traja hráči danej strany dostali tento model, protivníci zostali na Gemini 3.5 Flash Lite.

Oba nové zápasy začali na rovnakom druhom rozmiestnení s rovnakými postavami, pravidlami a prázdnymi denníkmi. Inštrukcie sa nemenili, rýchlosť odpovede neovplyvňovala pohyb. Oba modely mali rovnaký strop 4096 výstupných tokenov; Flash používal úroveň premýšľania low, Lite minimal. Porovnávame tieto dve konkrétne nastavenia.

HraKto mal Gemini 3.8 FlashVíťazŤahovZadržaniaCena Kč
7DetektíviDetektívi28910,50
8TieneTiene712,11

Hra 7: Silnejšia hliadka našla spôsob, ako súpera vyčkať. Gemini 3.8 Flash riadil všetkých troch detektívov, Lite všetky Tiene. Ela síce v ťahu 7 doručila prvú pečať, ale na druhú už tím nedosiahol. Detektívi si postupne rozdelili zostávajúce stanovištia: Nora strážila Veverku, Viktor Sulickú a Ada pokrývala okolie. Engine zaznamenal deväť zadržaní a po 28 ťahoch vyhrala polícia. Podarilo sa stráženie konkrétnych cieľov, Tieňom zlyhávala reakcia na opakované záchyty. Ukázala sa však aj výhoda pravidiel: stojaci strážca môže na pečati rušiť každý pokus o vyzdvihnutie. Štyri neplatné JSON odpovede Lite navyše skončili čakaním.

Hra 8: Silnejšie Tiene rozdelili prácu hneď na začiatku. Tentoraz dostali Gemini 3.8 Flash Ela, Hugo a Oskar. Už v prvom ťahu si rozobrali tri rôzne stanovištia: Ela Alšovy sady, Hugo Veverku a Oskar Sulickú. Ela potom mierila na juh, Oskar na sever. V ťahu 7 obaja doručili a vyhrali; v rovnakom ťahu Nora chytila Huga, ale na výsledok už to nestačilo. Rozdelenie práce bolo viditeľné v správach aj skutočných trasách. Zrýchlenie oproti skorším Lite Tieňom sa však nekonalo: tie na rovnakom rozmiestnení tiež vyhrali v siedmich ťahoch. Slabší detektívi navyše trikrát poslali neplatný JSON.

Viktor v poslednom ťahu siedmej hry hlásil:

„Stojím priamo na Sulickej a nepúšťam pečať. Ela je v dosahu, Nora kryje Veverku. Posledný ťah do víťazstva!“

Jeho denník bol tentoraz v súlade s tým, čo hra naozaj ukazovala: strážil konkrétnu pečať a počítal s automatickým záchytom. V druhom porovnávacom pokuse zase Oskar už v prvom ťahu napísal:

„Vyrážam po pečať pri Sulickej, potom ju vezmem na Severnú pasáž. Hugo, ber Veverku alebo Alšovy sady. Ela nech zaistí Alšovy sady.“

Dvakrát vyhrala strana so silnejším modelom. To je zaujímavý výsledok, nie zmeraná šanca na víťazstvo. Samotné Lite Tiene už na rovnakom rozmiestnení tiež vyhrali v siedmich ťahoch. Najväčšiu zmenu teda vidíme pri detektívoch. Ani tam však nemožno z jediného pokusu určiť príčinu: staršia kontrolná hra mala nižší výstupný strop 900 tokenov a odpovede modelov nie sú deterministické.

Do výsledku vstupuje aj spoľahlivosť rozhrania. Lite v týchto dvoch hrách poslalo 7 syntakticky neplatných JSON odpovedí z 89, Flash 0 zo 105. Niekde bola navyše zátvorka, inde chýbala úvodzovka. Engine taký ťah nahradil čakaním. To patrí do hodnotenia použiteľnosti agenta, ale nie je to to isté ako kvalita taktiky. Ani silnejší model nebol bezchybný: detektívi si v niektorých správach plietli, kto nesie pečať.

Silnejší model mi odhalil slabinu hry

Detektívi nemuseli vymyslieť zložitú lesť. Postupne začali stáť priamo na miestach, kde ležali zostávajúce pečate. Prichádzajúci Tieň bol automaticky zadržaný a prípadne práve vzatý predmet sa vrátil. Keď už jedna pečať zmizla, stačilo dobre pokryť zostávajúce dve.

Po skončení som túto vlastnosť overil aj samostatnou neplatenou kontrolou na všetkých troch stanovištiach. Stráženie pečate je v súčasných pravidlách veľmi silná obrana. Neznamená to, že sa tam polícia dostane včas z každého štartu. Znamená to, že vyhrať tento zápas a byť všeobecne lepší agent sú dve rôzne veci.

V ďalšej verzii by som preto chcel dať útočníkom skutočnú možnosť takú obranu narušiť a potom zopakovať viac zápasov s výmenou strán aj štartov. Pravidlá som počas týchto meraní neupravoval. Uzáveru východu ani falošnú stopu modely nevyužili ani v jednom z nových pokusov.

Argon proti Flashu: vyhrá inteligentnejší model aj po výmene strán?

Potom som šiel ešte o stupeň vyššie. Gemini 4 Argon proti Gemini 3.8 Flash, raz za Tiene a druhýkrát za detektívov. Každý model riadil všetky tri postavy svojho tímu. Obe hry začínali na rovnakom druhom rozmiestnení, s prázdnymi denníkmi, nezmenenými pravidlami a rovnakými inštrukciami. Obom modelom som nastavil premýšľanie low a strop 4096 výstupných tokenov. Zo záznamov som overil aj skutočne vrátené označenia modelov.

HraTieneDetektíviVíťazŤahovZadržania TieňovCena Kč
9Gemini 4 ArgonGemini 3.8 FlashTiene15313,68
10Gemini 3.8 FlashGemini 4 ArgonDetektívi28832,12

Hra 9: Dve zadržania hneď na začiatku. A predsa návrat do hry. Ada chytila Elu a Nora Oskara už v treťom ťahu. Argon teda nezačal dokonale. Oskar dokonca videl Noru nablízku a napriek tomu chybne odhadol, že tento ťah ešte zadržaný nebude. Hugo medzitým dokončil vlastnú úlohu: v ôsmom ťahu doručil pečať od Veverku na západ. Ela a Oskar sa po prepustení vrátili po zostávajúce dve. Keď sa k Oskarovi znovu blížila Nora, zamieril cez park na východ. Ela pokračovala na juh a v pätnástom ťahu doručila víťaznú pečať. Policajti ju už nestihli dostihnúť.

Oskar v jedenástom ťahu napísal:

„POZOR! Vidím Noru priamo pri sebe na juhozápad od sulicka (pos [-87, 251])! Unikám s pečaťou na východ cez park (2 ťahy), potom zamierim na north alebo east podľa toho, kam pôjde Nora.“

Toto nezostalo iba vetou. Záznam potvrdzuje presun k parku a v ďalšom ťahu zmenu cieľa na východný východ. V denníku potom opísal vzdialenosť Nory a dôvod zmeny smeru. Práve prepojenie správy, plánu a uskutočneného pohybu je zaujímavejšie než samotné víťazstvo.

Hugo si tiež všimol, že hra vracia zadržané postavy k východu vzdialenému od detektívov, a využil to ako vodidlo pre tím. V jeho správach sa však objavovalo príliš sebavedomé „úplne bezpečný“. Miesto návratu sa vyberá už pri zadržaní a polícia sa medzitým pohybuje. Bola to užitočná indícia, nie záruka bezpečnej cesty.

Hra 10: Najbystrejším nápadom bolo prestať behať. S Argonom za políciu prišla iná hra. Detektívi zaznamenali osem zadržaní a od konca desiateho ťahu držali tri rôzne pečate: Ada Alšovy sady, Viktor Veverku a Nora Sulickú. Až do posledného ťahu svoje miesta neopustili. Tiene s Flashom hľadali inú cestu, niekoľkokrát menili cieľ, ale nedoručili ani jednu pečať. Polícia vyhrala uplynutím času.

Nora svojim kolegom v osemnástom ťahu pripomínala:

„Ada, Viktor, ZOSTAŇTE STÁŤ na ales a veverka (wait)! Kým stojíme priamo na svojich pečatiach, nemôžu vziať ani jedinú pečať!“

Ada si v poslednom ťahu zapísala:

„Všetky tri pečate sú bezpečne na mieste pod naším dohľadom (ja na ales, Nora na sulicka, Viktor na veverka). Zostávam stáť na mieste (wait), víťazstvo je isté.“

V tomto prípade denník zodpovedal skutočnému stavu. Inteligentnejšie rozhodovanie teda nemusí vytvoriť viac naháňačiek. Niekedy odhalí, že najvýhodnejšou stratégiou je stáť na mieste. Pre autora hry je to dôležitá správa: aby vznikala napínavejšia hra, potrebujem opraviť aj pravidlá, ktoré pasívnu obranu tak zvýhodňujú.

Skutočný záver desiatej hry: Argon za detektívov, tri strážené pečate a denník Nory

Skutočný stav po 28. ťahu. Tiene nedoručili žiadnu pečať. Vpravo Nora vysvetľuje, prečo už hliadku neopustí. Číslo ťahu vnútri jej textu je vlastný zápis modelu; označenie nad zápisom pridáva engine.

Argon vyhral oba smery tohto malého porovnania. Za Tiene ukázal návrat k cieľu po neúspechu a reakciu na blízkeho protivníka; za políciu dôsledné rozdelenie stráženia. Nie je však bezchybný. V policajnej hre raz nevrátil použiteľnú akciu a engine za Noru vyčkal. Zo 123 odpovedí Argonu bola takto nepoužiteľná jedna, pri Flashi zo 113 žiadna. Uzáveru ani falošnú stopu nevyužil nikto.

Dve výhry sú sľubné pozorovanie, nie zmeraná všeobecná prevaha. Stále ide o jediné rozmiestnenie a jednu hru v každom smere. Najmä policajná výhra ukazuje aj slabinu pravidiel. Ďalší zmysluplný test preto potrebuje viac opakovaní, rôzne štarty a možnosť narušiť trvalé stráženie pečatí. Samotná výmena modelu automaticky lepší príbeh nezaručí.

Čo mi tých desať hier skutočne ukázalo

Keď to vezmem ľudsky: s lepšími modelmi som častejšie videl, že postavy použijú to, čo už vedia. Nestačilo im napísať peknú správu. Rozdelili si stanovištia, po zadržaní sa vrátili k úlohe alebo zmenili cestu pred protivníkom. Zároveň som zistil, koľko problémov som im sám pripravil zlým rozhraním a pravidlami.

PozorovanieČo sa skutočne staloČo z toho zatiaľ nevyplýva
Oprava inštrukcií pomohla aj lacnému modeluPolicajné pokusy vziať alebo doručiť pečať klesli z 13 v prvom pilote na 0 v druhomŽe sa model trvalo preučil alebo začal dobre taktizovať
Flash uspel proti Lite na oboch stranáchV hrách 7 a 8 vyhral tím s FlashomŽe poznám jeho pravdepodobnosť výhry na inej mape
Argon uspel proti Flashu na oboch stranáchV hrách 9 a 10 vyhral tím s ArgonomŽe dva zápasy izolujú všeobecnú inteligenciu modelu
Silnejší model nemusí hrať akčnejšieArgon ako polícia od ťahu 10 držal všetky tri pečateŽe viac pohybu, dlhší denník alebo viac slov znamená lepšiu hru
Ponúknuť schopnosť nestačíV ôsmich hrách pravidiel v3 nikto nepoužil uzáveru ani falošnú stopuŽe ich modely nevedia používať; možno sa v týchto situáciách neoplatili
Použitie nástroja nie je získanie vedomostiNora dostala výskumný žetón za nájdený článok bez overenia vzťahu k miestuŽe sa dozvedela niečo správne o danom pamätníku

V štyroch zápasoch rôznych modelov teda vyhrala silnejšia verzia štyrikrát. Všetky však používali jedno rozmiestnenie, niektoré rovnaké taktické výhody a iba jedno opakovanie každého smeru. Je to motivácia pokračovať, nie poctivý podklad pre tvrdenie „lepší model má stopercentnú úspešnosť“. Ani celkové skóre pravidiel v3, štyri výhry polície a štyri Tieňov, samo osebe nedokazuje vyváženie.

Najviac som sa počas vývoja naučil ja. Modelom som nepreučoval váhy a medzi platenými kolami som im neprenášal denníky. V rámci jednej hry mohli využívať nové správy a skúsenosti; medzi verziami sa menili moje inštrukcie, pamäťové rozhranie a pravidlá. To sú rôzne druhy zlepšenia a oplatí sa ich rozlišovať.

Pod kapotou pre tých, ktorí si to chcú postaviť

Rozhodovacia slučka má štyri kroky: pozorovanie → odpoveď modelu → kontrola a výpočet enginu → zápis výsledku. Grafika iba ukáže, čo sa stalo.

Čo agent dostane. Štruktúrované pozorovanie obsahuje vlastný tím a cieľ, aktuálnu polohu, nesený predmet, dostupné akcie, verejný stav pečatí, známe stopy a odhady dĺžky ciest k herným bodom. Polohy, ciele a nesené predmety spoluhráčov zdieľa priamo engine. Tímové správy fungujú ako spoločná vysielačka bez obmedzenia vzdialenosťou. Protivník ich nedostáva. Jeho presné údaje agent vidí iba v miestnom dohľade, popri tom má staršie správy o jeho oblasti.

To je podstatné aj pre interpretáciu spolupráce: hráči si museli dohodnúť zámer a rozdeliť úlohy, ale polohu spoluhráča nemuseli vyčítať z rozhovoru. Rovnako sami neriešili každý meter navigácie. Vybrali cieľ a trasu po uličnej sieti vypočítal engine. V týchto hrách modely nevidia screenshoty ani nerozpoznávajú tváre. Pôsobivejšia výprava mení zážitok diváka, nie ich vstupné informácie.

Ako vyzerá odpoveď. Zjednodušený príklad formátu, nie citácia konkrétneho ťahu:

{
  "action": { "type": "move", "target": "east" },
  "message": "Mením cestu na východ, na severe je hliadka.",
  "diary": "Sever je rizikový. Skúsim iný východ."
}

action je požiadavka, nie hotová skutočnosť. Engine overí, či ju postava smie použiť, vypočíta pohyb a prípadný záchyt. message dostanú spoluhráči, diary sa uloží danej postave. Ak odpoveď nemožno prečítať, postava tento ťah vyčká. Pohyb po už zvolenej trase pritom pri wait pokračuje, takže počet týchto akcií nemožno automaticky čítať ako počet premárnených ťahov.

Koľko pamäti sa vracia do promptu. Do ďalšieho volania posiela engine posledných šesť vlastných denníkových zápisov, dvanásť prijatých tímových správ, osem potvrdených výsledkov enginu a najviac tri posledné rešerše. Na disku zostávajú celé denníky aj priebežný JSONL záznam. Zatiaľ tu nie je vektorová databáza, znalostný graf ani automatické vybavovanie starej dôležitej spomienky. Ďalší vývoj pamäti preto dáva jasný zmysel.

Ako engine zabráni pretekom v rýchlosti API. Na začiatku ťahu vytvorí nemenné pozorovania pre všetky práve hrajúce postavy. Odpovede bežia súbežne, ale svet sa posunie až po ich dokončení. Pomalší model tak nedostáva menej herného času. Seed určuje rozmiestnenie, nie náhodnosť odpovedí jazykového modelu. Aj rovnaký štart preto môže pri opakovaní dopadnúť inak.

Kde ma zradila odmena za rešerš. Agent pri pamätníku môže zadať vlastný dopyt na Wikipédii. Nástroj mu vráti najviac tri názvy článkov, odkazy a krátke úryvky. V desiatej hre Nora najprv neuspela s dopytom „Sulická“, potom skúsila „Vladimír Mandl“ a získala žetón na rýchly presun alebo presnejšiu stopu. Engine totiž kontroloval iba to, či vyhľadávanie niečo našlo. Súvislosť článku s miestnym pamätníkom neoveroval.

Nora si do denníka zapísala: „Získala som 1 intel za výskum Vladimír Mandl na sulicka.“ Žetón skutočne dostala, ale správny poznatok o mieste tým preukázaný nie je. Nepripisujem jej úmysel podvádzať. Stačí priznať, že som odmenil príliš ľahko splniteľnú podmienku. V ďalšej verzii by mala predložiť konkrétne tvrdenie o mieste, zdroj a oporu v ňom. Počet vyhľadávaní nie je dobrým meradlom vedomostí.

Čo sa dá spätne overiť. Každý beh má protokol, kópiu vtedajších zdrojov, požiadavky, odpovede, ceny, fotografie a denníky. Pri dvojici s Argonom som porovnal odtlačky herného kódu, počiatočných stavov aj systémových inštrukcií. Pred spustením prešlo 31 automatických testov, okrem iného súkromia, súbehu, pohybu, zadržania a správneho účtovania rôznych modelov. Z malého pokusu to neurobí veľkú vedeckú štúdiu, ale umožní mi odlíšiť zaujímavú historku od toho, čo sa naozaj odohralo.

Koľko ma stojí taký svet?

Všetkých desať hier ma vyšlo približne na 67 Kč za volania modelov. Celkovo vzniklo 705 odpovedí. Je to cena rozhodovania postáv v týchto pokusoch, nie celého vývoja hry.

Časť experimentuPočet hierVolania modelovPribližná cena
Pôvodné pokusy iba s Gemini 3.5 Flash Lite62758,31 Kč
Gemini 3.8 Flash proti Lite, výmena strán219412,61 Kč
Gemini 4 Argon proti Gemini 3.8 Flash, výmena strán223645,80 Kč
Spolu1070566,72 Kč

V poslednej dvojici duelov pripadlo približne 35,93 Kč na Argon a 9,87 Kč na Flash. V predchádzajúcej dvojici Flash proti Lite to bolo 9,37 Kč za Flash a 3,24 Kč za Lite. Dlhšia policajná hra s Argonom prirodzene potrebovala viac rozhodnutí než pätnásťťahový únik, takže samotná cena celého kola nie je mierou efektivity jedného modelu.

Sumy počítam z tokenov, ktoré vrátilo API, a oficiálneho cenníka Gemini. Pre Argon platí pri tomto pokuse úvodná cena opísaná v dokumentácii modelu. Na české koruny prevádzam kurzom ČNB z 27. októbra 2026, teda 21,834 Kč za dolár. Ide o orientačný prepočet, nie faktúru ani presný kurz na platobnej karte.

Všetkých desať kôl je dokončených, ďalšie dopyty nebežia a nevyúčtované rezervy sú nulové. V štyroch pôvodných hrách verzie 3 vzniklo 35 snímok, v dvojici Flash proti Lite ďalších 17 a pri dueloch s Argonom ďalších 23. Každej postave zostáva vlastný denník.

Pre celú kampaň držím spoločný strop približne 437 Kč. Pred požiadavkou sa časť rozpočtu rezervuje. Ak by sa odpoveď stratila alebo chýbalo vyúčtovanie, neistá suma sa automaticky nepovažuje za nulu.

Cena volaní modelov nezahŕňa vývojovú prácu, prevádzku počítača ani výtvarné návrhy. Vybrané modely postáv a povrchové materiály boli voľne dostupné.

A keby raz vyzerala ako veľká hra?

Predstavujem si jesenný podvečer v tejto štvrti. Na mokrom asfalte sa odráža svetlo okien. Hugo sa zastaví pri plote, v ruke obracia pečať a sleduje Elu na druhej strane ulice. Ona mu nenápadne naznačí, že priechod je voľný. Za rohom sa práve rozhoduje Nora: pôjde za čerstvou stopou, alebo zostane pri mieste, kam musí niekto z protivníkov prísť?

Výtvarná vízia budúcich Tieňov Prahy: Hugo s pečaťou, spoluhráči a jesenná vilová ulica

Výtvarná vízia ďalšej verzie. Takú atmosféru by som chcel postupne priblížiť skutočne hrateľnej pražskej štvrti.

Toto je smer, ktorým sa chcem vydať. Obrázok ukazuje zamýšľanú atmosféru; súčasný renderer ani presnú podobu tunajších domov nedokumentuje. Zaujíma ma pritom rovnako výraz Hugovej tváre ako dôvod, prečo sa rozhodol zastaviť práve tu.

Najprv jedna presvedčivá ulica

Začal by som krátkym úsekom medzi dvoma hernými stanovišťami. Domy by dostali skutočné proporcie, vstupy, ploty, záhrady a rôzne materiály. Postavy lepšiu pokožku, oči, vlasy a hlavne prirodzené prechody medzi chôdzou, otočením a gestom. Kvalitu tváre totiž rýchlo zničí strnulý pohľad alebo nohy kĺžuce po chodníku. V Blenderi možno pripraviť geometriu aj animáciu; potom musí rovnaká scéna obstáť priamo v hre a na bežnom počítači.

Pre náročnejšiu samostatnú verziu by dával zmysel Unreal Engine. Jeho Lumen rieši dynamické nepriame osvetlenie a odrazy. Pravidlá a AI môžu zostať na serveri hry, zatiaľ čo iný klient vykreslí výsledky. Je to návrh ďalšieho smeru, nie funkcia, ktorú už má môj webový prototyp.

Zaujímavú cestu k zachyteniu skutočného miesta ukazuje aj výskum 3D Gaussian Splatting z roku 2023: z fotografií vytvára reprezentáciu scény pre pohľady z nových miest. Mohol by mi pomôcť s vernou výpravou vybraného zákutia. Samotný krásny priestor však ešte nedáva postavám priechodné dvere, kolízie a pravidlá pohybu. Tie by som musel doplniť a overiť zvlášť.

Lepšia pamäť než posledných šesť zápisov

Dnes agent dostáva iba výber nedávnych správ a denníka. Staré dôležité zistenie sa tak môže stratiť. V štúdii Generative Agents z roku 2023 výskumníci spojili záznamy skúseností, vybavovanie relevantných spomienok, reflexiu a plánovanie. V ich malom svete sa objavovalo aj koordinované spoločenské správanie.

Pre Tiene Prahy by som si z toho vzal konkrétnu zmenu: pred rozhodnutím pripomenúť situácie podobné tej súčasnej. Napríklad, že rovnaký priechod už dvakrát skončil zadržaním. Každá spomienka by niesla čas, zdroj a odkaz na výsledok enginu. Dojem modelu „tadiaľto to pôjde“ by zostal oddelený od potvrdeného „tadiaľto som naozaj prešiel“.

Vedieť dokončiť plán a rozpoznať, kedy ho opustiť

Voyager pracoval v Minecrafte s knižnicou opakovane použiteľných zručností a spätnou väzbou z prostredia. Nemusel zakaždým skladať celé správanie od nuly. Nešlo pritom o priebežné preučovanie váh jazykového modelu.

V tejto hre by podobná myšlienka mohla znamenať overený postup „vyzdvihni pečať a odnes ju voľným východom“. Jazykový model by vyberal cieľ a reagoval na zmeny, engine by spoľahlivo vykonával jednotlivé povolené kroky. Súčasťou postupu musí byť aj dôvod na prerušenie: objavil sa detektív, kolega už predmet vzal alebo priechod prestal byť voľný. Inak by som iba zautomatizoval opakovanie tej istej chyby.

Dohoda, ktorá sa premení na činy

Projekt CICERO pre hru Diplomacy prepojil jazykový model s plánovaním a odhadom konania ostatných hráčov. Výkon nevznikol iba pridaním dlhšieho chatu. Rozhovor bol prepojený s konkrétnym plánom.

Herné tímy by preto mohli popri voľných správach uzatvárať jednoduché dohody: kto stráži ktoré miesto, dokedy, kto to potvrdil a čo urobíme pri zadržaní. Keď Nora prijme sever, Ada už tam nemusí ísť „pomáhať“ bez ďalšieho dôvodu. A po troch ťahoch bez správy musí tím vedieť, že pôvodný sľub už nemusí platiť.

Ako spoznám, že som sa naozaj posunul?

Melting Pot od DeepMind testuje agentov v rôznych situáciách spolupráce aj súperenia a s rôznymi spoluhráčmi. Je to prostredie na výskum viacagentného posilňovaného učenia, nie hotový benchmark môjho prototypu. Jeho dôraz na rôznorodé sociálne situácie je však dobrou inšpiráciou pre ďalšie meranie.

Nestačilo by pridať krajšiu tvár a ukázať jednu víťaznú hru. Potrebujem viac štartov, výmeny strán, opakovania a rovnaké podmienky. Popri víťazstve by som sledoval zbytočné cesty, opakované chyby, splnené dohody, využité informácie a cenu za dokončený cieľ. Tiež by som najprv opravil príliš výhodné stráženie pečatí a až potom znovu meral modely.

Môj najbližší cieľ je preto celkom konkrétny: jedna krásna ulica, spoľahlivá pamäť a tím, ktorého dohoda mení to, čo skutočne urobí. Z takého základu môže vzniknúť oveľa zaujímavejší svet.

Jedna štvrť, viac možných príbehov

Tiene Prahy sú teraz hrateľným taktickým prototypom. Popri nich pripravujem dve ďalšie podoby rovnakého nápadu.

Pražské panstvo by bolo historické dobrodružstvo s poslom, pisárkou, kováčom, cechmi, povesťou a zmiznutou listinou. Inšpirácia typom zážitku z Kingdom Come, ale s vlastným príbehom. Dnešnú mapu nemožno jednoducho vyhlásiť za stredovekú. Na dobovú zástavbu by boli potrebné ďalšie podklady.

Republika v tieni by sa odohrávala vo fiktívnom československom noire. Reportérka, informátori, vyšetrovateľ, vodič a súperiace gangy. Namiesto pečatí dohody, svedectvá a zásielky, pri ktorých záleží na tom, komu ich zveríte.

Obe sú zatiaľ návrhy. Nechcem vyrobiť desať pekných kulís, v ktorých sa nikto nerozhoduje zaujímavo. Chcem najprv jednu štvrť, v ktorej bude mať zmysel zostať na mieste, zmeniť plán, veriť kolegovi alebo mu odporovať.

A keď v nej nabudúce Hugo povie „vyhráme hru“, chcem sa naozaj tešiť, či mu to vyjde.

Ďalšie experimenty z rovnakej série

Súvisiace články