The Craft of War / protivník pod kapotou
Jak myslí protivník
Umělá inteligence. To zní skoro až nebezpečně vznešeně. Člověk si pod tím představí protivníka, který sleduje ekonomiku, plánuje útok o tři tahy dopředu a večer si možná před spaním přečte Sun-c'ovo Umění války.
Tady ne. Protivník v The Craft of War (ano hru jsem raději přejmenoval, protože název Warcraft je patentovaný a vzhledem k tomu, jaký rozruch tento port vyvolal,... no prostě jistota, je jistota) je podstatně přízemnější tvor. Má několik časovačů, sleduje, co mu právě chybí, a snaží se to napravit. Nemá kasárna? Postaví kasárna. Nemá místo pro další jednotky? Postaví farmu. Má dost vojáků? Pošle je na vás. Žádná magie. Jen dost pravidel na to, aby byl otravný přesně tak akorát.
A hlavně: co může, dělá stejnými pravidly jako hráč. Stejné ceny, stejné stavění, stejné hledání cesty i bojové výpočty. Druhá implementace téže věci by totiž byla hlavně druhá sada chyb. Jednu sadu si zvládnu vyrobit úplně sám.
Ekonomika protivníka stojí na dělnících – u orků tedy peonech – a začíná tím, že se snaží držet alespoň tři. Kdyby mu zůstal jediný a ten padl, může si jít ekonomiku leda nakreslit na zeď. Proto pokud má pracovníků málo, kupuje napřed dělníka a teprve potom vojáky. Noví dělníci se střídají mezi zlatem a dřevem. První jde ke zlatu, další do lesa, další zase ke zlatu. Těžba zlata tak má lehkou převahu, ale dřevo se nezastaví. Což je docela důležité, protože farma stojí 300 dřeva, kasárna 500 a věž 300. Bez dřevorubce by byl protivník velmi bohatý člověk bez střechy. Strom se vybírá podle nejmenší vzdálenosti v dlaždicích. Pro otázku „který les je blíž?“ to stačí. A dřevorubce si nesmí ukrást stavba, jinak by si ekonomika velmi efektivně podřízla větev, na které sama sedí.
Protivník nemá žádný velkolepý urbanistický plán. Staví ve chvíli, kdy na něco narazí. Nemá kde bydlet? Farma. Nemá odkud vyrábět vojáky? Kasárna. Strážní věž a kovárna jsou výjimka. Ty se zkoušejí stavět při odchodu útočné vlny. Staví se vždy jen jedna z nich a protivník má maximálně dvě věže. Samotné stavění probíhá stejně jako u hráče: dělník dostane rozkaz, dojde na místo, objeví se staveniště a zůstane u práce až do dokončení. Žádné „AI si budovu teleportuje za záda, protože může“.
Nábor se zkouší každé dvě sekundy. Pořadí je pevné: pěšák, lučištník, pěšák, lučištník, katapult. Katapult jsem přidal hlavně proto, že bylo poněkud trapné mít ve hře obléhací stroj, který může používat hráč, zatímco protivník o jeho existenci zřejmě nebyl informován. Pokud na aktuální jednotku nemá zdroje, zkusí hned další možnost. A hlavně se nic neodečte dřív, než je jisté, že na jednotku opravdu má. A ano, kdysi náborový časovač omylem utrácel i za hráče. Jakmile jsem přidal původních 2000 počátečního zlata, hráč si zhruba za pětadvacet sekund pořídil armádu úplně sám. Krásná automatizace. Jen ne úplně ta, kterou jsem chtěl.
Kovárna nabízí meč, štít a šíp, každý ve dvou stupních. Protivník vždy vybírá větev, ve které je nejvíc pozadu. Navíc si nechává rezervu přibližně 1200 zlata a 600 dřeva, aby po nákupu vylepšení pořád zbylo něco na samotnou armádu. Jinak by si mohl koupit krásně nabroušený meč a pak zjistit, že už nemá za co koupit vojáka, který by ho držel. Ekonomicky čisté, vojensky trochu horší.
Původní chování posílalo vojáky do útoku hned po náboru. Každé dvě sekundy tedy přiběhl jeden. To není armádní útok. To je fronta na přepážce. Teď nová jednotka čeká ve vlastním dvoře. Jakmile se jich sejde dost, celá skupina vyrazí k hráčově základně. Velikost vlny roste: 3, 5, 7, 9 jednotek. Kdyby protivník čekal na devět, ale mohl jich uživit jen sedm, stál by poslušně na dvoře až do konce světa. Proto po dvou minutách vyrazí s tím, co má.
Pohyb byl dlouho jedna z těch částí, které vypadají dobře, dokud se na ně člověk nezačne dívat trochu moc pozorně. Jednotka chtěla jít k cíli, narazila do stromu, zkusila objížďku… a občas se rozhodla, že nejlepší cesta je chodit sem a tam, dokud člověk neumře stářím. Nakonec jsem přešel na pole vzdáleností. Od cíle se přes mapu rozlijí čísla a každá průchozí dlaždice ví, jak daleko je od cíle. Jednotka se pak podívá na sousedy a jde na nižší číslo. Jinými slovy: jde z kopce. Na 400 náhodně vybraných dvojic průchozích míst vyšla starší hrubá chůze 106krát, sledování zdi 295krát a pole vzdáleností 400krát ze 400. To je přesně ten typ měření, který trochu zkazí radost z předchozí práce a výrazně zlepší práci budoucí. Jedno pole může sdílet celá skupina mířící na stejné místo. Po příchodu se jednotky rozprostřou kolem cíle, protože devět vojáků nacpaných do jednoho spritu vypadá méně jako armáda a více jako grafická chyba.
Statistiky jednotek, životy, brnění, poškození i dostřel vycházejí z původních hodnot hry. Protivník si cíl vybírá jednoduše: útočí na nejbližšího nepřítele, kterého má v dosahu. Hledání je rozložené v čase, aby se nemuselo všechno přepočítat v jednom snímku. Protivník tedy není telepatický. Jen občas vypadá, že vás zahlédl přesně ve chvíli, kdy jste doufali, že ne. Strážní věže se chovají podobně jako lučištníci, jen se – překvapivě – nehýbou. Katapult zasahuje oblast kolem dopadu. Budovy mají vlastní životy, dají se zničit a dělníci je mohou opravovat.
Neprovádí skutečný průzkum mapy, neodhaduje vaše plány a nevede si mentální mapu vašeho impéria. Jednotky reagují na nepřátele ve svém okolí a útočné vlny znají cíl, ke kterému mají dojít. Ani obrana zatím není žádný generálský majstrštyk. Když zaútočíte na základnu, jednotky poblíž si vás všimnou a začnou bojovat, věže střílejí, ale nikdo dramaticky nesvolá dělníky z dolu ani nepřesměruje celou ekonomiku na nouzovou obranu. Je to schválně jednoduché. Protivník má hrát stejnou hru jako hráč a být dostatečně živý, ne předstírat, že pod plastem Nextu sedí malý Deep Blue.
Kampaňové mapy už nepoužívají jen terén a pár náhodně přidaných objektů. Převádějí se i původní jednotky, budovy, doly a počáteční zdroje, takže mise začínají mnohem blíž tomu, jak byly navržené původně. Pokud původní mapa obsahovala více nepřátelských vlastníků, dnešní engine je slučuje do jedné protivnické strany. Obecně mise končí zničením nepřátelských jednotek a budov, některé zvláštní cíle už se přebírají také. Záchranné a eskortní scénáře ještě nejsou kompletní.
Další vývoj chci držet při zemi. Nechci z protivníka dělat stroj, který vás porazí jen proto, že ví věci, které vědět nemůže. Spíš postupně doplnit věci, které dávají smysl v rámci stejných pravidel. Především lepší obranu vlastní základny, chytřejší práci útočných vln a postupně i další typy jednotek včetně těch pokročilejších.
Takže myslí?
V lidském smyslu samozřejmě ne. Ale těží, staví, najímá, vylepšuje, shromažďuje vojáky, hledá cestu, útočí a reaguje na to, co se kolem něj děje. A hlavně to dělá bez podvádění stejnými pravidly jako hráč. Na osmibitový stroj mi to přijde jako docela slušný začátek. A pokud vás porazí, můžete si aspoň říct, že vás nepřechytračil superpočítač. Jen pár časovačů. To někdy bolí víc.