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!
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
źródło