12. 10. 2020

Úvodní informační seminář k turnaji

Vzhledem k aktuální situaci proběhne úvodní informační seminář k turnaji online 22. října v 11:30.


StarCraft II – AI Cup 2020/2021

Vítejte na hlavní stránce StarCraft II – AI Cup 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č).

Na začátku zimního semestru akademického roku 2020/2021 proběhne úvodní informační seminář k turnaji. Samotný turnaj pak proběhne na konci zimního zkouškového období (únor 2021, přesný termín upřesníme).

Pokud již víte, že máte o soutěž zájem, 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ě:


  import sc2
  from sc2 import run_game, maps, Race, Difficulty
  from sc2.player import Bot, Computer

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

      async def on_step(self, iteration):
          '''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])

  # Spustí samotnou hru
  # Mapa "sc2-ai-cup-2020"
  # Bot vs. Vestavěný bot, obtížnost VeryEasy
  # Poběží v reálném čase
  run_game(maps.get("sc2-ai-cup-2020"), [
      Bot(Race.Terran, WorkerRushBot()),
      Computer(Race.Terran, Difficulty.VeryEasy)
  ], realtime=True)

Kde najdu další informace?

Veškeré detailní informace, které budete potřebovat pro psaní prvního bota, naleznete na stránce "Jak začít?". Stránku budeme průběžně aktualizovat.