Sztuczna inteligencja w grach zima 2017/18

Język wykładowy Angielski
Opiekun Jakub Kowalski
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj I2.Z - zastosowania inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi AZ (algorytmika i złożoność obliczeniowa) PD (przetwarzanie danych)

Opis przedmiotu:

**Artificial Intelligence for Games** (przedmiot może być prowadzony w języku angielskim na życzenie studentów) Wykład ma na celu przedstawienie metod sztucznej inteligencji wykorzystywanych na potrzeby gier. Do tematu podejdziemy z trzech stron: omawiając algorytmy służące do grania w gry, proceduralnego generowania ich zawartości oraz wykorzystywane w silnikach gier. Chciałbym zobrazować jak wiele różnorodnych i skomplikowanych algorytmów znajduje się w przeciętnej grze oraz dać możliwość ich zaprogramowania korzystając z multimedialnych platform do walk AI. Oprócz tego znaczna część kursu będzie polegała na omówieniu aktualnie prowadzonych badań w dziedzinie Artificial Intelligence / Computational Intelligence in games. Omówimy sobie m.in. metody AI wspomagające tworzenie gier (głównie oparte na algorytmach ewolucyjnych), ideę i postępy w dziedzinie General Game Playing oraz algorytm MCTS wykorzystywany m.in. w Google DeepMind's AlphaGo. Kurs jest przeznaczony dla osób bezpośrednio zainteresowanych tematyką, a także chcących pogłębić swoją wiedzę związaną z AI - nie tylko w kontekście gier; oraz chcących pogłębić swoją wiedzę związaną z programowaniem gier - nie tylko w kontekście AI. Kurs wymaga dobrej znajomości podstaw Sztucznej inteligencji oraz umiejętności programistycznych. Wykonane w ramach kursu projekty, jeśli będą odpowiednio dobrej jakości, mogą stanowić podstawę do pracy licencjackiej, inżynierskiej lub magisterskiej. **Struktura kursu:** Zaliczenie oparte będzie na: * kilku małych zadaniach (w pierwszej części semestru); * (prawdopodobnie) drobnym egzaminie połówkowym; * projekcie grupowym (2-3 osoby) wykonywanym w drugiej części semestru; * raporcie z projektu zaliczanym do egzaminu. Proponowane tematy projektów to: * implementacja agenta na zawody organizowane w ramach konferencji naukowych poświęconych AI, np. [CIG](http://cig16.image.ece.ntua.gr/competitions/); * wykorzystanie technik proceduralnego generowania zawartości do tworzenia ineteresujących i przydatnych obiektów (najlepiej związanych z grami); * zaprogramowanie ciekawej gry umożliwiającej podpinanie AI stworzonych przez użytkowników; * ... lub też inne zaproponowane przez studentów. **Literatura:** * głównie prace naukowe z dziedziny (udostępniane przez wykładowcę) * N. Shaker, J. Togelius, M. J. Nelson, Procedural Content Generation in Games (<http://pcgbook.com/>) * I. Millington, J. Funge, Artificial Intelligence for Games (2nd Ed.) * M. Buckland, Programming Game AI by Example * S. Rabin (ed.), Game AI Pro^2: Collected Wisdom of Game AI Professionals * S.J. Russell, P. Norvig, Artificial Intelligence A Modern Approach (3rd Ed.) **Wstępny program wykładu:** * Monte Carlo Tree Search, advanced min-maxing * General Game Playing * Search-based Procedural Content Generation * Grammar-based and constraint-based PCG * Game Generation * Movement, pathfinding: A* (real-time, dynamic environment), hierarchical pathfinding, crowds movement * Decision making: decision trees, automata, fuzzy logic, ... * Tactic and Strategy, * NPC behaviour modelling * Neuroevolution in games

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Jakub Kowalski
wt 12:00-14:00 (s. 140) 300 26 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Ćwiczenio-pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Marek Szykuła
śr 14:00-16:00 (s. 107) 15 13 0
Jakub Kowalski
wt 14:00-16:00 (s. 107) 15 13 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Marek Szykuła 312 E-mail, Discord lub Teams.
Jakub Kowalski 324 Konsultacje zdalne. Najlepiej kontakt przez Discord.