Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil 171016 Analiza porównawcza wybranych metod sztucznej inteligencji w komputerowych grach strategicznych Comparative analysis of artificial iteligece methods applied to strategy games Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil 171016
Cele Wybór problemów do analizy Implementacja rozwiązań Propozycja własnych modyfikacji Porównanie rozwiązań, efektywności algorytmów Stworzenie prostej gry strategicznej
Sztuczna inteligencja Co postanowiłem poruszyć: Ograniczony stan wiedzy Uwzględnienie w grafach ograniczonej wiedzy Szukanie ścieżki Przekształcanie siatki na graf (różne metody) Algorytm A* i jego modyfikacje Najkrótsza droga (różna wydajność) Logika rozmyta i Automaty stanów skończonych Cele i ocena stanu „agentów” Nasłuchiwanie, a komunikaty
Kryteria analizy rozwiązań Czas działania Wpływ na skomplikowanie gry Wpływ na realizm
Plansza gry Rozgrywka na w 2 wymiarowej przestrzeni, na kwadratowej siatce Siatka jest rozmiaru 40x40 pól W celu przeszukiwania drogi siatka odwzorowywana jest na graf
Ograniczony stan wiedzy Gracz i SI widzi tylko określoną część mapy - realizm Pozostała część mapy pokryta jest tak zwaną „mgłą wojny” Wpływ na przeszukiwanie drogie: Częste generowanie grafu Częste dodawanie wierzchołków Mniejszy graf – prostsze przeszukiwanie
Reprezentacja poprzez graf Operacje na siatce Brak oddzielnych algorytmów generowania grafu! Spójne obliczenia Nieefektywne przeszukiwanie drogi Macierz sąsiedzctwa Tablica (V-1)x(V-1) (opisuje relacje wszystkich wierzchołków) Dużo pamięci Łatwe dodawanie i usuwanie krawędzi Lista sąsiedzctwa Przetrzymuje wszystkie krawędzie Nieefektywne w przypadku grafu z wieloma krawędziami
Reprezentacja poprzez graf
Algorytmy wyszukiwania drogi Algorytm Bellmana-Forda i Algorytm Dijkstry Przeszukują cały graf Nie uwzględniają kierunku Dobre dla nieregularnych grafów Algorytm A* Uwzględnia kierunek! Bardzo dobry dla regularnych grafów (np. siatki) Opiera się na heurystycznym Algorytm A* z modyfikacjami Wygładzanie drogi
Pierwsze wyniki pomiarów „Rzadki” graf – mało połączeń „Gęsty” graf – dużo połączeń
Logika rozmyta gracza SI Gracz sterowany przez SI określa swoje cele przez logikę rozmytą Stany zmieniane są przez nasłuchiwanie o zmianach lub komunikaty Obiekty należące do gracza posiadają osobny zestaw stanów Implementacja kolejki komunikatów Przy nasłuchiwaniu co klatkę widoczne opóźnienia
Podsumowanie metod Metoda Czas działania Wpływ na realizm Wpływ na skomplikowanie Trudność implementacji Mgła wojny Ma wady i zalety Duży Średna Operacje na siatce Długi Brak Łatwa Macierz sąsiedzctwa Krótki Lista sąsiedzctwa Algorytm A* Trudna Algorytm Bellmana-Forda Mały Algorytm Djikstry Logika oparta na nasłuchiwaniu Logika oparta na komunikatach
Bibliografia: SI w grach Perełki programowania gier. Vademecum profesjonalisty. Dante Treglia, Mark DeLoura. Tom 1. http://aigamedev.com/ Forum, artykuły, gotowe rozwiązania (ang.) http://www.gameai.com/ Lista dyskusyjna, zbiór publikacji (ang.) Grafy, drzewa, algorytmy genetyczne Algorytmy i struktury danych - Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman
Bibliografia: Unity 3d Unity 3D Game Development by Example Beginner's Guide - Ryan Creighton (ang.) Unity Game Development Essentials - Will Goldstone (ang.) unity3d.com/ Unity: Game Development Tool (ang.) unity3d.com/support/documentation/ScriptReference/index.html (ang.) unity3d.com/support/documentation/Manual/index.html (ang.)