Upload
thina
View
85
Download
0
Embed Size (px)
DESCRIPTION
Gry Wideo: Drzewa Zachowań i Hierarchiczne Systemy Sztucznej Inteligencji. Michał Słapa. Michał Słapa o mnie. CD Projekt Red (2006-2009) Wiedźmin. Michał Słapa o mnie. CD Projekt Red (2006-2009) Wiedźmin Prototyp Wiedźmina 2. Michał Słapa o mnie. CD Projekt Red (2006-2009) Wiedźmin - PowerPoint PPT Presentation
Citation preview
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Gry Wideo: Drzewa Zachowań i Hierarchiczne Systemy Sztucznej
Inteligencji
Michał Słapa
2 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Michał SłapaMichał Słapao mnieo mnie
CD Projekt Red (2006-2009) Wiedźmin
3 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Michał SłapaMichał Słapao mnieo mnie
CD Projekt Red (2006-2009) Wiedźmin Prototyp Wiedźmina 2
4 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Michał SłapaMichał Słapao mnieo mnie
CD Projekt Red (2006-2009) Wiedźmin Prototyp Wiedźmina 2
Flying Wild Hog (od 2009-VII 2012) Hard Reset
5 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Michał SłapaMichał Słapao mnieo mnie
CD Projekt Red (2006-2009) Wiedźmin Prototyp Wiedźmina 2
Flying Wild Hog (od 2009-VII 2012) Hard Reset Kolejny projekt
6 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Michał SłapaMichał Słapao mnieo mnie
CD Projekt Red (2006-2009) Wiedźmin Prototyp Wiedźmina 2
Flying Wild Hog (od 2009-VII 2012) Hard Reset Kolejny projekt
CD Projekt Red (od lipca 2012) Dark fantasy RPG
7 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Gry komputeroweGry komputeroweWprowadzenieWprowadzenie
Stale rozwijająca i przyśpieszająca branża „elektronicznej rozrywki”.
Dzięki coraz to nowym platformom do gier, branża staje się coraz bardziej różnorodna i spolaryzowana: Wielkobudżetowe gry AAA. Tańsze gry „mainstream’owe” Niskobudżetowe tytuły „indie” Social gaming Massive Multiplayer Free to play Gry casual Gry na platformy mobilne – telefony, tablety
Miejsce zarówno dla dużych korporacji, prywatnych developerów, ale też kilkuosobowych zespołów.
8 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Gry komputeroweGry komputeroweWprowadzenieWprowadzenie
9 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Gry komputeroweGry komputeroweWprowadzenieWprowadzenie
Programiści stanowią proporcjonalnie niewielką część zespołu: Artyści Design QA Produkcja Programiści
Stały kontakt z ludźmi z różnych specjalizacji. Mniej lub bardziej technicznymi, mniej lub bardziej artystycznymi, ale zawsze fanami gier.
Przy pracy nad AI programista musi stale i blisko współpracować z Designem. W zależności od specyfiki firmy: Odpowiada za serce systemu, bądź też implementację
konkretnych zachowań i przeciwników. Ma mniej lub więcej swobody w tworzeniu zachowań.
10 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Plan prezentacjiPlan prezentacji
Projektowanie systemu AI Charakterystyka Skończonych Maszyn Stanów. Hierarchiczne Drzewa Zachowań. Wnioski
11 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
AI marzeńAI marzeńdla programistydla programisty
Prosta, spójna i logiczna struktura Skalowalność:
Systemu Zachowań
Możliwość jednoczesnej realizacji wysoko poziomowego procesu decyzyjnego i niskopoziomowego sterowania
Atomowe, hermetyczne akcje Łatwy reuse kodu Wydajność
12 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
AI marzeńAI marzeńdla designeradla designera
Prosta, spójna i logiczna struktura Łatwy w projektowaniu Łatwy w skryptowaniu Przewidywalne działanie Konfiguracja
13 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Zabieramy się za AIZabieramy się za AIZagrożeniaZagrożenia
Róbmy AI wcześnie, inaczej skończymy w sytuacji gdy wiele systemów, które powinno na nim bazować będzie zrobione "obok".
Róbmy JEDEN system AI obejmujący wszystkie mechanizmy decyzyjne.
Design czasem chce AI, które już zaprojektował. Nie dajmy narzucać sobie rozwiązań systemowych.
Nie próbujmy być zbyt sprytni (przerost autonomii). Nie bójmy się sprytnych rozwiązań (unikajmy
łopatologii).
14 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Zabieramy się za AIZabieramy się za AI„Atom” AI Zachowanie/Stan/Zadanie„Atom” AI Zachowanie/Stan/Zadanie
Może byc bezstanowy, lub miec wewnętrzny stan Definiuje metody:
Aktywacji Deaktywacji Update Odpowiedź na zdarzenia + i dużo innych
Systemy AI o jakich będziemy mówić różnią się mechanizmami łączenia i zarządzania tymi atomami.
15 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanówIdeaIdea
Swojego czasu najpopularniejsza struktura systemu sztucznej inteligencji.
Atomowe zachowania AI implementowane są przez stany maszyny.
Pomiędzy stanami definiowane są skierowane przejścia i ich warunki.
16 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanów
17 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanów
Dodajmy do gry efekt czaru „Strach”.
18 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanów
Dodajmy nowy wierzchołek
19 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanów
Albo całą funkcjonalność…
20 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanówDla designeraDla designera
Zalety Czytelny Łatwy w projektowaniu Łatwy w skryptowaniu Przewidywalne działanie
Wady Jak to się komplikuje... (kwadratowy rząd ilości połączeń do
wielkości grafu)
21 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanówDla programistyDla programisty
Zalety Prostota, spójna i logiczna struktura
Wady NIE- Atomowe stany NIE- Hermetyczne stany CIĘŻKI reuse kodu BRAK Skalowalności
22 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanówGrzech głównyGrzech główny
Płaska struktura
AI zaimplementowane na zadanym poziomie. Problem z zaimplementowaniem
wysokopoziomowych procesów decyzyjnych i konieczność tworzenia wrapperów na
niskopoziomowe sterowanie.
23 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Maszyna stanówMaszyna stanówPrzykładPrzykład
The Witcher
24 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Inne podejściaInne podejścia
Planowanie Hierarchiczne FSM Drzewa Zachowań (Behavior Tree) Goal Based Behavior
25 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzewa ZachowańDrzewa ZachowańIdeaIdea
Wprowadźmy pojęcie wierzchołka drzewa == zachowania złożonego mającego pod sobą uporządkowany zbiór zachowań.
Zastąpmy maszynę stanów korzeniem drzewa -"Mózgiem". Niech każdy stan jest w stanie stwierdzić czy są spełnione
warunki by mógł się wykonywać. Ewentualnie niech warunki wykonania każdego "zachowania"
określa osobny funkcyjny obiekt z nim związany. Wprowadźmy prosty proces decyzyjny dla stanu złożonego -
gdy jest aktywny, wówczas aktywuje on pierwszy dostępny ze swoich pod-stanów.
Otrzymamy strukturę drzewiastą w którym węzły są stanami wyższego rzędu, a liście - niskiego. W drzewie jednocześnie aktywna jest cała gałąź zachowań.
26 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzewa ZachowańDrzewa Zachowań
27 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzewa ZachowańDrzewa ZachowańProces decyzyjnyProces decyzyjny
• Węzeł złożony ewaluuje swoje dzieci aż trafi na gotowe.
• Możliwe uproszczenie, że co najmniej jedno dziecko węzła jest gotowe.
o Umożliwia niezależne ewaluacje wierzchołków, upraszcza proces decyzyjny.
o Wymusza dokładniejsze testy warunków wierzchołka rodzica.
28 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzewa ZachowańDrzewa ZachowańProces decyzyjny - optymalizacjaProces decyzyjny - optymalizacja
Potężna optymalizacja: reewaluacja procesu decyzyjnego odbywa się możliwie rzadko - powiedzmy raz na 1-2 sekundy.
W odpowiedzi na zdarzenia możemy wymusić reewaluację wierzchołka w następnej klatce. Dzięki temu reakcja na zdarzenia będące "bodźcem" jest natychmiastowa.
Optymalizacja powoduje przypadkowe ale też całkiem naturalne ("ludzkie") opóźnienia w reakcji AI na zmiany środowiska nie dotyczące go bezpośrednio.
W Hard Reset całe AI działało w języku skryptowym, poza tym nie miało wielu innych optymalizacji o których wspomnę w tej prezentacji. Mimo tego, dzięki rzadkim aktualizacjom złożonych wierzchołków nigdy nie wyskakiwało wysoko w profilerach.
29 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzewa ZachowańDrzewa ZachowańCykl wykonania węzłaCykl wykonania węzła
Aktywacja - Activate Aktualizacje - Update Zakończenie wykonania:
Jeśli zachowanie się wykonało wywołuje Complete, które z kolei wykonuje Deactivate.
Jeśli wykonanie węzła zostanie wywłaszczone przez proces decyzyjny - węzeł dostaje Deactivate.
30 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzewa ZachowańDrzewa ZachowańPrzechwytywanie zdarzeńPrzechwytywanie zdarzeń
Podstawowy mechanizm - zdarzenie przechodzi przez całą gałąź aktywnych zadań.
Dodatkowy mechanizm - węzły mogą rejestrować
się na odsłuch konkretnych eventów.
31 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzewa ZachowańDrzewa ZachowańPrzechwytywanie zdarzeńPrzechwytywanie zdarzeń
Węzeł obsługujący zdarzenie może poprosić "rodzica" o reewaluację ponieważ zdarzenie zmieniło jego stan wewnętrzny
32 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańNarzucane zadaniaNarzucane zadania
33 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańSekwencjeSekwencje
34 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańDekoratoryDekoratory
Bardzo często będziemy spotykali się z zapotrzebowaniem na akcje AI, które właściwie już zaimplementowaliśmy, ale do których potrzebujemy wprowadzić "małe" zmiany.
Potrzebujemy alternatywy dla mechanizmu dziedziczenia klas akcji.
Wykorzystajmy wzorzec projektowy "dekorator" do zmodyfikowania działania węzła potomnego.
Umożliwia budowanie całego AI w oparciu o bardzo podstawowe, ale dodatkowo oskyptowane akcje.
Właściwie stosowane dekoratory upraszczają cały system AI, zmniejszają ilość klas, zależności projektowych i zapobiegają karkołomnemu dziedziczeniu.
35 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
By umożliwić prawdziwy reuse kodu, skalowalność systemu i ograniczyć stosowanie metody Kopjego-Pejsta:
Najpierw oczywistość: wszystkie węzły drzewa powinny móc być parametryzowane z poziomu definicji AI.
36 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
37 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
By umożliwić prawdziwy reuse kodu, skalowalność systemu i ograniczyć stosowanie metody Kopjego-Pejsta:
Najpierw oczywistość: wszystkie węzły drzewa powinny móc być parametryzowane z poziomu definicji AI. Pozwólmy zapisywać dowolne definicje AI (również całe Drzewa Zachowań) by wykorzystywać je w innych definicjach na równi z wbudowanymi zachowaniami.
38 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
39 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
By umożliwić prawdziwy reuse kodu, skalowalność systemu i ograniczyć stosowanie metody Kopjego-Pejsta:
Najpierw oczywistość: wszystkie węzły drzewa powinny móc być parametryzowane z poziomu definicji AI. Pozwólmy zapisywać dowolne definicje AI (również całe Drzewa Zachowań) by wykorzystywać je w innych definicjach na równi z wbudowanymi zachowaniami. Niech zapisane definicje AI mogą również parametryzować się dowolnymi zmiennymi.
40 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
41 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
By umożliwić prawdziwy reuse kodu, skalowalność systemu i ograniczyć stosowanie metody Kopjego-Pejsta:
Najpierw oczywistość: wszystkie węzły drzewa powinny móc być parametryzowane z poziomu definicji AI. Pozwólmy zapisywać dowolne definicje AI (również całe Drzewa Zachowań) by wykorzystywać je w innych definicjach na równi z wbudowanymi zachowaniami. Niech zapisane definicje AI mogą również parametryzować się dowolnymi zmiennymi. Niech parametrem węzła może być inny węzeł.
42 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
43 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańKonfiguracjaKonfiguracja
Zależne od parametrów wierzchołki opcjonalne.
44 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozwinięcia Drzew ZachowańRozwinięcia Drzew ZachowańBlackboardBlackboard
Problem reprezentacji wiedzy i optymalizacji zapytań. AI powinno posiadać pewien obiekt reprezentujący bazę
"wiedzy". Możliwe postaci:
Aktualizowany na bieżąco zbiór identyfikatorów i ich wartości reprezentujących wiedzę obiektu.
Opierający się o uleniwione zmienne obiekt funkcyjny wyliczający częste podzapytania wykonywane przez AI.
Hybryda obu powyższych.
45 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzew ZachowańDrzew ZachowańProblemyProblemy
Ciężko reprezentować warunek "jeśli «coś» lub jeśli następujące węzły są niedostępne".
Ciężko reprezentować nie deterministyczne drzewa.
46 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzew ZachowańDrzew ZachowańRozwiązanie - rozmyta Rozwiązanie - rozmyta
ewaluacjaewaluacja
47 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzew ZachowańDrzew ZachowańRozmyta ewaluacjaRozmyta ewaluacja
Modyfikacja procesu decyzyjnego. Wierzchołki zwracają swój priorytet na podstawie którego podejmowany jest wybór.
Można zastosować rozwiązanie hybrydowe (w którym na różnych poziomach mamy różne procesy decyzyjne).
Zalety
"Mocniejszy" mechanizmRozwiązuje przedstawione problemy
Wady
Utrudniona czytelność drzewaGorsza atomowość zadań
Kosztowniejszy proces decyzyjny
48 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Drzew ZachowańDrzew ZachowańProblemyProblemy
Decyzje a hierarchia.
49 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Hierarchiczne system AIHierarchiczne system AI
Wszystkie systemy hierarchiczne są podobne! Moja propozycja: niech ciężar implementacyjny spoczywa
na klasach węzłów. Implementacje węzłów bazowych są "proste" w
odniesieniu do implementacji konkretnych AI przeciwników.
Hierarchiczne systemy AI różnią się tylko szczegółami, przy odpowiedniej architekturze możemy swobodnie między nimi się przemieszczać: Hierarchiczne FSM Drzewa zachowań Logika rozmyta Planowanie
50 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Hierarchiczne system AIHierarchiczne system AIPrzykład: Behavior Tree vs Przykład: Behavior Tree vs
HFSMHFSM
51 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Hierarchiczne system AIHierarchiczne system AI
Nie ma idealnego rozwiązania.
Wymyśl własną hybrydę!
52 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
PytaniaPytania
?
53 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Dziękuję za wykładDziękuję za wykładGarść linkówGarść linków
Niezły tekst o Drzewach Zachowań na AIGamedev.com
http://aigamedev.com/insider/presentations/behavior-trees/
Drzewa Zachowań w Spore
http://chrishecker.com/My_Liner_Notes_for_Spore/Spore_Behavior_Tree_Docs
Goal Oriented Action Planning == FEAR
http://web.media.mit.edu/~jorkin/goap.html
Drzewa Zachowań a Crysis
http://files.aigamedev.com/coverage/GAIC09_CoordinatingAgents_RicardoPillosu.pdf