SI w grach - pozytywne przykłady

BLOG
1902V
SI w grach - pozytywne przykłady
BZImienny | 01.03.2019, 12:50
Poniżej znajduje się treść dodana przez czytelnika PPE.pl w formie bloga.

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

Witam was w pierwszym niezwiązanym z cyklem Piątkowa GROmada blogiem mojego autorstwa, gdzie przedstawię pokrótce pozytywnie wyróżniającą się sztuczną inteligencję. Tematyka, która jest moim zdaniem często pomijana, zwłaszcza przy recenzjach. A jej projekt - tak samo jak wizja świata czy aspekty techniczne - wpływa na to, jak człowiek odbiera inną produkcję. Będę się przy tym starał nie tylko wytłumaczyć, dlaczego to SI spotkało się z pozytywnym odbiorem, ale i pokrótce objaśnić jak ono działa.

Zwyczajem wpisów z GROmady będzie podział na strony w tradycyjnym formacie jedna produkcja - jedna strona. Pamiętajcie też, że takich produkcji może być tu dość sporo - dzielcie się więc swoimi typami. Miłej lektury. ;)

Spis Treści:

  • Jeden bóg, jedna bestia i wielu wyznawców (Black & White)
  • Istotny Plan (F.E.A.R.)
  • Mądrzy zanim to było modne (Half-Life)
  • Trzech aktorów, jeden łowca i trup (Obcy: Izolacja)
  • Złodziej, którzy prawie nie wyszedł z cienia (Thief: The Dark Project)
  • Niewymienieni, ale warci uwagi

Ewentualne zdjęcia pochodzą z zacytowanych prac, zrzuty ekranu omawianych gier ze strony mobygames.com, a kosmita z wiki poświęconej Obcy: Izolacja.

 

Black & White (Lionhead Studios, Electronic Arts, 2001)

Jaka produkcja byłaby lepsza do rozpoczęcia bloga niż ta, która w momencie wydania wyprzedzała gry dostępne na rynku, jeśli chodzi o zawarte w niej rozwiązania. Ale nie będziemy zajmować się nimi wszystkimi - przedmiotem tego rozdziału będzie sztuczne zachowanie chowańca, bardzo rozbudowane jeśli chodzi o zachowanie oraz interakcje. Mamy wprawdzie pomniejsze istoty, wieśniaków, ale ich system nie jest aż tak zaawansowany na tle obecnych ówcześnie produkcji, tak więc zdecydowałem się na pominięcie ich w tym zestawieniu, a jedynie będą wspomniani na początku.

Podrozdział opracowany na bazie artykułu Jamesa Wexlera: "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" oraz wyszczególnionych w pracy źródłach.

Jedna bóg, jedna bestia i wielu wyznawców

W swoich założeniach produkcja prezentuje się dość prosto - jako bóg poprzez "rękę" opiekujemy się pewnym ludem (np. Celtowie) oraz istotą w polskiej wersji językowej nazwaną chowańcem. Naszym zadaniem jest troszczyć się o poddanych pomagającym im w codziennej egzystencji.

Lud w swej inteligencji jest prosty - troszczy się o dobrobyt oraz wypełnia zadania zlecone mu przez gracza. Sam z siebie też podejmuje pewne działania jak np. wchodzi w związki małżeńskie. System choć do prostych nie należy, nie jest czymś innowacyjnym - podobną tematykę rok wcześniej podjął Maxis z serią The Sims. Niemniej, jeśli chodzi o chowańca, mamy tu do czynienia z dziełem sztuki w zakresie SI w grach wideo.

Za sztuczną inteligencją chowańca stała  prosta idea  - chęć stworzenia istoty zarówno tak ludzkiej jak to tylko możliwe (podatna na zmiany, sympatyczna) jak i wiedząca jak zadowolić mistrza oraz w działać w oparciu o naukę odpowiednio się zachowywać. Przed Black & White wspomniana wcześniej seria "The Sims" udanie podjęła tą próbę, choć nie było to w tej skali co w produkcji  Lionhead Studios.

Siłą systemu zastosowanego w Black & White jest to, że twórcom udało się połączyć kilka dość rozbudowanych systemów. Inspirowany pracą Marvina Minsky’ego z MIT na temat SI został on ukształtowany w następujący sposób.

  • Pary atrybut-wartość, które określają wierzenia istoty;
  • SI oparte na skryptach, które na podstawie pewnych zasad ewaluuje sytuacje;
  • Wsparte o sieć neuronową (perceptrony reprezentujące żądze) drzewko decyzyjne dotyczące stosunku postaci do pewnej grupy obiektów;

Dzięki połączeniu tych taktyk udało się uzyskać stworzenie, które jest w stanie uczyć się jak należy się zachowywać, czyli mówimy tu o wykonywaniu zadań oraz stosunku do  obiektów/pragnień, wliczając w to ich zaspokajanie. Gdy stworzenie wykonane pewne zadanie, gracz może nagrodzić go pieszczotą zachęcając do tego typu działań w przyszłości albo wymierzyć klapsa, co zahamuje tego typu zachowania. A zlecenie danego zadania jest odbierane jako coś istotnego. Najprościej można to przyrównać do wychowywania dziecka.

Dodatkowo deweloperom udało się tak zaprogramować istotę, że ta może uczyć się z obserwacji, zarówno wieśniaków jak i kontrolującego ją boga (gracza). Co wpływa na jej zachowanie oraz podejście do wykonywania różnych zadań, dzięki czemu gdy wykona jakieś zlecenie, dochodzi do modyfikacji struktury.

Takie zmiany można zaobserwować także w przypadku pożywiania się. Istota wie, że jeśli nie będzie tego robić, umrze – ta wiedza jest dostępna od jej początku. Jednak nie wie przy tym, jak powinna się odżywiać, czyli będzie dochodziło do eksperymentów. I jeśli skonsumuje obiekt, który nie wywoła zamierzonej reakcji albo co gorsza zaszkodzi, będzie wiedziało, że ten sposób odżywiania się jest niewłaściwy. Z perspektywy kodu dojdzie do zmiany w drzewie decyzyjnym odpowiedzialnym za ten aspekt, gdzie to wydarzenie zostanie odnotowane. Poniżej za pomocą przykładu graficznego zobrazuje, jak ten system działa  w przypadku aspektu dotyczącego walki.

                                                                             Zobrazowanie informacji dla gracza skierowane do chowańca. Źródło: artykuł wspomniany we wstępie

 

Dzięki temu istota może stworzyć sobie drzewo decyzyjne, które w tym przypadku wygląda następująco:

                                                                                            Graficzne przedstawienie tego, jak zachować ma się istota. Opracowane na podstawie Rys. 2.

Podsumowanie

Widać więc, że twórcom udało się wewnątrz gry bardzo skomplikowany system chowańca, którego niczym dziecko można nauczyć różnego rodzaju zachowania. Dołączając do tego fakt, że gra działała jak na ten system płynnie mamy rozwiązanie wybiegające poza czas w którym produkcja ukazała się na rynku. Widać przy tym było, że są to górne limity jeśli chodzi o moc dostępnego ówcześnie sprzętu. Black & White doczekał się kontynuacji, która ukazała się w 2005 i rozwija część pomysłów pierwowzorów. Ze względu na zawarte systemy sztucznej inteligencji oba tytuły są warte sprawdzenia.

 

 

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.

 

Half-Life (Valve, Sierra Entertainment, 1998 (PC), 2001 (PS2))

Produkcja nietuzinkowa, genialna, wciąż ciesząca się wysoką popularnością wśród niektórych graczy. No i zaawansowana jeśli chodzi także o sztuczną inteligencję. Poniżej próba przeanalizowania systemu SI wraz z tym, dlaczego i jak działa.

Podrozdział opracowany na podstawie materiału Simona Rotha ">z kanału na Youtube, który to powstał po rozebraniu kodu gry na czynniki pierwsze.

Mądrzy zanim to było modne

Z grubsza - produkcja podejmuję historię pewnego człowieka, który znalazł się w złym miejscu o złym czasie, Gordona Freemana. Gra korzysta ze zmodernizowanej technologii id Software, znanej jako GoldSrc. Warto przy tym wspomnieć o tym, że silnik Half-Life w odróżnieniu od technicznego przodka korzysta z C++, a nie języka C. To dało możliwość stworzyć bazę z której można potem tworzyć dziedziczne jednostki, czyli przekazywać im pewne kluczowe elementy (mamy chociażby potwory).

Po tym kładziemy jednostkę na mapie gry - nie będzie się ona jednak orientować w tym co robi, a nam zależy na bystrym wojowniku, a nie zagubionej owieczce, Tu z pomocą przychodzi "Wzrok" oraz "Słuch" i skojarzony z nim "Węch".Pierwszy z elementów wskazuje na to, czy jednostka ma do czynienia z wrogiem w polu widzenia, natomiast drugi bada, czy w określonej odległości nie wydobył się jakiś dźwięk. To samo tyczy się także "węchu", który na potrzeby kodu został przetworzony na niesłyszalny dźwięk.

Następnie te informacje zostają przetworzone na binarny kod, który to trafia do innych informacji przekazywanych jednostce (np. stan amunicji, zdrowia, fakt bycia za osłoną, czy przyjaciele są na linii strzału), a następnie na jego podstawie tworzy plan. Jest to zestaw nieskomplikowanych zadań, które są odpowiedzią na przekazaną przez system informację - są one na tyle proste, że nie da się ich rozbić na prostsze komendy. W razie zmiany jakiegoś czynnika, plan idzie do kosza i jest tworzony nowy plan. Np. gdy wróg walczy z innym, ale nagle pojawia się nowy, który stanowi dla niego większe zagrożenie, ten decyduje się zmienić plan na eliminację tego większego zagrożenia.

Przykładowy plan schowania się za osłoną składa się z następujących kroków:

  1. Przestań się poruszać.
  2. Załącz plan odwrotu
  3. Odczekaj 0,2 sekundy
  4. Znajdź osłonę
  5. Poinformuje o znalezieniu osłony
  6. Dotrzyj do osłony
  7. Zaczekaj na ruch
  8. Zapamiętaj ten moment
  9. Zakończ akcję

Podsumowanie

System SI w Half-Life oraz ten z F.E.A.R. łączy jedno - prostota na papierze i dobry efekt końcowy, Systemy te nie są już wykorzystywane tak często jak kiedyś, dały nam okazję zapoznać się z nietuzinkowymi w tym zakresie produkcjami i to z niego są głównie pamiętane.

 

Obcy: Izolacja (Creative Assembly, SEGA, 2014)

Mówiąc o sztucznej inteligencji w grach ciężko nie wspomnieć Creative Assembly, autorach serii Total War i twórcach portów gier sportowych od EA. Choć niestety (dla niektórych) nie będzie o wspomnianych strategiach, a o pewnej produkcji na licencji. Pokazująca, jak poza dostępną technologią, istotne jest dostosowanie jej do mechaniki rozgrywki.

Podrozdział opracowany na podstawie artykułu Tommy'ego Thompsona "The Perfect Organism".

Trzech aktorów, jeden łowca i trup

Produkcja opowiada losy pasażerki pewnego statku, gdzie mamy nieproszonego gościa Ksenomorfa, który po zobaczeniu Amandy (kontrolowana przez gracza) dąży do jej szybkiej eliminacji. Czyli jak ktoś oglądał "Obcy - Ósmy Pasażer Nostromo" będzie z grubsza wiedział, o co w grze dąży - pozostałym wystarczy pierwsze zdanie, które daje jakieś uczucie z czym ma się do czynienia.

Tak więc twórcy mieli przed sobą dość skomplikowane zadanie - stworzyć Ksenomorfa, który z jednej strony nie będzie oszukiwał, a z drugiej będzie stanowił dla gracza wyzwanie w które on uwierzy. Mamy też przy tym - względem chociażby Alien: Colonal Marines - jedną podstawową różnicę, jaką jest nieśmiertelność wroga. Można go przepędzać, przechytrzyć czy przed nim uciec, ale nie trwale wyeliminować. Te rozmyślania dały początek filozofii znanej jako "psychopatic serendipity" (można to luźno tłumaczyć jako "szczęśliwą przypadkowość", dokładne tłumaczenie tego zwrotu nie istnieje), czyli łowca jest zawsze w dobrym miejscu i o dobrym czasie, by złapać ofiarę. Nawet jeśli finalnie nie zrealizuje tego celu, przynajmniej nastraszy gracza. To spowodowało, że CA zaprojektowało 3 systemy sztucznej inteligencji - Dyrektora (macro AI), Ksenomorfa (micro-AI) i łączącego go "subsystemu". I wszystkie one składają się na to, by udało się zaprojektować obcego niczym żywcem wyjętego z filmu,

Wszechwiedzący Planista (Macro-AI)

Pierwszym elementem tego systemu jest SI Dyrektora. Jest to wszechwiedząca istota, która poniekąd steruje zachowaniem Obcego, wysyłając go w rejon, gdzie obecnie gracz się znajduje nie mówiąc przy tym o jego dokładnej lokalizacji. Na zachowanie dyrektora istotnie wpływa coś, co można określić jako "miernik zagrożenia" - na jego wielkość wpływa odległość celu od ksenomorfa, czas potrzebny na osiągnięcie ofiary oraz to, czy jest on w zasięgu wzroku. Gdy jest on za niski, ma miejsce wspomniana w poprzednim zdaniu akcja. Gdy natomiast przekroczy on określoną wartość, kosmita zostaje wysłany w inny rejon, co pozwala graczowi na przejście w dalsze etapy historii - inaczej groziłoby to sytuacją, że gracz, nie widząc postępu w rozgrywce z niej zrezygnuje. Działa on na zasadzie "Utility AI", czyli wspominanej wcześniej reakcji na pewne czynniki. Jeśli ktoś miał do czynienia z BioShock: Infinite, na podobnej zasadzie działa towarzysząca protagoniście Elizabeth.

Zabójczy łowca (Micro-AI)

Drugim elementem tego rozbudowanego systemu jest ksenomorf, krążący po okręci Sewastopolu łowca dążący do stania się jedyną żyjącą i świadomą istotą na pokładzie. W trakcie jego tworzenia deweloperzy zdecydowali się na zastosowanie popularnego systemu drzewek decyzyjnych wspartych przez system sensorów oraz "punkty uwagi". W ramach drzewek decyzyjnych występuje 100 węzłów z czego 30 odpowiada za to, jak Obcy ma się zachować (pozostałe 70 mówi o dokładnych akcjach). To dało twórcom do stworzenia wrażenie, że Obcy się uczy, ponieważ pewne jego zachowania nie są początkowo możliwe.  

System sensorów wykorzystywany jest, gdy kosmita dostaje informację o sekcji statku, gdzie znajduje się kontrolowana przez gracza postać. Po dotarciu na miejsce "czujniki" starają się wyłapać elementy świadczące o tym, że cel występuje - takie jak bieg, odgłosy wystrzału czy wykrywacz. I są one umieszczone także na tyle głowy. Tak, ksenomorf ma "oczy z tyłu głowy, by gracz nie mógł skradać się tuż za wrogiem.

Co dzieje się natomiast po przybyciu na miejsce, gdy łowca nie znajdzie swojej ofiary? Krąży zahaczając o strefy zainteresowania oraz punkty zainteresowania, które to są generowane losowo albo zostały arbitralnie ustawione przez twórców. W ramach tego zdarza się, że powraca on do miejsca które już przejrzał celem upewnienia się, czy czegoś nie pominął. Co ważniejsze - Obcy poza dwiema sytuacjami na potrzeby scen przerywnikowych - nie jest teleportowany, a cały czas swobodnie się przemieszcza.

Podsumowanie 

W ramach Alien: Isolation istotne było tak stworzyć system sztucznej inteligencji, by wiernie naśladowała ideę filmu. Zostało to osiągnięte za pomocą połączonych kilku systemów, które starałem się powyżej przybliżyć.

 

Thief: The Dark Project (Looking Glass Studios, Eidos Interactive, 1998)

Looking Glass Stuios przez swój krótki czas istnienia czas istnienia stworzył kilka ciekawych gier, że chociażby wspomnę o System Shock 2. Ale to nie o pechowym co do sprzedaży klasyku będzie ten rozdział, ale skradance z serii Thief. Produkcji, która pozwoliła narodzić się gatunkowi, a jej system SI jest na tyle zaawansowany, że nawet dzisiaj wśród niektórych może budzić podziw. Poniżej zostanie przedstawiona analiza wzbogaconego "Systemu Sensorów", choć pierwotny projekt tego nie zakładał. A system został zaprojektowany przez jednego człowieka w kilkanaście dni. Choć po tym musiał odsypiać to przez cały tydzień. ;)

Podrozdział opracowany na podstawie trzech artykułów: 12 oraz 3.

Złodziej, którzy prawie nie wyszedł z cienia (Thief: The Dark Project)

Thief podejmuje losy złodzieja Garretta, które celem jest dotrzeć do pewnego punktu nie zostawiając za sobą trupów - za zabicia przewidziana jest w tym systemie kara. Widać więc, że zwykle stosowane systemy SI nie są w stanie sobie poradzić z wyzwaniem, jakim było stworzenie wiarygodnego wzoru zachowania strażników,

Rdzeniem do tego jest znany z Half-Life system sensorów. Przekopiowanie go byłoby z perspektywy mechaniki rozgrywki złym posunięciem, bo jak przełożyć 1:1 system ze strzelaniny, gdzie skradania jako takiego prawie nie ma do produkcji, która tym stoi. Wymagało to więc innego podejścia, ale zanim o nim słów parę, warto przyjrzeć się temu, co stało za tym pomysłem. Tu z pomocą przychodzą wspomnienia kluczowego pracownika Looking Glass Technologies, Paula Neuratha. Opowiadał on, jak w dzieciństwie lubił się przekradać do ruin, by tam potem je zwiedzać. W trakcie tego doświadczał on poczucia ryzyka, że go złapią i wymierzą karę. Tak więc idąc tym zaprojektowali pewien szkielet, ale coś tu nie zagrało - miał on poważne problemy chociażby z przekazywaniem informacji o tym, że coś się pojawiło. W międzyczasie pojawił się chociażby miernik widoczności, który wskazywał, czy postać sterowana przez gracza jest w cieniu i w jakim stopniu. I w tym momencie przychodzi jeden z pracowników studia ze wspaniałą ideą i po przekonaniu pozostałych osób spędza dość męczące trzy tygodnie na projektowaniu systemu. Który, jak dużo później wspomina Paul Neurath, jest wspaniałym kawałkiem kodu. Więc jak ten kod działa?

Podstawowe komponenty systemu sensorów. Źródło: https://www.gamasutra.com/view/feature/131297/building_an_ai_sensory_system_.php

Jest to wyniesiony na wyższy poziom system sensorów - opiera się to na prostej idei, że większość bodźców wynika ze wzroku oraz słuchu. Wobec którego twórcy mieli dwa podstawowe wymagania - złożoność, jeśli chodzi o potencjalne czynniki przyciągające uwagę jednostki oraz musi być często aktywowany celem szukania ruchu, a co za tym idzie potencjalnego zagrożenia. Te elementy składają się na ogólny wzorzec "Awareness", czyli "świadomość". W jego ramach mamy różne informacje na temat obiektu zainteresowania jak chociażby to, czym on jest czy gdzie się znajduje. Na podobnej zasadzie działa też wzorzec związany z alarmem. To, co przechowuje wspomniane tu informacje, to "Sense links" w ramach których jednostki mogą między sobą przesyłać pewne informacje o obiekcie zainteresowań. A to wszystko liczone w czasie rzeczywistym. Wspomniane wcześniej obiekty definiowane są poprzez między innymi widoczność, czyli to jak obiekt jest oświetlony. Widoczność ta nie jest tak jak to bywało w 2, ale 3 wymiarach.

Rys - Elementy składowe części systemu. "Sense Links" Źródło: https://www.gamasutra.com/view/feature/131297/building_an_ai_sensory_system_.php

Jak już te informacje zostaną dostarczone, pora na ich wykorzystanie. A to odbywa się za pomocą automatu skończonego (Finite State Machine). Dzięki temu można uzyskać zachowanie, które:

  • Jest przewidywalne, co z perspektywy gatunku może być istotne;
  • Można się go szybko nauczyć, patrz wyżej;
  • Miło się ogląda, znowu patrz wyżej. ;)

Podsumowanie

Powyżej starałem się przedstawić współpracuje ze sobą systemy, które składają się na sztuczną inteligencję w pierwszej odsłonie serii Thief. Za cenę wyższych niż standardowe wymagań co do procesora udało się osiągnąć system, który potrafi przeanalizować wiele informacji dając przy tym coś, co z perspektywy Paula Neuratha było istotne - dobre doświadczenie.

 

 

Niewymienieni, ale warci uwagi

Wcześniej starałem się przedstawić produkcje, które wyróżniają się, jeśli chodzi o SI. Ale dobrze wiem, że to tylko ułamek tej fascynującej tematyki. Dlatego też ten podrozdział poświęcę produkcjom w przypadku których warto się zainteresować się sztuczną inteligencją. Brak wyboru ich do głównego działu wynika nie tyle z limitu co do liczby produkcji jakie planowałem opisać, ale i brakach w dokumentacji na której można się oprzeć.

Ciekawostka związana z tematyką - Dark Souls III podobno korzysta z tego samego systemu, co Horizon: Zero Dawn.

Majesty: Symulator Królestwa Fantasy (Cyberlore Studios/Microprose, 2000)

System SI: Przećwiczona sieć neuronowa?

Jest to osadzona w świecie fantasy strategia, gdzie wcielamy się w rolę władcy pewnego zamku.  To, co wyróżnia grę na tle chociażby Age of Empires to brak kontroli nad jednostkami. Można im tylko sugerować pewne rozwiązania, ale nie nakazywać.

Na jakiej zasadzie działa ten mechanizm? Nie wiem - i niestety nie znalazłem żadnego opracowania, które by odpowiadało na to pytanie. A jedynym źródłem jest post na portalu reddit, gdzie jeden z rozmówców sugeruje wspomniany wyżej element. Zakładając, że tak faktycznie jest - wyobraźmy sobie, że mamy do czynienia z siecią neuronową, która może się uczyć w trakcie gry. Jeśli udałoby się nałożyć skuteczną blokadę przed przeuczeniem, byłoby wprost cudownie.

Więcej można poczytać w... nie wiem. Jakby ktoś cudem natrafiłby na takie źródło, miło by było, gdyby się nim tu podzielił.

S.T.A.L.K.E.R.: Cień Czarnobyla (GSC Game World/THQ Inc., 2007)

System SI: Goal Oriented Action Planning (A-life)

Inspirowana powieścią braci Strugackich "Piknik na skraju Drogi" strzelanina osadzona w fikcyjnej Zonie. Gdzie współegzystują se sobą poszukiwacze skarbów i szaleńcy w jednym - stalkerzy - oraz powstałe wskutek pewnych czynników potworności - mutanty. 

Na jakiej zasadzie działa ten system? Tak jak wspominałem przy opisywaniu SI w .F.E.A.R. celem wroga nie jest eliminacja gracza, a zagrożenia. Dlatego też można być świadkiem, że jeden mutant walczy z innym mutantem. Albo stalkerzy strzelają się ze sobą. Jedna z plotek wskazuje, że w pewnym momencie projektowania gry SI było na tyle świadome, że mogło w stanie samo ukończyć grę. Niemniej system cierpi na jedną bolączkę - przeładowywanie offline/online - które sprawia, że gra ma "przycięcia".

Więcej można poczytać tu: http://www.gamasutra.com/view/news/108781/Interview_Inside_The_AI_Of_STALKER.php

The Sims (seria) (Maxis, Electronic Arts, 2000-)

Systemy SI: Różne (np. systemy hierarchiczne, drzewa decyzyjne) 

Czyli jak pierwotny koncept stworzenia oprogramowania do robienia wystroju wnętrz stał się "symulatorem życia". Gra pod tym względem bardzo zaawansowana sprawiająca, że mamy do czynienia z wiarygodnym systemem. Na jakiej zasadzie on działa? Mamy drzewka decyzyjne odpowiedzialne za zaspokajanie potrzeb wsparty przez "Smart Objects".

Więcej można poczytać tu albo tu.

Total War (seria) (The Creative Assembly, Electronic Arts/Activision/SEGA, 2000- )

Systemy SI - podzielone na gałęzie związane z interakcją w ramach mapy gry/pola bitewnego. Wykorzystywany algorytm - MCTS (Monte Carlo Tree Search)

Produkcja ze względu na jakość SI nie mogła się niestety znaleźć. Niemniej, co twórcom trzeba oddać, to stworzenie wysoce rozbudowanego systemu pozwalającego na tyle różnych działań sztucznej inteligencji. Choć w przypadku Rome II: Total War czy Empire; Total War początkowo odbiło im się to czkawką.

Batman: Arkham Asylum (Rocksteady Studios, Eidos Interactive, 2009)

System SI: Finite State Machine (Automat skończony)

Dobry przykład, że nawet prosty schemat może dać zaskakująco przyzwoity rezultat. Drugi projekt młodego brytyjskiego studia i pierwszy osadzony w uniwersum od DC Comics podejmuje historię Batmana i jego rywalizacji z pewnymi kryminalistami Gotham.

I o ile w otwartej konfrontacji starcia te wyglądają.. nieszczególnie dobrze, tak skradankowo wypada bardzo dobrze. Nieprzewidywalność zachowań jednostek sprawiało, że jeśli komuś zależało na szybkiej eliminacji bez narażania się na atak było dość skomplikowanie.

Halo 2 (Bungie Software, Microsoft Studios, 2004)

Bungie w pierwszych kilkunastu latach swojego istnienia mogło wprowadzać niektórych z zaskoczenie. Nie dość, że za ważną platformę obrali Macintosha (a nie MS-DOS), to dodatkowo w erze gier dla pojedynczego gracz wypuścili produkcję z rozgrywką rywalizacyjną i strzelaninę z istotną fabułą. Zwieńczeniem tego był inspirowany serią Marathon i wydany w 2001 rok Halo: Combat Evolved. Który tak samo jak Halo 2 korzysta z popularnego dzisiaj rozwiązania - drzew decyzyjnych. Więcej można zobaczyć tu: ">The Behaviour Tree AI of Halo 2.

Oceń bloga:
26

Którą z produkcji wymienionych powyżej darzysz największą sympatią?

Black & White
174%
F.E.A.R. (First Encounter Assault Recon)
174%
Half-Life
174%
Halo 2
174%
Obcy: Izolacja (Alien: Isolation)
174%
Majesty: Symulator Królestwa Fantasy
174%
S.T.A.L.K.E.R.: Cień Czarnobyla
174%
Batman: Arkham Asylum
174%
Thief: The Dark Project
174%
Pokaż wyniki Głosów: 174

Komentarze (32)

SORTUJ OD: Najnowszych / Najstarszych / Popularnych

cropper