140 likes | 267 Views
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. Cele. Wybór problemów do analizy
E N D
Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil 171016 Analiza porównawcza wybranych metod sztucznej inteligencji w komputerowych grach strategicznychComparative analysis of artificial iteligece methods applied to strategy games
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
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
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.)