(Bez)Imienne rozmyślania

Przy myszce i padzie
BZImienny BZImienny 01.03.2019, 12:50
SI w grach - pozytywne przykłady
690V

SI w grach - pozytywne przykłady

Blog w ramach którego będzie wyliczanką, w której ramach przedstawię ranking, który mam wrażenie, jest często pomijany - sztuczna inteligencja. Ale to nie tylko wyliczanka, ale i próba wytłumaczenia, jak ona działa. 

Myślą przewodnią bloga niech będą następujące słowa - "My prediction is a little bit controversial. I think the next giant leap of the game AI is actually artificial intelligence", Alex J. Champanard, GDC 2013

F.E.A.R. (First Encounter Assault Recon) (Monolith Productions, Sierra Entertainment, 2005 (PC), 2006 (PS3, X360))

Teraz pora na produkcję w przypadku której porównanie do Half-Life - co zastanawiające - zostało przez Jeffa Orkina, projektanta SI do F.E.A.R, przyjęte ze smutkiem. W końcu nie trudno zrozumieć człowieka, który stara się stworzyć zaawansowany system, a następnie porównany on jest do gry mającej co najmniej 7 lat. Niemniej i tak ciężko nie docenić tego systemu, który teraz postaram się przeanalizować zarówno pod względem konstrukcyjnym jak i korzyści wynikających z jego implementacji.

Rozdział opracowany na podstawie dokumentu: Three States and a Plan: The A.I. of F.E.A.R autorstwa Jeffa Orkina, ówczesnego pracownika Monolith Productions i współtwórcę systemu sztucznej inteligencji do Shogo: Mobile Armor Division, No One Lives Forever 2 oraz First Encounter Assault Recon.

Istotny Plan

Twórcy projektując system oczekiwali po nim stworzenie wrażenia obcowania z wysokiej jakości filmem akcji w której jakość będzie sprawiała wrażenie, że ma się do czynienia z innymi graczami. I choć grze nie udało się przejść Testu Turinga, tak zdobyła tytuł najlepszego SI w 2005 roku i jest pamiętana m. in. ze względu na ten element. Przed wami teraz próba analizy systemu GOAP, czyli Goal Oriented Action Planning.

Jednak zanim zajmiemy się systemem warto przyjrzeć się wiekowej z perspektywy SI konstrukcji, czyli opracowanego w latach 70. XX wieku STRIPS (STanford Research Institute Problem Solver) przez Richardsa Fixes oraz Nilsa Nillsona. W ramach jego konstrukcji mamy dwa ważne elementy:

  • Cele, czyli co chcemy osiągnąć
  • Akcje, czyli co pozwala na osiągnięcie celów. Każda z tych akcji ma określone warunki, które muszą być spełnione, by akcja mogła wejść w życie.

Za przykład może posłużyć ilustracja pewnego człowieka, który zdecydował się najeść. Ma on przy tym możliwość zamówić schabowe z frytkami (zakładając, że ma numer telefonu do restauracji) albo zrobić go na własną rękę (zakładając, że ma składniki). Plan ten można rozbudować, gdy dodamy do niego cel, którego nie można w dany sposób zrealizować - np. wegetarianin, którego zadowoli np. tofu. Na potrzeby tego rozdziału zmieńmy głodnego człowieka na żołnierza, a jego cel na eliminację zagrożenia - a akcje na eliminację przy pomocy broni palnej (zakładając, że ma amunicję w magazynku - jeśli nie, musi przeładować) albo w walce wręcz (zakładając, że jest w odpowiedniej odległości).  

Skoro mamy za sobą STRIPS, możemy zacząć analizować GOAP. W jego ramach mamy trzy stany - choć na potrzeby analizy można przyjąć, że "Use Smart Object" to napędzana danymi wersja części "Animate". Tak więc mamy do czynienia ze składającym się z dwóch elementów: "Goto" oraz "Animate", czyli w trakcie wykonywania jakiegoś polecenia odtwarza się np. animacja chowania się za ścianą. Coś, co jest istotnym problemem, to jak rozstrzygnąć ten ruch oraz jaką animację mamy odtworzyć. Jednym z rozwiązań jest wpisanie tego do FSM, ale wymaga to zaprogramowania dużej liczby zależności. Dodatkowo wymagania graczy rosły (i wciąż rosną), tak więc rozwiązania stosowane chociażby w 1999 w ramach współtworzonego przez Jeffa Orkina Shogo: Mobile Armor Division nie były już wystarczające.

W tym momencie wchodzimy w planowanie i jego istotną różnicę względem FSM - drugi system wskazuje SI nie tylko, co zrobić, ale i jak. Planowanie natomiast, podobnie jak przedstawiony wcześniej STRIPS, daje cel i dostępne środki nie mówiąc przy tym, który z nich musi wykorzystać. Właśnie cel - bez niego jednostka rzucona na mapę świata będzie stać. Dodatkowo areny starć projektowane są w sposób dający jednostkom wiele sposobów na jego wykorzystanie, a skrypty wykorzystywane są tylko w ramach istotnych z perspektywy historii elementów.

Jednostka ma dwa typowe zachowanie - patrolowanie oraz walka, która to w zależności od jednostki będzie się różnić. Przykładowy żołnierz będzie podróżował po lokacji, a po zaobserwowaniu zagrożenia przejdzie w tryb walki - inaczej będzie się zachowywał szczur, który to nawet po zaobserwowaniu zagrożenia nie zmieni trybu, ponieważ nie ma środków do walki. Dodatkowo, jeśli żołnierz nie jest sam, to korzysta z tego faktu inaczej planując takie zachowanie.

Korzyści ze zmiany

Zestawienie systemu SI w NOLF 2 (lewo) oraz F.E.A.R. (prawo)

Najważniejsza korzyść z zaimplementowania planowania kryje się nie w zachowaniu wrogów, a tego jak można je implementować - chodzi dokładnie o ścisły podział na "akcje" oraz "cele". Chodzi tu o to, że wraz z projektowaniem nowych jednostek z unikatowym zachowaniem, system SI się rozrastał - dochodzi poważne ryzyko, że finalnie powstanie rozbudowany i niestabilny system. Dodatkowo uzupełnianie systemu o unikatowy wariant czy nową jednostką było wysoce skomplikowane i ryzykowne dla systemu. Wraz z planowaniem udało się stworzyć środowisko, które można było łatwo uzupełniać o takie elementy - chociażby jeden z wrogów w F.E.A.R. został dodany w późniejszej fazie tworzenia gry.

Druga korzyść odczuwana jest już w ramach samej rozgrywki - warstwowe zachowanie. Wróg ma celu wyeliminować zagrożenie, ale nie może do tego dążyć za wszelką cenę. Dodano więc warstwę odpowiedzialną za bezpieczeństwo, czyli będąc pod ostrzałem wycofa się na bezpieczną pozycję i stamtąd ponownie będzie dążył do eliminacji celu. Ponadto sama eliminacja może odbywać się na wiele sposobów. Z powyższego elementu wyłania się kolejna korzyść - dynamiczna modyfikacja zachowania postaci. Czyli jeśli jednostka zauważy, że pewien środek (np. wyważenie drzwi) jest nieskuteczny, może zastosować inną drogę do realizacji celu (np. wybicie szyby).

Różnice między GOAP a STRIPS

Twórca systemu wprowadził przy tym kilka poważnych różnic względem tymi systemami:

  • Pierwszy z nich to występujący w GOAP tzw. "koszt za akcję", czyli nowy warunek, by przeprowadzić daną akcję.
  • Dodatek "Add/Delete List", który nie występuje w GOAP. Zamiast tego są warunki konieczne do rozpoczęcia danego zachowania, które ma dążyć do realizacji celu.
  • Proceduralne efekty/warunki

Podsumowanie

System GOAP stworzony na potrzeby F.E.A.R. sprawdził się znakomicie, dając jedną z lepszych gier w tej materii w 2005 roku. Mimo tego został on porównany do wiekowego już wówczas Half-Life, co może być wytłumaczeniem, dlaczego nie jest już tak stosowany. Czy można nazwać go z tego powodu nazwać ślepą uliczką? Raczej nie, bo dał trochę poglądu na tematykę SI.

Tagi: black & white F.E.A.R. half-life Obcy: Izolacja rywalizacja sztuczna inteligencja thief

Przejdź do strony
Oceń notkę
+ +25 -

You are one man, but it's still not fair. For US.
Oceń profil
+ +132 -
BZImienny
Ranking: 92 Poziom: 65
PD: 35212
REPUTACJA: 9475