Audamir

časť 05

Archeológia vlastného projektu: tri a pol dňa z kópií priečinka a histórie gitu

Git história začína až 18. októbra o 12:24, ale hra vznikla o deň skôr. Ako sa z dátumov súborov a štyroch kópií priečinka dá zrekonštruovať, čo sa stalo, a čo to hovorí o práci s asistentom.

· doplnené 5. novembra 2026 · 10 min čítania

História gitu v projekte Audamir nie je úplná. Prvý záznam je z 18. októbra 2026, 12:24 a má správu „first commit“. Hra v tom čase už bola veľká. Čo sa dialo predtým?

Archeológia projektu je rovnaká práca ako archeológia čohokoľvek: treba nájsť dôkazy, ktoré nikto nemal v úmysle uchovať. V tomto prípade sú štyri.

Dôkaz 1: dátumy súborov

Priečinok projektu vznikol 17. októbra 2026 o 01:56. Prvé zdrojové súbory majú časovú značku 03:50: generátor náhodných čísel rng.js, farby hráčov palettes.js a mozaiky grid.js. O 04:00 pribudli štatistiky, o 04:24 umelá inteligencia, o 04:35 herný cyklus, o 05:25 prvé kalibračné merania, o 05:53 pravidlá a o 06:30 nástroj na kalibráciu skóre.

Dátum poslednej úpravy súboru nie je dôkaz o tom, kedy vznikol (súbor sa mohol zmeniť neskôr), ale pri súboroch, ktoré sa potom nemenili, je to pomerne spoľahlivé.

Dôkaz 2: štyri kópie priečinka

Vedľa projektu sú štyri priečinky s názvami dice-wars-1 (Copy) až (Copy 4). Sú to snímky, ktoré vznikli v priebehu dňa, ešte predtým, než git existoval. Porovnaním zoznamu súborov a veľkosti skriptov sa dá povedať, čo hra v ktorej chvíli vedela:

SnímkaČasSúborovSkriptyČo pribudlo
Kópia17. 10., 06:4048222 kBprvá celá hra: mapa, pravidlá, AI v troch úrovniach, nastavenia, kalibrácia skóre, 33 kB manuálu ladenia
Kópia 217. 10., 17:0580528 kBscenáre, minihry, kampaň, bossovia, bonusy, hrdinovia, domovská obrazovka, profil, nástroje missions a fairness
Kópia 317. 10., 20:1195780 kBúspechy, preklady SK a EN, falošný DOM a testy obrazoviek, kocky s bodkami
Kópia 417. 10., 22:57101876 kBželezný beh, elitné hviezdičky minihier
Dnes20. 10.2432 710 kBvšetko ostatné (103 skriptov, 82 súborov s testami, 31 nástrojov, 7 dokumentov)

Zrejmé je jedno: prvá hrateľná verzia mala v README už 17. októbra v šesť ráno vetu o tom, že Silná AI poráža Normálnu v 73 % partií. Meranie, ktoré dnes opakuje nástroj za tri sekundy, bolo hotové v prvých piatich hodinách.

Rast skriptov hryVeľkosť priečinka js/ v kB: 17. 10. ráno 222, popoludní 528, večer 780, o 22:57 876, 20. 10. 2 710.17. 10., 06:40: prvá celá hra222 kB17. 10., 17:05: kampaň a minihry528 kB17. 10., 20:11: úspechy a jazyky780 kB17. 10., 22:57: železný beh876 kB20. 10.: dnešný stav2 710 kBpriečinok js/, súčet všetkých súborov .js, 1 kB = 1 000 bajtov
Veľkosť priečinka js/ v kópiách z 17. októbra a dnes. Posledný stĺpec obsahuje aj päť jazykových katalógov a stovky údajov o hlavolamoch, úspechoch a misiách.

Dôkaz 3: git od 18. októbra

Od prvého záznamu história existuje a je dosť podrobná: 200 záznamov vo všetkých vetvách, z toho 92 z 18. októbra, 100 z 19. a 8 z 20. októbra (k ránu 20. októbra). Autor záznamov je jeden, a 195 z 200 nesie riadok spoluautora (Co-Authored-By) s menom asistenta. To je odpoveď na otázku, ako je možné postaviť takú hru za tri dni: s asistentom, a história to otvorene hovorí.

V histórii sa dá vyčítať rytmus práce:

  • Fázy s dokumentáciou. Každá väčšia vec má nielen kód, ale aj časť v docs/DESIGN.md, ladiaci postup v docs/TUNING.md, riadok v README.md a plán v docs/ROADMAP.md. Dokumentácia fázy býva blízko jej konca.
  • Nezávislé revízie. Osem záznamov má v názve „independent review“ a deväťnásť obsahuje slovo review. Po každej fáze číta kód iný agent, nič nemení a len hlási. Ďalší záznam býva „Fixes after the independent review“.
  • Vetvy podľa fáz. Funkcia Avatar[1] sa stavala po vetvách hero-dice-h1 až h4, záznam hry vo vetve game-record, jazyky vo languages-cs-sr-ru. Vetva zodpovedá jednej fáze alebo kapitole plánu.
  • Paralelná práca. 18. októbra medzi 17:12 a 17:19 vzniklo 26 záznamov o prevode testov do angličtiny a o zlúčení týchto prevodov. Viacero agentov pracovalo súbežne v samostatných pracovných kópiách (worktree-agent-…) a výsledky sa potom zlúčili. Za sedem minút sa takto previedli desiatky súborov.

Dôkaz 4: dokumentácia ako pamäť

Najväčší dôkaz je dokumentácia. docs/DESIGN.md má 434 kB a je „zdrojom pravdy pre neskoršie relácie“, ako sa píše v jeho úvode. Dôvod je praktický: asistent si medzi reláciami (chatmi) nepamätá nič, čo nie je zapísané. Preto sa v projekte zapisuje všetko: rozhodnutia s dátumom a poznámkou, kto rozhodol (autor, alebo návrh asistenta schválený autorom), merania s príkazom, ktorým sa dajú zopakovať, a to, čo sa ukázalo ako pasca.

Plán rozšírení (docs/ROADMAP.md) je písaný ako zadanie pre novú reláciu. Každá z osemnástich kapitol je samostatná úloha a na začiatku stojí návod, ako ju zadať: Prečítaj ROADMAP, najprv „Spoločné pravidlá“, potom kapitolu N. Navrhni plán a otvorené otázky a implementuj, keď sa dohodneme. Je to zvláštna literárna forma: dokument, ktorý je zároveň plán, príkaz a záznam rozhodnutí.

V „Spoločných pravidlách“ stojí jedenásť bodov, z ktorých sa dá vyčítať, čo sa v projekte už zlomilo. Napríklad: Bežné hry sa nesmú zmeniť. Všetko, čo má silu alebo cenu, sa meria hrami AI súperov, nie odhadom. Dáta z úložiska, zálohy a odkazov sú nedôveryhodné. Náhoda sa odvodzuje zo stavu. Každé z nich je jazva zo skúsenosti.

Čo sa z toho dá odvodiť, a čo nie

Čísla sú pôsobivé: za tri a pol dňa vzniklo takmer 40 000 riadkov skriptov, 82 súborov s testami, 31 nástrojov a 5 489 riadkov dokumentácie. Je však dôležité nepovažovať ich za úspech samy osebe.

  • Riadky kódu nie sú kvalita hry. Nič z týchto čísel nehovorí, či je hra zábavná. O tom rozhodujú ľudia, ktorí ju hrajú, a tých bolo zatiaľ málo. Hru hrá aj autor a niektoré zmeny prišli až po hraní (príkladom sú hlavolamy, ktoré sa zdali príliš ľahké, článok o hlavolamoch (pripravovaný článok č. 10); kocky na mape sa po prvom hraní prerobili na okrúhle izometrické).
  • Rýchlosť presúva zdržanie inam. Keď sa kód píše za hodiny, zdržaním sa stáva rozhodovanie a overovanie: čo sa má stať, čo je správne a či sa to naozaj stalo. Preto toľko meraní, testov a revízií.
  • Doba, keď sa hra robí tri dni, je nová. Doom vznikal trinásť mesiacov (november 1992 až december 1993) a Civilization stála podľa autora okolo 170 000 dolárov. Porovnanie dnes nemá zmysel: hry sú iné a nástroje tiež. Ale je to ďalší dôvod, prečo článok Keď bola hra hotová hovorí, že „hotová“ je dnes rozhodnutie.

Ostáva ešte jedna nepríjemná otázka: kto je autor? Odpoveď je, že autorov je viac a nie sú rovnocenní. Rozhodnutia (čo sa stavia, čo sa zahodí, čo je dosť dobré) sú moje a sú zapísané aj s dátumom. Návrhy, kód, merania a väčšinu textu dokumentácie píše asistent. Revízie robí iný agent. Kto v tom vidí podvod, má právo mať iný názor. Pre toho, kto v tom vidí nový spôsob práce, je to téma celej série.

Čo si z toho odnášam

  • Dokumentácia je pamäť. V projekte, kde sa pracuje v oddelených reláciách, je zapísané to, čo sa stane.
  • Rytmus fáz sa dá čítať. Kto sa pozrie na históriu, vidí, kde bol zlom, kde bola revízia a kde fáza skončila.
  • Čísla nie sú hra. Hra sa hodnotí hraním.

Stav z 31. októbra: čo sa zmenilo za jedenásť dní

Tento článok a článok o testovaní (pripravovaný článok č. 13) popisujú stav z 20. októbra. Rovnaké veličiny o jedenásť dní neskôr, 31. októbra 2026:

veličina20. 10.31. 10.
záznamov v gite200956
skripty v js/ (počet súborov .js)103206
súčet veľkostí skriptov v js/2 710 kB6 545 kB
súborov s testami82251
nástrojov (tools/)31107
testov v jednom behu node --test1 2343 314 (3 313 prešlo, 1 preskočený)
dokumentov v docs/725
docs/DESIGN.md434 kB1 815 kB (7 543 riadkov)

Porovnanie treba čítať opatrne. Veľkosť skriptov sa rátala rovnako ako v grafe v článku (súčet všetkých súborov .js v js/), a väčšinu bytov dnes tvoria katalógy prekladov (deväť jazykov), nie pravidlá hry. Najviac záznamov má 30. október: 225; v ten deň sa okrem iného zlúčili testy a nástroje po balíkoch, druhá dosková hra Čiary a hospodárstvo realmov (docs/DESIGN.md §72 až §88). Dokumentácia rástla najrýchlejšie: DESIGN.md vzrástol viac než štvornásobne, čo zodpovedá pravidlu z tohto článku, že asistent si pamätá len to, čo je zapísané. Počet 956 je zo súčasného repozitára, ktorého história sa 24. októbra prepísala (viď vyššie).

Stav z 1. novembra: ešte jeden deň

Ďalší deň, 1. novembra 2026 (zmerané večer, dev vo verzii 0.82.2):

veličina31. 10.1. 11.
záznamov v gite9561 278
skripty v js/ (počet súborov .js)206310
súčet veľkostí skriptov v js/6 545 kB7 032 kB
súborov s testami251293
nástrojov (tools/)107123
testov v jednom behu (posledná pečiatka overenia)3 3143 767 (3 766 prešlo, 1 preskočený)
dokumentov v docs/2529
docs/DESIGN.md1 815 kB2 306 kB

Počty záznamov po dňoch: 29. 10. 108, 30. 10. 225, 31. 10. 229, 1. 11. 144 (do večera). Veľkosť skriptov sa rátala rovnako ako vyššie; väčšinu pribudnutých bajtov tvoria katalógy textov v deviatich jazykoch a nové kroky domovskej obrazovky (články 34 až 39). Rozdiel v počte záznamov 31. októbra (956 podľa zápisu vyššie, 229 záznamov v ten deň podľa dátumov) vysvetliť nevieme: prvé číslo je z jedného merania počas dňa, druhé z celého dňa.

Zdroje a poznámky

  • Dátumy a veľkosti: ls -l --time-style=full-iso a súčet veľkostí skriptov v kópiách dice-wars-1 (Copy) až (Copy 4) a v pracovnom strome (20. 10. 2026). Kópie nie sú v gite.
  • História: git log --all (200 záznamov, 195 s podpisom spoluautora, počty po dňoch cez --format=%ad).
  • Doom a Civilization: výskum k článku Keď bola hra hotová (Wikipédia, Kushnerova kniha Masters of Doom; náklady sú spomienky autorov).
  • Rozhodnutia a pravidlá práce: docs/DESIGN.md (úvod, §13 a §21), docs/ROADMAP.md („Common rules“).
  • Stav z 31. 10. 2026: git rev-list --count dev (956), git log --format=%ad --date=short | sort | uniq -c (počty po dňoch), find js -name '*.js' -exec cat {} + | wc -c (6 544 506 B), find js -name '*.js' | wc -l (206), find tests -name '*.test.js' | wc -l (251), find tools -name '*.js' | wc -l (107), ls docs/*.md | wc -l (25), wc -c docs/DESIGN.md (1 815 102 B), node --test na vetve dev (3 314 testov; priebeh pri zlúčení 31. 10. 2026). Údaje z 20. 10. sú pôvodné čísla článku.
  • Stav z 1. 11. 2026: tie isté príkazy ako pre 31. 10. (git rev-list --count dev 1 278, find js -name '*.js' | wc -l 310, find js -name '*.js' -exec cat {} + | wc -c 7 031 584 B, find tests -name '*.test.js' | wc -l 293, find tools -name '*.js' | wc -l 123, ls docs/*.md | wc -l 29, wc -c docs/DESIGN.md 2 306 419 B) a posledná pečiatka node tools/verify.js --check 6cd1a86 (3 767 testov).

Poznámky

  1. Do verzie 0.80.1 z 1. novembra 2026 sa funkcia volala Hero Dice (pozri Z Hero Dice na Avatar (pripravovaný článok č. 39)). Názvy vetiev hero-dice-h1 až h4 ostali pôvodné. ↩︎