“Analiza i implementacja wybranych algorytmów sztucznej inteligencji
w grze komputerowej”
wykonał Jarosław Orskipromotor 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ą OpenGL (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 OpenGL (Tao) i C# Ładowanie modeli w formacie 3DS 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:
SharpGLEngine – silnik graficzny
SharpAIEngine – 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 OpenGL● wystarczająca wydajność (ok. 200 fps, GF4200)● 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
Top Related