Analiza i implementacja wybranych algorytmw sztucznej inteligencji w
“Analiza i implementacja wybranych algorytmów sztucznej inteligencji w grze komputerowej” wykonał Jarosław Orski promotor pracy: mgr Szymon Smaga
Agenda ● ● ● Cele pracy Założenia gry, wymagania dla AI Wybrane algorytmy i ich warianty A*, metody podziału przestrzeni poszukiwań FSM i NFA Implementacja Engine graficzny Implementacja algorytmów Możliwy rozwój projektu Prezentacja aplikacji
Cele Pracy ● ● ● Zbadanie i zaimplementowanie wybranych algorytmów AI w grze komputerowej Zbadanie współpracy platformy. NET i języka C# z otwartą bilblioteką Open. GL (Tao) Zbadanie wydajności C# jako narzędzia do tworzenia trójwymiarowych gier komputerowych
Założenia gry ● ● ● Pojedynek dwóch czołgów na wirtualnym polu walki Każdy posiada pewną prędkość poruszania się, ostrzału i poziom energii Trafienie przeciwnika zmniejsza poziom energii Jej poziom można odnowić wracając do bazy własnej W sytuacji awarynej można użyć dopalacza Zwycięża czołg, który pozbawi przeciwnika całej energii
Wymagania dla AI ● ● ● Poruszanie się po planszy gry Omijanie przeszkód Możliwość badania otoczenia Reakcja na zmianę warunków Podejmowanie decyzji na podstawie odbieranych sygnałów Wybrane algorytmy: A*, FSM
Wybrane algorytmy: A* ● ● Popularny algorytm wyszukiwania ścieżki Przeszukuje przestrzeń stanów i wybiera optymalny z uwagi na koszt ruchu Koszt całkowity = koszt dotychczasowy + estymacja kosztu do celu Szybkość działania, wybór stanu sąsiedniego, estymacja kosztu docelowego zależą od sposobu podziału przestrzeni
A*: siatka prostokątna ● ● ● Obszar gry podzielony równomiernie w kierunku x i y Sąsiad = węzeł o indeksie różnym o 1 Estymacja kosztu do celu metodą Manhattan + Naturalność podziału + Łatwość analizy i wykrywania błędów - Liczne stany nadmiarowe - Trudność doboru rozmiaru siatki - Konieczność oznaczenia stanów zabronionych
A*: punkty widoczności ● ● ● Węzły wyznaczone przez wypukłe wierzchołki przeszkód (+ margines na obrót obiektu) Sąsiad wyznaczony przez linię widoczności Estymacja kosztu docelowego przez różnicę współrzędnych + Zmniejszona ilość węzłów, krótszy czas przeszukiwania + Niezależność od wielkości obiektów - Trudniesze wyznaczenie sąsiednich węzłów - Trudniejsze pozycjonowanie węzłów - Trudniejsza analiza
Automat skończony ● ● ● Dokładniej: Automat o skończonej liczbie stanów Algorytm podejmowania decyzji na podstawie dostępnych informacji Zmiana stanu obiketu na podstwie docierającego sygnału i bieżącego stanu
FSM – automat deterministyczny ● Stałe przejście na podstawie danego sygnału + Zwarty zapis (w postaci tablicy) + Duża szybkość - Przewidywalność “zachowań” - Mała elastyczność (brak mechanizmów uczenia się)
NFA – automat niedeterministyczny ● ● Z danym sygnałem związane drzewo przejść Wybór danej gąłęzi losowy +Nieprzewidywalność “zachowań” - Złożony zapis - Trudniejsza analiza
Implementacja ● ● Silnik graficzny: Oparty na Open. GL (Tao) i C# Ładowanie modeli w formacie 3 DS Prosty system cząsteczkowy Podstawowy pomiar wydajności: fps Możliwość modyfikacji niektórych parametrów renderingu (przezroczystość, oświetlenie) w trakcie pracy aplikacji Detekcja kolizji Oparta na OBB
Implementacja AI ● Podsystem AI Możliwość wyboru trybu pracy (wariantu) zaimplementowanych algorytmów Wizualizacja pracy Sygnały przekazywane z wykorzystaniem mechanizmu zdarzeń
Sharp Tankz ● ● W pełni obiektowa (C#) Główne klasy: Sharp. GLEngine – silnik graficzny Sharp. AIEngine – implementacja AI Agent – obiekt widoczny na ekranie
Podsumowanie ● Cele osiągnięto A* jest skutecznym algorytmem w zadanych warunkach prawidłowo wyznacza optymalną drogę ● duża szybkość wyszukiwania (szczególnie dla podziału punktami widoczności) FSM sprawdzają się w kontroli agenta szybkość działania, ● różnorodnośc zachowań, ● nieprzewidywalność (NFA) C# dobrze współpracuje z Open. GL ● ● wystarczająca wydajność (ok. 200 fps, GF 4200) brak problemów z kompatybilnością
Możliwości rozwoju projektu ● ● ● Rozwój systemu AI – algorytmy samouczące się (sieci neuronowe) Rozwój silnika graficznego – uszczegółowienie modeli, opracowanie tekstur, dodatkowe efekty Rozwój pozostałych podsystemów – dodanie obsługi dźwięku, gra wieloosobowa przez LAN Prezentacja: Sharp Tankz
- Slides: 16