14. 6. 2022

Předsezóní testování 2022

Ve spolupráci s aiarena.net bylo spuštěňo předsezonní testování. Více informací naleznete zde.


StarCraft II – AI Cup

Vítejte na hlavní stránce StarCraft II – AI Cup, soutěže organizované studenty doktorského studia Katedry informatiky Přírodovědecké fakulty Univerzity Palackého v Olomouci.

O co v soutěži jde? Cílem je naprogramovat AI bota do populární real-time hry StarCraft II. Jednotlivé týmy či jednotlivci se poté utkají v turnaji, kde mezi vítěze bude rozděleno 10 000 Kč (1. místo 6 000 Kč, 2. místo 3 000 Kč, 3. místo 1 000 Kč).

Záznam úvodního informačního semináře k turnaji z prvního ročníku naleznete zde.

Pokud máte zájem o aktuální informace k soutěži, nezávazně se prosím přihlaste k odběru novinek níže. Pomůžete nám tím soutěž lépe připravit a nepříjdete o důležité informace.

1-3 studenti na jeden tým
1 bot pro každý tým
1 vs. 1 RTS mapa
6 000 Kč pro vítěze
1 turnaj, který rozhodne

Proč StarCraft II?

StarCraft II je jednou z nejpopulárnějších real-time strategií (RTS) s dlouhou historií jak v e-sportu, tak ve výzkumu umělé inteligence.

Po předchozím úspěchu ve hře Go (článek zde)vytvořila firma Deepmind (Google) v roce 2019 bota, který je schopen porazit 99,8 % hráčů na úrovni Grandmaster (článek zde). Hru StarCraft II lze shrnout následovně:

  • Game theory: StarCraft II, podobně jako např. Kámen-nůžky-papír, je hrou, ve které neexistuje nejlepší strategie.
  • Neúplná informace: Na rozdíl od šachu nebo Go, kde má bot úplné informace o prostředí, poskytuje StarCraft II pouze částečné informace. Ty si hráč musí aktivně získáva takzvaným scoutingem.
  • Dlouhodobé plánování: Stejně jako v reálném světě, nemají ve hře StarCraft II všechna rozhodnutí okamžitý efekt. Dlouhodobé plánování je tedy velmi důležité.
  • Real time: Oproti hrám, jako jsou šachy nebo Go, se StarCraft II odehrává v reálném čase.
  • Rozsáhlý action space: Parametrizace hry firmou Deepmind obsahuje action space o velikosti 10^26 možných akcí. Pro srovnání, hra Go má action space o velikosti 361. Bot tedy musí zvažovat obrovské množství akcí.
StarCraft II

Z výše uvedených důvodů jsme se rozhodli některé aspekty hry StarCraft II omezit a připravili jsme vlastní omezenou verzi hry (více informací naleznete zde). Je však dobré vědět, že problém je to škálovatelný a znalosti získané na zjednodušené verzi jsou aplikovatelné na plnohodnotnou verzi StarCraft II.

Proč chtít soutěžit v psaní vlastního AI bota?

Tvorba umělé inteligence je zábavnou cestou k procvičení algoritmického myšlení a programátorské dovednosti. Výsledkem je program, proti kterému můžete sami hrát. Začátek není nikterak složitý a vylepšovat lze skoro donekonečna.

Pro ilustraci, primitivní bot v knihovně Python-sc2 vypadá následovně (kompletní zdrojový kód naleznete zde):


from sc2.bot_ai import BotAI, Race
from sc2.data import Result


class WorkerRushBot(BotAI):
    """Třída reprezentující bota."""

    NAME: str = "WorkerRushBot"
    RACE: Race = Race.Terran

    async def on_step(self, iteration: int):
        """Metoda provedena každou iteraci hry"""
        
        # Jedná-li se o nultou iteraci
        if iteration == 0:
            # Každý worker zaútočí na nepřítele
            for worker in self.workers:
                worker.attack(self.enemy_start_locations[0])

Kde najdu další informace?

Veškeré detailní informace, které budete potřebovat pro psaní prvního bota, naleznete na stránce "Jak začít?". V případě, že i tak máte otázky, připojte se na oficiální Discord server nebo nás kontaktujte na e-mailové adrese tomas.mikula01@upol.cz.

Organizační tým

Jiří Balun
Tomáš Mikula