Złożona sztuczna inteligencja gier dla turowych gier strategicznych

26

Robię badania nad turowym projektem strategicznym i szukam dobrych zasobów na ten temat. Ta gra jest typową grą wojenną, w której kraje mogą ze sobą walczyć, rozmieszczać jednostki i zmuszać je do poruszania się po heksagonalnej mapie tilemap, atakowania się nawzajem itp.

Szczególnie interesuje mnie organizacja AI cywilizacji V! Według Wikipedii gra wykorzystuje cztery różne systemy AI dla różnych warstw AI gry:

  • taktyczna sztuczna inteligencja kontroluje poszczególne jednostki
  • operacyjna sztuczna inteligencja nadzoruje cały front wojenny
  • strategiczna AI zarządza całym imperium
  • wielka strategiczna sztuczna inteligencja wyznacza długoterminowe cele i decyduje, jak wygrać grę

Pod względem koncepcyjnym wydaje się, że osiągnięcie złożonej sztucznej inteligencji ma sens, dlatego ciekaw jestem, jak te różne systemy AI działają (i działają razem). Taktyczna sztuczna inteligencja jest prawdopodobnie najłatwiejsza do zrozumienia, ponieważ obsługuje podejmowanie decyzji dla pojedynczej jednostki (ruch, atak, naprawa, wycofanie się itp.), Ale myślę, że inne systemy AI są tam, gdzie naprawdę są interesujące. Na przykład, co robi operacyjna sztuczna inteligencja i jak to robi? Jestem pewien, że są to najlepiej strzeżone tajemnice Firaxis Games, ale fajnie byłoby rozpocząć dyskusję na ten temat, aby dowiedzieć się więcej na ten temat.

Dobrze byłoby też wiedzieć, jeśli ktoś zna jakieś dobre książki dotyczące turowej gry strategicznej AI. Oczywiście jest to rzadko rozstawiony temat w sieci. Dostałem „Programowanie sztucznej inteligencji gry przez przykład”, ale ta książka bardziej dotyczy sztucznej inteligencji jednego agenta niż sztucznej inteligencji na wysokim poziomie.

BadmintonCat
źródło

Odpowiedzi:

19

Chociaż zgadzam się z akapitem otwierającym DampeS8N (tj. Sztuczna inteligencja gry musi być na tyle sprytna, aby gracz myślał , że jest sprytny), uważam, że to pytanie wymaga nieco więcej rozwinięcia. Wykorzystywane struktury danych mogą być FSM dla wszystkich poziomów, ale tak naprawdę nie odpowiada to na pytanie, jak działają poszczególne systemy.

Oświadczenie: Prawie nie grałem w gry Civilization, więc moje rozumienie rozgrywki jest ograniczone. Jeśli są jakieś oczywiste błędy, przepraszam. Popraw mnie, a z przyjemnością dokonam edycji.

Będę czerpać cytaty z oryginalnego artykułu IGN .

1. AI taktyczna

Na najniższym poziomie taktyczna sztuczna inteligencja wykorzystuje dostępne siły, aby wygrać bitwę na skalę lokalną.

Jest to prawdopodobnie najbardziej standardowa część podsystemu. Istnieją nieograniczone sposoby realizacji tego zadania przy użyciu FSM, drzew zachowań (a nawet wykonywania losowych akcji, w zależności od trudności sztucznej inteligencji).

Ponieważ jednak jest to gra turowa, podobna do ryzyka, myślę, że bardziej prawdopodobne jest przydzielenie każdej jednostce wyniku. Następnie do tego wyniku dołączane są mnożniki w zależności od różnych zmiennych (lojalności, bonusy za teren itp.).

Wynik jest następnie obliczany przez coś takiego:

If (AI unit score >> (much greater) enemy unit score) Then Completely destroy enemy unit
If (AI unit score > (somewhat greater) enemy unit score) Then Partially destroy enemy unit
If (AI unit score < (somewhat less) enemy unit score) Then Partially destroy AI unit
If (AI unit score << (much less) enemy unit score) Then Completely destroy AI unit

Ma sens, że AI będzie próbować zmaksymalizować ten wynik podczas bitwy.

Dodaj wartość epsilon (np. Mała losowa szansa na porażkę / sukces), a będziesz mieć całkiem przyzwoitą AI (nikt nie chce idealnego przeciwnika, to po prostu nie jest fajne!).

2. Operacyjna AI

O krok wyżej operacyjna sztuczna inteligencja wybiera bitwy do walki i zapewnia dostępność niezbędnych sił.

Myślę, że jest na to kilka punktów:

  • Ocena aktualnej siły
  • Wzmocnienie jednostek
  • Ocena, które walki wybrać / unikać

Ocena aktualnej siły - to dla mnie krzyki Wpływowej Mapy . Można go łatwo przedstawić na siatce heksadecymalnej. Ponieważ ten podsystem jest zorientowany na walkę, wartości wpływów mogą być reprezentatywne dla wartości siły każdej jednostki w pobliżu. Jeśli masz ogromną armię skupioną na niewielkim obszarze sześciokątów, wartość wpływu będzie ogromna, a operacyjna sztuczna inteligencja weźmie to pod uwagę podczas oceny walk do wyboru. Nie zapominaj, że zostaną również obliczone wartości wpływów przeciwnych armii. Pozwala to operacyjnej sztucznej inteligencji przewidywać potencjalne nadchodzące zagrożenia.

Wzmocnienia jednostek - Otrzymując informacje o przeciwnych frakcjach z mapy wpływów, AI może określić, które jednostki są najbardziej zagrożone. AI może następnie wydać polecenie pobliskim jednostkom, aby udały się i wzmocniły zagrożone strony.

Ocena, które walki należy wybrać / których uniknąć - może tu wystąpić kilka sytuacji. Jeśli AI wykryje, że jednostka jest zagrożona ORAZ nie ma żadnych pobliskich jednostek, które mogłyby to pomóc a) zdecydować się poświęcić jednostkę (jeśli jest to po prostu mała piechota, zamiast niezastąpionego generała, na przykład) lub b) Zamów jednostkę wycofać się. I odwrotnie, jeśli AI wykryje słabą wrogą jednostkę w pobliżu armii, może nakazać jednostkom zabranie tego wroga.

Oto przyzwoity artykuł, który wykorzystuje mapy wpływów w grach strategicznych czasu rzeczywistego.

3. Strategiczna AI

Idąc jeszcze wyżej, strategiczna sztuczna inteligencja zarządza imperium jako całością, koncentrując się na tym, gdzie budować miasta i co z nimi zrobić.

„Gdzie mam zbudować miasto?” po prostu brzmi jak ocena pozycji. Programy szachowe i inne gry używają go do określania pożądanej pozycji. Na przykład:

Heks A: Blisko zasobów, na wysokim terenie, blisko sojuszników, blisko wroga Heks B: Daleko od zasobów, na średnim terenie, średnia odległość od sojuszników, daleko od wroga

Funkcja oceny pozycji może przyjąć następujące trzy czynniki:

Score = Proximity to resources (closer yields a higher score) + 
terrain elevation (higher yields higher score) + 
proximity to allies (closer is better) + 
proximity to enemies (farther is better)

I którykolwiek sześciokąt ma wyższy wynik, będzie tam, gdzie budowane jest miasto. Więcej informacji na temat funkcji oceny można znaleźć tutaj .

Sądzę, że strategiczna sztuczna inteligencja ma również wiele pseudo wstępnie przygotowanych strategii w grze, w zależności od rodzaju zwycięstwa, do którego dąży AI.

4. Grand Strategic AI

Na szczycie drabiny znajduje się wielka strategiczna sztuczna inteligencja, która decyduje, jak wygrać grę.

Myślę, że jest to prawdopodobnie najprostsza z tej grupy i sprawia wrażenie, że robi wrażenie bardziej niż jest w rzeczywistości. W grze takiej jak ta będzie tylko ograniczona liczba typów zwycięstw. W artykule wspomniano o zwycięstwie podboju, zakładając, że są również zwycięstwa Sojuszu itp., Może być tak proste, jak losowe wybranie jednego z typów, a następnie przekazanie go na inne systemy.

EDYCJA: Oczywiście, jak wskazał DampeS8N, rodzaj mapy może dyktować najlepszy warunek zwycięstwa, w którym to przypadku, w takim przypadku może zostać zakodowany przez projektantów lub jakiś rodzaj funkcji oceny uwzględniającej różne zmienne.

Podsumowanie
Myślę, że naprawdę ważne jest, aby zwrócić uwagę na tego rodzaju system, ponieważ sposób, w jaki podsystemy są warstwowe, tak naprawdę nie muszą komunikować się ze sobą zbyt dobrze. Wygląda na architekturę odgórną z luźno połączonymi komponentami. Z technicznego punktu widzenia jest czysty i elastyczny i prawdopodobnie czerpie inspirację z Emergent Behavior i / lub architektury Subsumption .

Naprawdę przepraszam za długość tego posta, który zmienił się w trochę bestii :(

Tak czy inaczej, mam nadzieję, że to pomoże!

Ray Dey
źródło
2
„Myślę, że jest to prawdopodobnie najprostszy z nich i sprawia wrażenie, że robi wrażenie bardziej niż jest w rzeczywistości”. Nie byłbym zbyt pewien. Istnieje różnica między zwykłą decyzją o zwycięstwie podboju a decyzją, na kogo wypowiedzieć wojnę, czy jesteśmy przesadnie rozwinięci i musimy pozwać o pokój, który cel jest najsłabszy do ataku, jakie jednostki musimy zbudować, zdobyć odpowiednie zasoby strategiczne, aby wzmocnić naszą armię, znalezienie sposobu, aby zmusić dwóch wrogów do walki ze sobą itp. Faza ta jest o wiele bardziej skomplikowana, niż można to przypisać.
Nicol Bolas,
1
Wow, i pomyślałem, że moja odpowiedź jest trochę długa. LOL. Dobry występ.
DampeS8N,
1
Warto zauważyć, że Civ absolutnie nie ma prostych warunków zwycięstwa. Istnieje wiele sposobów na wygraną. Budowanie cudów, rozwój nauki, podbój, dyplomatyczne itd. Wybór, który wybrać, jest często bardzo trudny i może ulec zmianie w zależności od warunków na mapie. Możesz odkryć na przykład, że ktoś, kogo właśnie spotkałeś, jest o wiele przed sobą w nauce i będziesz musiał porzucić tę ścieżkę i zadowolić się nową. Często sukces sprowadza się do utrzymywania otwartych opcji tak długo, jak to możliwe.
DampeS8N,
@NicolBolas może to być bardzo skomplikowane, ale wszystkie punkty, które sprawiłeś, wydają się być obowiązkami na niższych poziomach AI. Decyzja o tym, komu wypowiedzieć wojnę -> Operacyjna. Który cel jest najsłabszy do ataku -> Operacyjny / Taktyczny. Pozyskiwanie właściwych zasobów -> Operacyjne / strategiczne. Jest to całkowicie zgadnięte, ale miałoby sens, że niższe systemy są odpowiedzialne za konkretne strategie zapewniające najniższy poziom sprzężenia.
Ray Dey,
1
@RayDey: Najwyższy poziom sztucznej inteligencji musi być zaangażowany w takie rzeczy, jak pozyskiwanie zasobów, ponieważ musi zdecydować, jak je zdobyć. Dyplomacja może to zdobyć. Rozszerzenie do zasobu może go zdobyć. Poziom operacyjny nie jest właściwym miejscem do decydowania, czy należy o niego walczyć, w przeciwieństwie do innych taktyk. Łączenie jest koniecznością w grze takiej jak Civilization; wszystko wpływa na wszystko inne w tej grze. Nie możesz mieć skutecznej sztucznej inteligencji, która podejmuje decyzje bez dużej ilości sprzężeń. To może tłumaczyć, dlaczego AI Civ V nie jest ... szczególnie jasne;)
Nicol Bolas,
9

Ogólnie rzecz biorąc, sztucznej inteligencji w grach nie należy uważać za „złożoną”, ale chodzi o to, aby uzyskać to, czego chcesz, przy jak najmniejszym wysiłku. Nazwa tej gry to Emergence.

W takim przypadku podstawowa konceptualizacja jest błędna. Te 4 systemy wcale nie muszą ze sobą współpracować. Muszą po prostu wyglądać tak jak oni. Mogą być również o wiele bardziej rozebrane, niż myślisz, że muszą.

Odwróciłeś także kolejność trudności. Najtrudniejszym składnikiem sztucznej inteligencji Civ jest AI taktyczna, a tuż za nią Operacyjna. Strategiczne jest prawdopodobnie bardzo proste, a wielka sztuczna inteligencja jest prawdopodobnie jeszcze prostsza.

Komunikacja między komponentami bardziej przypomina system pomruków, a nie prawdziwą komunikację. Od wysokiego poziomu do niskiego poziomu wyglądałoby to tak:

Grand AI

oceń stan mapy. Biorąc pod uwagę wiedzę, jaką ma AI (która mogłaby być wszystkim lub tylko tym, co miałaby, gdyby był graczem), decyduje, który cel końcowy jest najszybszy do osiągnięcia. Prawdopodobnie jest to maszyna o stanie Skończonym, która wykonuje pewne chrupanie liczb i wybiera cel. Być może jest to coś bardziej egzotycznego; Genetic Algorithm lub ewentualnie Wihajstry oparty Bayesa . Następnie mruczy komunikat w rodzaju „więcej nauki”.

Strat AI

następnie sprawdza, co jest dostępne do pracy z wykorzystaniem wielu takich samych informacji. Chodzi o próbę osiągnięcia tego ogólnego celu, ale martwi się także bardziej szczegółowymi aspektami gry. Czy jestem na wojnie? Czy mam głodujących ludzi? wkrótce. Prawdopodobnie jest to również maszyna stanu skończonego , być może Fuzzy Logic (która jest tak naprawdę ewolucją FSM.) Załóżmy, że jest to prosty FSM. Zadaje powyższe pytania w kolejności, w której, biorąc pod uwagę określone kryteria, zadecyduje o różnych wydarzeniach w tej rundzie. Jestem na wojnie, przeznacz pieniądze na szkolenie żołnierzy. Moi ludzie głodują, zamiast budować coś naukowego, zbuduj tutaj spichlerz.

Wybór jednostek do zbudowania może być częścią AI Strat lub Op AI, w zależności od tego, jak dzielimy rzeczy.

Op AI

weźmie dostępne jednostki i przydzieli je do przejścia na różne fronty wojny. To on zdecyduje o ogólnym kształcie konfliktu, w którym nowe jednostki będą kierować się po ich rozmieszczeniu. Prawdopodobnie jest to również FSM. Może zauważyć, że wróg na Froncie A atakuje słabymi jednostkami przeciwko Jednostce B, i wyśle ​​tam więcej Jednostek B, niż na inny Front, który jest silny przeciwko Jednostce B. Wyda rozkazy ogólne wszystkim jednostkom. Atak do woli. Wycofać się. Wkrótce.

Taktyczna AI

jest zależny od jednostki. Każdy typ jednostki będzie reagował inaczej na ogólny porządek. Jednostka, która ma popełnić samobójstwo, może zignorować rozkaz odwrotu. Jednostki, które są wusami, mogą się wycofać, nawet jeśli otrzymają polecenie walki. Civ jest zazwyczaj bardzo lekka w tego rodzaju sprawach. Zasadniczo wszystkie jednostki w Civ podążają za swoimi poleceniami. Biorąc pod uwagę ich większą kolejność, są (patrz wzór tutaj?) FSM. Czy jestem ranny? Powinienem się wycofać i wyleczyć. Czy mam przewagę w tej lokalizacji? Atak. Czy jestem zbyt blisko ataku? Odsuń się. A złożoność tego FSM nie musi być dużo większa niż te 3 rzeczy, aby być skutecznym i przekonującym jako inteligentny.

Czy można to poprawić?

Tak oczywiście. Pytanie brzmi, czy gracze to zauważą. I w 99% przypadków nie będą.

To wszystko jest sztuczną inteligencją. Grają tutaj inne podsystemy AI. Istnieje A * lub inny algorytm wyszukiwania ścieżki, który pozwala jednostkom znaleźć najkrótszą ścieżkę do lokalizacji. Istnieją algorytmy pozwalające znaleźć najlepszą lokalizację do założenia nowych miast. Wkrótce. Często są zgrupowane z AI i często są naprawdę bardziej złożone niż „myśląca” część AI. W rzeczywistości kod znajdujący odpowiedzi na pytania, które musi zadać FSM, jest często o rząd wielkości bardziej złożony niż sam FSM. Jak dokładnie się to decyduje

DampeS8N
źródło
Doohicky z Bayesian - super
Brian Broom