zastosowania ai w grach komputerowych › student › tm › tm13_ai_w_grach.pdf2020-05-27 1...

17
2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie AI Analizowany problem: podejmowanie decyzji przez przeciwnika sterowanego przez komputer Jak wybrać który algorytm lepiej nadaje się do modelowania AI w grze komputerowej? Sieci neuronowe oraz pozostałe algorytmy uczenia maszynowego są trudne w projektowaniu i modyfikacji dla zespołu pracującego nad grą, której mechanika gry może dynamicznie zmieniać się w czasie jej wytwarzania oraz już po wydaniu Klasyczne algorytmy, takie jak drzewa zachowań, maszyny stanów lub drzewa decyzyjne są łatwe w implementacji i modyfikacji nawet dla osób, które nie mają dużego doświadczenia w programowaniu 1 2

Upload: others

Post on 03-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

1

Zastosowania AI w grach komputerowych

Opracował mgr inż. Mariusz Kurowski

Projektowanie AI

• Analizowany problem: podejmowanie decyzji przez przeciwnika sterowanego przez komputer

• Jak wybrać który algorytm lepiej nadaje się do modelowania AI w grze komputerowej?• Sieci neuronowe oraz pozostałe algorytmy uczenia maszynowego są trudne w

projektowaniu i modyfikacji dla zespołu pracującego nad grą, której mechanika gry może dynamicznie zmieniać się w czasie jej wytwarzania oraz już po wydaniu

• Klasyczne algorytmy, takie jak drzewa zachowań, maszyny stanów lub drzewa decyzyjne są łatwe w implementacji i modyfikacji nawet dla osób, które nie mają dużego doświadczenia w programowaniu

1

2

Page 2: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

2

Projektowanie AI

• Jaki jest cel przy tworzeniu AI?• AI, która jest tak dobra, że zawsze zwycięża z graczem zwykle nie jest

głównym celem zespołu tworzącego grę

• Projektując AI nadrzędnym celem zwykle jest stworzenie przeciwnika, przeciwko któremu dobrze się gra

• Przeciętna AI nie musi podejmować zawsze optymalnych decyzji, wystarczy, że gra dość dobrze by stanowić wyzwanie oraz nie popełnia ewidentnie „głupich” decyzji, gdy gracz ją widzi w akcji

Źródło: https://venturebeat.com/2019/04/22/openais-dota-2-bot-defeated-99-4-of-players-in-public-matches/

3

4

Page 3: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

3

Projektowanie AI

• Do uczenia sieci zespół stojący za OpenAI Five wykorzystał:• 256 kart graficznych Nvidia Tesla P100

• 128 000 rdzeni CPU

• Podejście oparte o uczenie maszynowe możewymagać posiadania znacznych zasobówsprzętowych

Maszyny stanów• Aktualny stan definiuje co w danej

chwili wykonuje AI

• Zmiana zachowania realizowana na podstawie przejścia pomiędzy stanami

• Czasami konieczne są duplikaty stanów

• Czarna kropka wskazuje stan początkowy

5

6

Page 4: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

4

Hierarchiczne maszyny stanów• Stany mogą posiadać

wewnętrzne, zagnieżdżone maszyny stanów

• Czarna kropka wyznacza stan początkowy każdej z obecnych maszyn stanów. Dla przykładowej maszyny początkowym stanem jest lista 𝐴, 𝐵 .

Hierarchiczne maszyny stanów (HFSM)

• Stan HFSM jest listą stanów na każdy poziom hierarchii, np. dla maszyny zpoprzedniego slajdu 𝐴, 𝐶 .

• Przejścia stanów rozpatrywane są dla każdego poziomu hierarchii zosobna, w kolejności od najwyższego do najniższego.

• Stany są zapamiętywane dla różnych poziomów hierarchii – np. HFSM wstanie 𝐴, 𝐶 pod wpływem ciągu symboli 1 oraz 2 znajdzie się zpowrotem w stanie 𝐴, 𝐶 , a nie w stanie 𝐴, 𝐵 (maszyna pamięta,że przed przejściem w stan 𝐷 była w zagnieżdżonym stanie C).

7

8

Page 5: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

5

Hierarchiczne maszyny stanów – przykładStan + symbole = nowy stan

• 𝐴, 𝐹 + 4, 11 = 𝐵, 𝐻

• 𝐵, 𝐻 + 10, 8 = 𝐴, 𝐷

• 𝐵, 𝐻 + 10, 7 = 𝐴, 𝐹

Drzewa zachowań• Liście reprezentują akcje

• Pozostałe węzły są węzłami złożonymi

• Węzły złożone definiują przepływ sterowania

• Węzeł po wykonaniu zwraca status (SUCCESS, FAILURE lub RUNNING)

9

10

Page 6: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

6

Drzewa zachowań

Selektor – wykonuje potomków w kolejności (od lewej do prawej). Jeśli któryś z potomków zwróci status sukcesu, węzeł również kończy pracę z sukcesem. Jeśli wszystkie zakończą się porażką, selektor kończy ze statusem porażki.

Sekwencja – wykonuje potomków w kolejności i zwraca sukces, jeśliwszyscy potomkowie zwrócą sukces. Jeśli którykolwiek zwróciporażkę, sekwencja także kończy pracę ze statusem porażki.

Drzewa zachowań

Węzły złożone mogą posiadać pamięć lub nie. Węzeł z pamięcią pamięta statusy wykonanych poprzednim razem węzłów oraz oznaczony jest przez gwiazdkę *

Węzeł, który nie posiada pamięci, musi zawsze rozpocząć ewaluację potomków od początku

Źródło (podrozdział 1.3): Colledanchise, Michele & Ogren, Petter. (2018). Behavior Trees in Robotics and AI: An Introduction. 10.1201/9780429489105.

11

12

Page 7: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

7

Inne węzły złożone

• Dekorator modyfikuje działanie węzła potomnego

• Węzeł współbieżny pozwala na wykonywanie wszystkich potomków jednocześnie

Poddrzewo wyszukujące przeciwników

Poddrzewo odpowiedzialne za atakowanie pobliskich

wrogów

Drzewa zachowań

Dekorator wywołuje swojego potomka oraz na podstawiezwróconego statusu, wykonuje dodatkowe działania. Następnie, samrównież kończy pracę z odpowiednim statusem.

Najprostszym przykładem dekoratora jest inwerter – zwracaSUCCESS, jeśli potomek zwraca FAILURE i odwrotnie. Inny rodzajdekoratora może np. zawsze zwracać status RUNNING i statusSUCCESS tylko, gdy potomek zwróci status FAILURE.

13

14

Page 8: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

8

Drzewa zachowań

Węzeł współbieżny wykonuje każdy węzeł potomny jednocześnie.Współbieżność nie jest realizowana sprzętowo (w oddzielnychwątkach). Zwykły selektor lub sekwencja ewaluuje status swoichwęzłów potomnych jeden po drugim. Dla kontrastu, węzełwspółbieżny wykona każdego potomka od razu, a później (powykonaniu każdego) na podstawie statusów, zwróci własny status.

Węzeł może być podobny do selektora i zwrócić sukces, gdyktórykolwiek potomek zwraca sukces lub podobny do sekwencji izwracać sukces, gdy wszyscy potomkowie zwracają sukces.

Różnice w działaniu węzłów dla różnych implementacji

Ian Millington and John Funge. 2009. ArtificialIntelligence for Games, Second Edition (2nd.ed.). Morgan Kaufmann Publishers Inc., SanFrancisco, CA, USA.

• Autorzy w książce prezentują implementację, wktórej węzły zwracają tylko 1 z 2 statusów –sukces lub porażkę (bez statusu „w trakcie”).

15

16

Page 9: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

9

Różnice w działaniu węzłów dla różnych implementacji

Kurs Stanfordu: CS123 Programming YourPersonal Robot (Autumn 2015), wykład 8.

https://web.stanford.edu/class/cs123/lectures/CS123_lec08_HFSM_BT.pdf

• Węzły zwracają 1 z 4 statusów: sukces,porażka, „w trakcie” oraz błąd

• Selektor nie wykonuje kolejnychwęzłów, jeśli któryś potomek zwracastatus „w trakcie”

Różnice w działaniu węzłów dla różnych implementacji

Biblioteka do języka python py_trees

https://py-trees.readthedocs.io/en/devel/composites.html#selector

• Jeśli węzeł selektora zwróci status„w trakcie”, selektor uruchominastępnego w kolejności potomka

• Biblioteka oferuje wariant selektora:chooser

17

18

Page 10: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

10

Różnice w działaniu węzłów dla różnych implementacji

Implementacja w Unreal Engine 4:

https://docs.unrealengine.com/en-US/Engine/ArtificialIntelligence/BehaviorTrees/BehaviorTreesOverview/index.html

• Nie ma węzłów współbieżnych, jakopisanych w poprzednich źródłach,ale jest odpowiednik: węzeł SimpleParallel

Drzewa zachowań

Istnieje bardzo dużo implementacji drzew zachowań – wszystkie w pewnym stopniu różnią się od siebie nawzajem:

• Unreal Engine 4 https://docs.unrealengine.com/en-US/Engine/ArtificialIntelligence/BehaviorTrees/index.html

• Unity 3D (wiele implementacji)• Behavior Designer https://assetstore.unity.com/packages/tools/visual-

scripting/behavior-designer-behavior-trees-for-everyone-15277• NodeCanvas https://assetstore.unity.com/packages/tools/visual-

scripting/nodecanvas-14914• AI Machine https://assetstore.unity.com/packages/tools/ai/ai-machine-aim-visual-

programming-and-ai-122906

• Python py_trees https://github.com/splintered-reality/py_trees

19

20

Page 11: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

11

Obiekty blackboard

Obiekty blackboard

Drzewo zachowań (lub jego poddrzewa) mogą mieć ze sobą skojarzonetzw. obiekty blackboard. Węzły mogą następnie zapisywać podkluczami pewne dane, do których inne węzły mogą się następnieodwoływać, wykorzystując klucz.

Mechanizm ten umożliwia węzłom drzewa na komunikowanie sięmiędzy sobą, nawet jeśli są w odległych od siebie miejscach. Należyjednak mieć na uwadze, że szczegóły działania tego mechanizmu mogąróżnić się dla poszczególnych implementacji.

21

22

Page 12: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

12

Drzewa decyzyjne (Black & White)

• W grze Black & White gracz kontrolujebóstwo, które posiada stwora. Stwórmoże wchodzić w interakcję z ludnościązamieszkującą różne miasta i wioski

• Stwór posiada własną osobowość, możebyć np. łagodny i dobry dla mieszkańcówlub agresywny i okrutny

• Charakter stwora zmienia się naprzestrzeni gry w zależności od jegowłasnych doświadczeń oraz zachowaniagracza

Drzewa decyzyjne

• Różne aspekty zachowania stwora (np.czy zdecyduje się zaatakować wioskę)można modelować za pomocądynamicznie konstruowanych drzewdecyzyjnych

• Gra może zapisywać do tabeli poprzedniedoświadczenia stwora dotycząceatakowania wiosek. W ten sposób możnanp. odnotować, że zwykle atakującwioskę o danym charakterze, stwórodnosił rany oraz przypisać takiemurekordowi negatywną wagę. W tensposób, stwór nauczy się omijać takiemiejsca

23

24

Page 13: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

13

Drzewa decyzyjne

Wioska zaatakowana przez stworaEfekt

Nastawienie Obrona m ę

Przyjazne b Celtyckie –1.0

Wrogie b Celtyckie +0.4

Przyjazne Silna Skandynawskie –1.0

Wrogie Silna Skandynawskie –0.2

Przyjazne Greckie –1.0

Wrogie Greckie +0.2

Wrogie Silna Greckie –0.4

Wrogie Azteckie 0.0

Przyjazne b Azteckie –1.0

b

m ę

b

• Drzewo decyzyjne automatycznie generowane algorytmem ID3

Źródło: Wexler, James. “Artificial Intelligence in Games : A look at the smarts behind Lionhead Studio ’ s “ Black and White ” and where it can and will go in the future.” .

Reguły decyzyjne (Dragon Age: Origins)

25

26

Page 14: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

14

Reguły decyzyjne (Dragon Age: Origins)

• W grze gracz kontroluje swoją postać oraz drużynę towarzyszy. W danejchwili może jednak sterować jedną postacią.

• Pozostałe postacie mogą podejmować decyzje w oparciu o uporządkowanąlistę reguł:

𝑤𝑎𝑟𝑢𝑛𝑒𝑘 → 𝑎𝑘𝑐𝑗𝑎

• System można rozszerzyć o możliwość użycia wielu warunków połączonychspójnikami logicznymi

• Można utworzyć system proponujący graczowi zestaw reguł w oparciu oakcje, jakie wydawał postaciom na przestrzeni gry (zapisywanie rekordów𝑠𝑡𝑎𝑛 𝑝𝑜𝑠𝑡𝑎𝑐𝑖, 𝑎𝑘𝑐𝑗𝑎 i dynamicznie tworzenie proponowanego zestawu

reguł)

Logika rozmyta

• Rozszerzenie arytmetyki logicznej pozwalające na zastosowanie jej nietylko dla wartości binarnych, ale dla wartości ciągłych

• Można definiować tzw. zbiory rozmyte określone na dziedzinie: np.dla dziedziny punkty_życia_jednostki w zakresie od 0% do 100%można określić zbiory rozmyte ranny oraz zdrowy

• Każdy zbiór posiada funkcję przynależności określoną na dziedzinie,która każdemu jej elementowi przypisuje wartość przynależności od 0do 1

27

28

Page 15: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

15

Logika rozmyta

Logika rozmyta

• Można zdefiniować zestaw reguł logicznych w postaci:𝑥1𝑗𝑒𝑠𝑡 𝐴1 ∧ 𝑥2𝑗𝑒𝑠𝑡 𝐴2 ∧ ⋯∧ 𝑥𝑛𝑗𝑒𝑠𝑡 𝐴𝑛 ⟶ 𝑦 𝑗𝑒𝑠𝑡 𝐵

Gdzie 𝐴𝑖 oznacza zbiór rozmyty, a 𝑥𝑖 oraz 𝑦 są wartościami dziedziny

• Przykład:hurt health ∧ close distance ⟶ 𝑎𝑡𝑡𝑎𝑐𝑘 decisionhurt health ∧ far distance ⟶ ignore decisionhealthy health ∧ far distance ⟶ ignore decision

Reguły połączone są spójnikiem „lub”

29

30

Page 16: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

16

Logika rozmyta

• Można następnie uzyskać wartość dziedziny decision w procesie defuzyfikacji:

Logika rozmyta

• Health = 0.3

• Distance = 0.21

• Relative_dps = 0.21

• Decision = 0.67

31

32

Page 17: Zastosowania AI w grach komputerowych › student › tm › tm13_AI_w_grach.pdf2020-05-27 1 Zastosowania AI w grach komputerowych Opracował mgr inż. Mariusz Kurowski Projektowanie

2020-05-27

17

Literatura

• Steven Rabin. 2013. Game AI Pro: Collected Wisdom of Game AI Professionals. A. K. Peters, Ltd., USA. (3 tomy)

• Ian Millington and John Funge. 2009. Artificial Intelligence for Games, Second Edition (2nd. ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

• Colledanchise, Michele & Ogren, Petter. (2018). Behavior Trees in Robotics and AI: An Introduction. 10.1201/9780429489105.

Dziękuję za uwagę!

33

34