Prodloužení termínu registrace do soutěže
Termín pro registrace do soutěže byl prodloužen do 31. 1. 2021.
StarCraft II – AI Cup
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č).
Dne 22. 10. proběhl úvodní informační seminář k turnaji. Jeho záznam je dostupný 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.
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í.

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?". V případě, že i tak máte otázky, kontaktujte nás na e-mailové adrese sc2.ai.cup@inf.upol.cz.