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!