Göm menyn

TDDD92 AI-projekt


Laborationsserien och den första agenten

Mål: Labbserien

Det praktiska arbetet under HT1 inleds med en relativt kort laborationsserie som normalt utförs i par. Labbarna är inte ett examinationsmoment i sig själva, utan en förberedelse inför det som faktiskt examineras. Målet är därför att samtliga kursdeltagare ska ges en möjlighet att:

  • Undersöka hur StarCraft II fungerar i praktiken.

  • Lära sig arbeta med programmeringsgränssnittet till StarCraft, vilket kommer att behövas i de senare stegen.

  • idéer och inspiration inför den individuella utredningen (examinationsmoment UPG2) och det gemensamma utvecklingsprojektet (examinationsmoment UPG1), samt en bättre förståelse för vad som faktiskt är möjligt och rimligt att genomföra inom kursen.

Anmälan: Labbserien

Ni anmäler er till den inledande labbserien i WebReg och ser själva till att bilda jämna par så långt detta är möjligt. Labbgrupperna kommer inte att påverka sammansättningen i de slutliga projektgrupperna (bortsett från att många som har arbetat ihop själva kan vilja fortsätta i samma projekgrupp).

När ni har anmält er i WebReg kommer Gitlab-projekt automatiskt att skapas på gitlab.liu.se och ni kommer att få epost med länk till projektet. Detta repo ska användas för gruppens arbete under labbarna. Nya projekt/repon kommer att skapas för projektarbetet som sker i större grupper.

Scriptet körs med jämna mellanrum men det kan dröja något från anmälan till att projektet skapas.

Det git-repo som skapas är en fork från https://gitlab.liu.se/starcraft-ai-course/sc2-python-bot. Det innehåller redan en startpunkt i form av en passiv agent baserad på CommandCenterPy.

Genomförande: Labbserien

Eftersom labbarna inte är examinerande, finns en hel del frihet i hur man genomför arbetet. Samtidigt är det studentens ansvar att man förstår det som lärs ut i labbarna inför kommande uppgifter! Följande gäller:

  • För labbserien arbetar vi normalt i par – men om någon "blir över" kan vi ha någon grupp om 3 personer. Det ger en möjlighet att starta snabbt utan att man behöver bestämma redan från början hur man vill bilda de stora projektgrupperna. Man får också möjlighet till diskussion inom smågrupperna utan att någon helt faller utanför.

  • Det är tillåtet att använda egen kod från tidigare kurser (TDDE25 i StarCraft II) och att både diskutera, samarbeta och låna kod över gruppgränserna. Som sagt, syftet är att skapa en bas för vidare arbete, inte att examinera det enskilda arbetet.

  • Men tänk samtidigt på att ni kommer att behöva erfarenheten av det egna arbetet. Alltför mycket samarbete i den första fasen kan leda till att ni inte förstår hur den egna basagenten fungerar eller hur den pratar med StarCrafts API, vilket ger problem under det senare arbetet.

    Om du inte har arbetat med StarCraft II tidigare: Samarbeta med din labbpartner och fokusera särskilt på att förstå API:et och Starcraft II som spel.

    Om du har arbetat med StarCraft II i t.ex. TDDE25: Du är antagligen mycket bättre på programmering nu. Välj noga om du vill ta med gammal kod eller inte. Fräscha upp minnet när det gäller API-anrop. Gå genom den nya extra laborationen med extra felsökning. Strukturera upp din kod.

    Om bara en i ett par har arbetat med StarCraft II: Tänk på att alla behöver förstå vad som händer. Fall inte i fällan att klippa och klistra gammal kod utan att veta vad som händer.

  • Fokusera på att skapa en bra och välstrukturerad grund för vidare arbete. Poängen är inte att få den bästa agenten i detta skede (HT1), utan att skapa en "baseline"-agent som ni kan göra mycket bättre när ni väl arbetar med AI-tekniker. Det betyder också att ni inte ska ta med de bästa och smartaste beteendena från en gammal TDDE25-agent – senare vill vi jämföra en väldigt enkel och grundläggande agent med vad som händer när ni lägger till smartare beteenden.

Mål: Första agenten

Labbserien följs av att varje projektgrupp om 5-6 personer skapar en gemensam grundläggande agent som på enklast möjliga sätt (utan AI-tekniker!) kan spela StarCraft, så att...

  • ...varje gruppmedlem har en bättre utgångspunkt för att implementera den valda AI-tekniken under HT2, med färre beroenden på andra personers arbete under gruppfasen.

  • ...det finns en "baseline"-agent vars prestationer kan jämföras med resultat av att implementera en AI-teknik.

  • ...grunderna läggs till den teknikintegration som är mycket viktig under grupparbetet.

  • ...gruppen får en fungerande agent, som redan i slutet av första perioden kan börja testas mot andra gruppers agenter och den inbyggda funktionaliteten i StarCraft.

Denna agent ska vara klar innan slutet av HT1 och kommer då att testas. Mer information kommer.

Genomförande: Första gemensamma agenten

Även den första gemensamma agenten är icke examinerande och får genomföras i samarbete med andra.


Sidansvarig: Jonas Kvarnström
Senast uppdaterad: 2021-09-21