“Analiza i implementacja wybranych algorytmów sztucznej inteligencji w grze komputerowej”

16
“Analiza i implementacja wybranych algorytmów sztucznej inteligencji w grze komputerowej” wykonał Jarosław Orski promotor pracy: mgr Szymon Smaga

description

“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 - PowerPoint PPT Presentation

Transcript of “Analiza i implementacja wybranych algorytmów sztucznej inteligencji w grze komputerowej”

Page 1: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

“Analiza i implementacja wybranych algorytmów sztucznej inteligencji

w grze komputerowej”

wykonał Jarosław Orskipromotor pracy: mgr Szymon Smaga

Page 2: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 3: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 4: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 5: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 6: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 7: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 8: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 9: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 10: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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ę)

Page 11: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 12: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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

Page 13: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

Implementacja AI

● Podsystem AI Możliwość wyboru trybu pracy (wariantu)

zaimplementowanych algorytmów Wizualizacja pracy Sygnały przekazywane z wykorzystaniem

mechanizmu zdarzeń

Page 14: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

Sharp Tankz

● W pełni obiektowa (C#)● Główne klasy:

SharpGLEngine – silnik graficzny

SharpAIEngine – implementacja AI

Agent – obiekt widoczny na ekranie

Page 15: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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ą

Page 16: “Analiza i implementacja wybranych algorytmów sztucznej inteligencji  w grze komputerowej”

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