Robert Ďurica

Blog ·

Staviam dve hry s AI. Takto vznikli a ako fungujú.

Usage of Empires dostal za pár dní vyše 30 nových verzií a popri ňom vznikla druhá hra, Usage of Empires II. Obe sú o dedine, ktorá žije, ale hrajú sa úplne inak. Tu je, ako ich staviam, ako fungujú a čo je nové.

AIhryvibecodingUsage of Empires

Dve hry vedľa seba: izometrická pixel-art dedina Usage of Empires a jesenná dedina z Usage of Empires II pri jazere

Pred pár dňami som písal, že hra Usage of Empires je hrateľná. Odvtedy sa stalo dosť vecí. Prvá hra dostala vyše 30 nových verzií. A popri nej vznikla druhá, Usage of Empires II. Je to tiež stratégia o dedine, ale s iným hraním.

V tomto článku nájdeš tri veci: ako obe hry vznikajú, ako fungujú a čo je v nich nové.

Hrať Usage of Empires → Pozrieť Usage of Empires II →

Dve hry, dva spôsoby hrania

Pomáha mi predstava, že obe hry sú o tom istom, ale ty v nich stojíš na inom mieste.

  • Usage of Empires (prvá hra) je hra, v ktorej si aktívny. Staviaš budovy, zadávaš osadníkom prácu, ovládaš hrdinu a chodíš s ním do dungeonov. Je to Age of Empires v pokojnejšej verzii, bez PvP a bez nájazdov, ktoré ti zničia dedinu.
  • Usage of Empires II je skôr digitálne akvárko. Dedina žije v reálnom čase a osadníci si väčšinu vecí vymýšľajú sami. Ty si starosta, ktorého nikto nevidí: vyberieš pole, objednáš budovu, zvolaš ľudí. Zvyšok robia oni. Hra chce, aby si sa na ňu večer pozrel a vrátil sa o deň neskôr.

Meno Usage of Empires beriem ako značku pre všetky moje strategické hry o dedinách. Druhá hra nie je pokračovanie prvej. Má nový kód, nový svet a inú myšlienku.

Usage of Empires: pixel-art dedina z výšky s hlavnou budovou, domami, poľami, mlynom a riekou
Usage of Empirestmavší, detailnejší svet, v ktorom hráš ty
Usage of Empires II: svetlá pixel-art dedina so slamenými strechami, poľami, kostolom a mlynom
Usage of Empires IIsvetlejšia dedina, ktorá žije aj bez teba

Ako vzniká prvá hra: malé kroky a pamäť

Úplne na začiatku som urobil chybu, o ktorej som písal v prvom článku: dal som AI jeden obrovský prompt a dostal som hru, ktorú sa nedalo upravovať. Dnes robím opak. Každá zmena je jeden malý krok a každý krok má číslo. Teraz sme pri kroku 109.

Ako vyzerá taký krok:

  1. Poviem, čo chcem, často len pár vetami z telefónu. Aj s preklepmi, Claude si ich vie vyložiť.
  2. Claude zmenu napíše a sám ju vyskúša v prehliadači. Kontroluje rôzne veľkosti telefónov na výšku aj na šírku, lebo hrám hlavne na iPhone.
  3. Do súboru s poznámkami o hre sa zapíše, čo sa zmenilo a prečo. Tento súbor má dnes vyše tisíc riadkov. Z neho AI vie, čo sme sa dohodli, aj keď začíname nový rozhovor.
  4. Hra sa vydá na GitHub a ja ju hneď otvorím v telefóne.

Technicky je prvá hra jeden súbor. Beží v prehliadači na engine Phaser, svet sa ukladá v telefóne a z plochy ide aj bez internetu. Od kroku 86 má aj angličtinu: všetky texty sa prekladajú za behu, takže slovenský kód sa nemusel prepisovať.

Moju úlohu som si ujasnil: technické veci rozhoduje Claude, o hre rozhodujem ja. Keď mi prišla hra s jaskyňou, kde príšery stáli v stenách, nepísal som kód. Poslal som screenshot a napísal som, čo je zle.

Čo je nové v Usage of Empires

Od posledného článku pribudlo toho veľa. Tu je výber toho, čo hráč naozaj pocíti.

Dedina sa rozrastá sama

  • Hlavná cesta. Ciele sú teraz v 5 kapitolách: Prvá iskra, Dedina ožíva, Cez rozbitý most, Kov a hradby, Plameň predkov. Za každú kapitolu dostaneš odmenu. Okrem nich sú voľné ciele, ktoré ťa nikam nenútia.
  • Nové osady. Keď má dedina dosť ľudí, jeden z nich sa vyberie ďaleko a nájde dobré miesto. Ty rozhodneš, či tam osadu založíš. Potom každých 10 hodín reálneho času pribudne budova, aj keď nehráš. Cesty medzi osadami sa vychodia samy a keď po nich ľudia prejdú dosť krát, vydláždia ich kameňom.
  • Pracovné zóny. Drevorubač, zberač aj kameník teraz robia okolo svojej chaty. Pri chate sa postupne sadia nové stromy, kvietky a bobule. Okolie chaty sa tak mení pred očami a vidno, čo ktorý človek robí.

Ekonomika a veľká mapa

  • Nové reťazce výroby. Pílnica zo dreva robí dosky. Kováčska dielňa z dosiek a železa robí náradie. Tkáčovňa robí látku. Pivovar mení jedlo na zlato. Výroba sa sama zastaví, keď tovaru je dosť.
  • Medzisklad a nosiči. Suroviny sa odkladajú bližšie k lesu a lomu a nosiči ich rozvážajú tam, kde chýbajú.
  • Banka a rozšírenie mapy. Zlato sa ukladá v Banke bez limitu. Za zlato v nej kúpiš nové regióny sveta (100, 250 a 500 zlata). Každý má vlastnú krajinu, suroviny a po kúpe v ňom vznikne nová osada. Tvoj svet teda rastie podľa toho, ako sa ti darí.
Menu Stavať v Usage of Empires: budovy rozdelené do kategórií, prvá kategória Suroviny
Menu Stavaťbudovy sú rozdelené do kategórií

Dungeony

  • Zóny po piatich poschodiach. Slizové jaskyne, Kostnica, Žeravé hlbiny, Ľadová priepasť a Prázdnota. Každá má iné farby a iné príšery. Po bossovi sa odomkne Skratka, takže nezačínaš vždy od začiatku.
  • Krypta predkov. Tajný dungeon pod Divom sveta. Dnes je to Ohnivé ruiny s lávou a bossom Večný ohnivý golem.
  • Smrť nič nestojí. Keď padneš, skúsiš to znova na tom istom poschodí. Hra ťa netrestá.
  • Najhlbšie sa dá ísť na 50. poschodie (v krypte na 15.). Ďalších bossov a poschodia budeme pridávať postupne.
Ohnivé ruiny v Usage of Empires: hrdina s palicou, lávové mláky a ohniví škriatkovia na tmavej podlahe
Ohnivé ruiny7. poschodie krypty. Lávovým mlákam sa treba vyhnúť

Drobnosti, ktoré robia hru hrou

  • Duch dediny. Raz za hru príde duch a osadníci sa s ním rozlúčia. Scénka sa strihá do hudby. Nebudem ti prezrádzať koniec, len že hrdina je v ňom trochu neslušný.
  • Štyria hrdinovia na výber a angličtina v menu.
  • Upratané menu stavieb. Stavby sú v kategóriách a na telefóne ich je vidno naraz. Tutoriál už neprekrýva tlačidlá a správy z hry sú na telefóne vpravo hore.

Usage of Empires II: ako vznikla

Kód druhej hry vznikol za posledné dva dni a od prvej sa líši už spôsobom, akým vznikla. Prvá rástla po krokoch z prázdnej lúky. Pri druhej som najprv napísal plán: o čom hra je, čo v nej nebude a ako bude vyzerať svet. Až potom prišiel kód. Za tie dva dni sme spravili 26 verzií.

Nápad je jednoduchý. Svet sa náhodne vygeneruje a odkrýva sa postupne, ako v Minecrafte. Osadníci vyrazia na výpravy a objavujú jazerá, púšte, močiare aj ľadové pláne. Mapa má biómy: brezový háj, horská lúka, močiar, tundra, zlatý háj. Hra beží v jednom období, v ranom stredoveku.

Mapa sveta v Usage of Empires II: dlhý pás zeme s osadou Rybnik, dedinou Horka Oak, Veľkými vodopádmi a Starým majákom
Mapa svetaodkrytá krajina, osady a nájdené divy sveta (hviezdičky)

Ako Usage of Empires II funguje

  • Reálny čas. Deň a noc, ročné obdobia aj počasie idú podľa hodín v Bratislave. Počasie berie hra z verejnej služby Open-Meteo. Ak sneží v Bratislave, sneží aj v hre.
  • Osadníci sa rozhodujú sami. Zbierajú, pestujú, stavajú, chodia na výpravy a vychodia cesty. Starosta (hráč) ich len usmerní. Dedina nikdy nestojí. Keď nie je čo robiť, upratujú okolo domov alebo sadia stromy.
  • Divy sveta. Každý biom má svoj div: Zlatý strom, Ľadové veže, Chatrč na koloch, Pyramída, Ostrovný chrám a ďalšie. Je ich spolu 18 a ukryté sú vo veľkých kusoch svojho biómu. Nájdeš ich, až keď tam osadníci prídu pešo alebo loďou. Všetky nájdené sú v Knihe, albume divov. Koľko ich je, ti hra ukáže až vtedy, keď osadníci nájdu všetky tri kúsky starého zvitku.
  • Každý div dá bonus. Napríklad viac dreva, kameňa, jedla alebo nových obyvateľov. Osady sa zakladajú najmä pri divoch (dostanú o 30 % väčší dar) a v bohatých krajoch.
  • Ekonomika. Každá osada má vlastný sklad a pokladnicu. Čo sa nezmestí do skladu, sa predá za mince. Ceny sa menia podľa ponuky a dopytu a osadníci vozia tovar z dedín, ktoré ho majú dosť, do dedín, kde chýba.
  • Príroda sa vracia. Z pňov vyrastajú nové stromy, skaly dorastú a kríky sa obnovia. Nič, čo osadníci používajú, nemôže navždy dôjsť.
Kniha v Usage of Empires II: album divov sveta, vybraný Starý maják, ktorý dáva dedine +6 % jedla z každého nákladu
Kniha divov svetaStarý maják: +6 % jedla z každého nákladu. Našiel ho Milan, jeden z osadníkov

Čo je pod kapotou

Celý svet beží v jednom súbore s názvom sim.js. Je to čistá simulácia bez grafiky. Rovnaký súbor beží v prehliadači a môže bežať aj na serveri. Je to dôležité: svet je deterministický, čiže z rovnakého stavu a rovnakého počtu krokov vyjde vždy to isté. Prehliadač tak môže svet simulovať aj medzi uloženiami a nerozíde sa so serverom.

Server je pripravený: každú minútu nechá svet „dožiť“ do súčasnosti a uloží ho. Zatiaľ ho nemám zapnutý, takže hra beží ako test svet, ktorý žije len v tvojom prehliadači. Má rýchle pretáčanie (až 240×, deň za 6 minút), prepínač ročných období a počasia a nový svet jedným tlačidlom. Keď server zapnem, ktokoľvek sa bude môcť pozrieť na živý svet a len ja, ako starosta, ho budem môcť ovplyvňovať.

Chyby, ktoré boli vidieť

Pri novom svete som raz videl stromy, domy a ľudí stáť na vode. Hra si po stlačení „Nový svet“ ponechala obrázok zeme zo starého sveta a nakreslila na neho nový. Oprava je v jednom pravidle: obrázok zeme sa zachová, len keď ide o ten istý svet.

Súvisí s tým druhá vec, na ktorej stojí celá hra. Svet sa objavuje po kúskoch a každý kúsok musí vyjsť rovnako bez ohľadu na to, v akom poradí ho objavíš, a rovnako aj po načítaní uloženej hry. Preto sa kúsok mapy generuje len zo zeme, nikdy z toho, čo ľudia postavili. Na toto máme testy, ktoré to kontrolujú.

Takéto pravidlá si zapisujeme. Druhá hra má v README zoznam „pravidiel pre každý update“. Napríklad: každý nový biom musí dostať vlastný div sveta. Hra sa dokonca odmietne spustiť, ak nejaký biom nemá div alebo naopak. Je to ten istý trik ako pri prvej hre: AI nezabudne, na čom sme sa dohodli.

Čo som sa naučil z dvoch hier naraz

  • Malé kroky vyhrávajú. Prvá hra má 109 krokov a každý viem vrátiť.
  • Pamäť v súbore je lepšia ako pamäť v hlave. Pravidlá a rozhodnutia patria do poznámok, nie do chatu.
  • Najprv plán, potom kód. Druhá hra vznikla rýchlejšie, lebo som vedel, čo chcem.
  • Testy nie sú pre programátorov. Sú to poistky, aby AI nepokazila to, čo už funguje.
  • Telefón je pravda. Hra, ktorá vyzerá dobre na počítači, nemusí fungovať na iPhone. Preto skúšam všetko tam.

Čo ďalej

  • Usage of Empires: ďalšie poschodia a bossovia, ďalšie regióny mapy a nová grafika pre prístav a loďky. Hra sa stále ukladá len v tvojom prehliadači, tak si rob zálohu sveta.
  • Usage of Empires II: zapnúť server, aby dedina žila aj keď nikto nesedí pri počítači, a pridať ďalšie biómy s novými divmi sveta.

Obe hry sú beta. Ak ich vyskúšaš, napíš mi, čo ťa nudilo, čo si nepochopil a čo sa pokazilo. Presne to potrebujem vedieť.

Hrať Usage of Empires → Pozrieť Usage of Empires II →

Chceš si niečo také vyskúšať sám? Na 3-hodinovej session ťa to naučím na tvojich vlastných veciach.

15 min hovor zadarmo