2.2 Historia sztucznej inteligencji w grach komputerowych

advertisement
Spis Treści
1.
Wprowadzenie ................................................................................................................................. 2
1.1
Wstęp ....................................................................................................................................... 2
1.2
Cel pracy.................................................................................................................................. 2
1.3
Zakres pracy ............................................................................................................................ 2
1.4
Użyte technologie .................................................................................................................... 2
1.4.1
Unity 3D .......................................................................................................................... 3
2. Sztuczna inteligencja w grach komputerowych .............................................................................. 4
2.1
Zadanie sztucznej inteligencji w grach komputerowych ......................................................... 4
2.2
Historia sztucznej inteligencji w grach komputerowych ......................................................... 4
2.3
Automaty stanów skończonych ............................................................................................... 4
2.4
Logika rozmyta........................................................................................................................ 4
2.5
Algorytmy stadne .................................................................................................................... 4
2.6
Drzewa decyzyjne ................................................................................................................... 4
2.7
Algorytmy grafowe i heurystyczne przeszukiwanie drogi ...................................................... 4
2.8
Sztuczne sieci neuronowe........................................................................................................ 4
3. Projekt komputerowej gry strategicznej .......................................................................................... 5
3.1
Plansza ..................................................................................................................................... 5
3.2
Zasady rozgrywki .................................................................................................................... 5
3.3
Warunki zwycięstwa ............................................................................................................... 5
3.4
Funkcjonalności....................................................................................................................... 5
4. Implementacja komputerowej gry strategicznej .............................................................................. 6
4.1
Graficzny interfejs użytkownika ............................................................................................. 6
4.2
Struktura programu.................................................................................................................. 6
5. Zastosowane metody sztucznej inteligencji .................................................................................... 7
5.1
Algorytmy grafowe ................................................................................................................. 7
5.2
Logika rozmyta i automaty stanów skończonych.................................................................... 7
5.3
Algorytmy stadne .................................................................................................................... 7
5.4
Drzewa decyzyjne ................................................................................................................... 7
6. Podsumowanie................................................................................................................................. 8
6.1
Efekty implementacji .............................................................................................................. 8
6.2
Wady i zalety aplikacji ............................................................................................................ 8
6.3
Możliwość rozwoju ................................................................................................................. 8
6.4
Podsumowanie użytych metod sztucznej inteligencji ............................................................. 8
6.5
Zakończenie............................................................................................................................. 8
7. Bibliografia...................................................................................................................................... 9
1. Wprowadzenie
1.1
Wstęp
1.2
Cel pracy
Celem pracy jest implementacja komputerowej gry strategicznej wykorzystującej wybrane
metody sztucznej inteligencji. Jest to typowo inżynierski aspekt pracy, który jest dość
obszerny.
Aspektem badawczym pracy jest wybór, wieloaspektowa analiza oraz porównanie metod
sztucznej inteligencji z użyciem autorskich wskaźników jakości. Metody te będą musiały być
zaimplementowane, ocenione, a następnie niektóre z nich zostaną użyte w implementowanej
grze. Zanim zostaną wybrane konkretne metody poddane analizie zostanie wykonany
przegląd literaturowy pod kątem praktycznego wykorzystania rozwiązań w grach.
Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym
wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.
1.3
Zakres pracy
1.4
Użyte technologie
Głównym aspektem inżynierskim pracy jest implementacja gry strategicznej. Do tego celu
wybrane zostało narzędzie Unity 3D. Jest zarówno narzędziem graficznym
jak i środowiskiem programistycznym pozwalającym na używanie takich języków
jak JavaScript oraz C#. Dzięki temu możliwe będzie wykorzystanie zalet framework .NET
3.5.
Głównym aspektem badawczym pracy jest porównanie metod sztucznej inteligencji.
Do tego celu zostanie wykorzystany głównie język C# wraz z .NET 3.5. Zrealizowanie
wszystkich algorytmów w tej samej technologii ułatwi użycie ich w gotowym projekcie oraz
pomoże obiektywnie je ocenić.
1.4.1
Unity 3D
Unity 3D [5] jest silnikiem graficznym do tworzenia gier i dostarcza narzędzia
wystarczające do stworzenia w pełni funkcjonalnej gry z trójwymiarową grafiką. Bezpłatna
wersja silnika nie pozwala na komercyjne wykorzystanie, a także nie zawiera wielu
dodatkowych narzędzi dostępnych w wersji Unity PRO.
Wraz z silnikiem dostarczane jest aplikacja Unity Editor wspomagająca tworzenie
scen 3D. W edytorze można tworzyć obiekty, przypisywać do nich skrypty czy
trójwymiarowe modele, a następnie zbudować gotową już aplikację. Środowisko łatwo radzi
sobie z importowaniem do projektu trójwymiarowych modeli stworzonych w takich
programach jak Blender, Maya czy 3D Studio Max. Potrafi użyć również plików graficznych
czy dźwiękowych. Obsługuje on takie języki jak JavaScript, Boo oraz C#. W projekcie po
stronie aplikacji klienckiej przeważa zdecydowanie C#, niektóre elementy oprogramowane są
przy użyciu JavaScript.
Unity Editor można rozbudowywać na podstawie dostarczonego interfejsu. Każda
właściwie zaimplementowana klasa, która jest odpowiednio przyporządkowana do obiektu w
edytorze jest przez niego wyświetlana tak, że bez pomocy edytora tekstowego można
zmieniać jej publiczne argumenty. Możliwe jest tworzenie komponentów edytora które będą
pozwalały na szybsze tworzenie gier. Edytor obsługuje takie języki jak JavaScript, Boo oraz
C#. W projekcie po stronie aplikacji klienckiej przeważa zdecydowanie C#, niektóre
elementy oprogramowane są przy użyciu JavaScript.
Rys. 1.4.1.1 Unity Editor dostarczany wraz z silnikiem Unity 3D
2. Sztuczna inteligencja w grach komputerowych
2.1
Zadanie sztucznej inteligencji w grach komputerowych
2.2
Historia sztucznej inteligencji w grach komputerowych
2.3
Automaty stanów skończonych
2.4
Logika rozmyta
2.5
Algorytmy stadne
2.6
Drzewa decyzyjne
2.7
Algorytmy grafowe i heurystyczne przeszukiwanie drogi
2.8
Sztuczne sieci neuronowe
3. Projekt komputerowej gry strategicznej
3.1
Plansza
3.2
Zasady rozgrywki
3.3
Warunki zwycięstwa
3.4
Funkcjonalności
4. Implementacja komputerowej gry strategicznej
4.1
Graficzny interfejs użytkownika
4.2
Struktura programu
5. Zastosowane metody sztucznej inteligencji
5.1
Algorytmy grafowe
5.2
Logika rozmyta i automaty stanów skończonych
5.3
Algorytmy stadne
5.4
Drzewa decyzyjne
6. Podsumowanie
6.1
Efekty implementacji
6.2
Wady i zalety aplikacji
6.3
Możliwość rozwoju
6.4
Podsumowanie użytych metod sztucznej inteligencji
6.5
Zakończenie
7. Bibliografia
•
•
•
•
•
•
•
•
•
•
•
•
Perełki programowania gier. Vademecum profesjonalisty. Dante Treglia, Mark
DeLoura. Tom 1-6.
http://ai-depot.com/GameAI/
– Artykuł (ang.)
http://aigamedev.com/
– Forum, artykuły, gotowe rozwiązania (ang.)
http://www.gameai.com/
– Lista dyskusyjna, zbiór publikacji (ang.)
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.)
Grafy, drzewa, algorytmy genetyczne
• Algorytmy i struktury danych - Alfred V. Aho, John E. Hopcroft, Jeffrey D.
Ullman
P#
• http://zine.net.pl/blogs/mgrzeg/archive/2007/04/10/psharpintro.aspx
Algorytmy stadne
• http://zsi.ii.us.edu.pl/~mboryczka/IntStad/
• http://zsi.ii.us.edu.pl/~mboryczka/materialy.html
Download