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.
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ě (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 |