Obwohl ich dem ersten Absatz von DampeS8N zustimme (dh, die KI des Spiels muss nur so schlau sein, dass der Spieler denkt, dass sie schlau ist), muss diese Frage meines Erachtens noch etwas genauer erörtert werden. Die verwendeten Datenstrukturen könnten FSMs für alle Ebenen sein, aber das beantwortet nicht wirklich die Frage, wie die einzelnen Systeme funktionieren.
Haftungsausschluss: Ich habe die Civilization-Spiele kaum gespielt, daher ist mein Verständnis des Gameplays eingeschränkt. Bei offensichtlichen Fehlern bitte ich um Entschuldigung. Bitte korrigieren Sie mich, und ich werde gerne bearbeiten.
Ich werde Zitate aus dem ursprünglichen IGN-Artikel nehmen .
1. Taktische KI
Auf der untersten Ebene nutzt die taktische KI die vorhandenen Kräfte, um einen Kampf auf lokaler Ebene zu gewinnen.
Dies ist wahrscheinlich der Standardteil des Subsystems. Es gibt unbegrenzte Möglichkeiten, dies durch die Verwendung von FSMs, Verhaltensbäumen (oder sogar durch zufällige Aktionen, je nach Schwierigkeitsgrad der KI) zu erreichen.
Da es sich jedoch um ein rundenbasiertes Spiel handelt, das dem Risiko ähnelt, ist es meiner Meinung nach wahrscheinlicher, dass jeder Einheit eine Punktzahl zugewiesen wird. Abhängig von verschiedenen Variablen (Zugehörigkeiten, Geländeboni usw.) sind an diese Punktzahl Multiplikatoren angehängt.
Das Ergebnis wird dann folgendermaßen berechnet:
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
Es ist sinnvoll, dass die KI versucht, diese Punktzahl im Kampf zu maximieren.
Addiere einen Epsilon-Wert (zB kleine zufällige Chance auf Misserfolg / Erfolg) und du hast eine ziemlich anständig aussehende KI (niemand will einen perfekten Gegner, das macht einfach keinen Spaß!).
2. Operative KI
Einen Schritt weiter wählt die operationelle KI die zu bekämpfenden Kämpfe aus und stellt sicher, dass die erforderlichen Kräfte verfügbar sind.
Ich denke, dazu gibt es ein paar Punkte:
- Bewertung der Stromstärke
- Verstärkung der Einheiten
- Bewerten, welche Kämpfe zu wählen / zu vermeiden sind
Aktuelle Stärke auswerten - Das schreit mir nur nach Influence Map . Es kann leicht auf einem Hex-Raster dargestellt werden. Da dieses Subsystem kampforientiert ist, können die Einflusswerte für die Stärkewerte jeder Einheit in der Nähe repräsentativ sein. Wenn Sie eine massive Armee haben, die sich auf ein kleines Gebiet mit Sechsecken konzentriert, ist der Einflusswert sehr groß und die operationelle KI berücksichtigt dies bei der Bewertung der Kämpfe, die ausgewählt werden sollen. Vergessen Sie nicht, dass auch die Einflusswerte der gegnerischen Armeen berechnet werden. Auf diese Weise kann die operative KI potenzielle eingehende Bedrohungen vorhersagen.
Verstärkung von Einheiten - Indem die KI Informationen über gegnerische Fraktionen von der Einflusskarte erhält, kann sie feststellen, welche Einheiten der größten Bedrohung ausgesetzt sind. Die KI kann dann nahegelegenen Einheiten den Befehl erteilen, die bedrohten Parteien zu verstärken.
Bewertung, welche Kämpfe zu wählen / zu vermeiden sind - Hier können einige Situationen auftreten. Wenn die KI erkennt, dass eine Einheit bedroht ist UND es keine Einheiten in der Nähe gibt, die ihr helfen könnten, a) beschließen Sie, die Einheit zu opfern (wenn es sich nur um eine geringe Infanterie handelt, anstelle eines unersetzlichen Generals) oder b) bestellen Sie die Einheit zurückziehen. Umgekehrt könnte die KI, wenn sie eine schwache feindliche Einheit in der Nähe einer Armee entdeckt, die Einheiten anweisen, diesen Feind auszuschalten.
Hier ist ein anständiges Dokument , das Einflusskarten in Echtzeit-Strategiespielen verwendet.
3. Strategische KI
Die strategische KI bewegt sich noch weiter nach oben und verwaltet das Imperium als Ganzes. Sie konzentriert sich darauf, wo Städte gebaut werden und was mit ihnen zu tun ist.
"Wo soll ich eine Stadt bauen?" klingt nur nach Positionsbewertung. Schachprogramme und andere Spiele bestimmen damit, ob eine bestimmte Position wünschenswert ist. Beispielsweise:
Verhexung A: In der Nähe von Ressourcen, im Hochland, in der Nähe von Verbündeten, in der Nähe des Feindes
Die Positionsbewertungsfunktion könnte diese drei Faktoren wie folgt annehmen:
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)
Und welches Sechseck die höhere Punktzahl hat, wird der Ort sein, an dem die Stadt gebaut wird. Weitere Informationen zu Auswertungsfunktionen finden Sie hier .
Ich gehe davon aus, dass die strategische KI auch eine Reihe von vorgefertigten Pseudostrategien im Spiel hat, abhängig von der Art des Sieges, den die KI anstrebt.
4. Große strategische KI
An der Spitze der Leiter befindet sich die große strategische KI, die entscheidet, wie das Spiel gewonnen wird.
Ich denke, dies ist wahrscheinlich das einfachste und es macht den Eindruck, dass es beeindruckender ist, als es wirklich ist. In einem solchen Spiel wird es nur eine begrenzte Anzahl von Siegertypen geben. In dem Artikel wird ein Eroberungssieg erwähnt, vorausgesetzt, es gibt auch Bündnissiege usw. Es könnte so einfach sein, einen der Typen zufällig auszuwählen und ihn dann an die anderen Systeme weiterzugeben.
EDIT: Natürlich könnte, wie von DampeS8N hervorgehoben, die Art der Karte die beste Siegbedingung vorgeben. In diesem Fall könnte sie von den Designern oder einer Art Bewertungsfunktion unter Berücksichtigung verschiedener Variablen fest codiert werden.
Zusammenfassung
Ich denke, was wirklich wichtig an dieser Art von System ist, ist, dass die Subsysteme so geschichtet sind, dass sie eigentlich nicht viel miteinander kommunizieren müssen. Es scheint sich um eine Top-Down-Architektur zu handeln, bei der die Komponenten lose miteinander verbunden sind. Vom technischen Standpunkt aus gesehen ist es klar und flexibel und lässt sich wahrscheinlich von Emergent Behavior und / oder Subsumption Architecture inspirieren .
Ich entschuldige mich wirklich für die Länge dieses Beitrags, er hat sich in ein Biest verwandelt :(
Wie auch immer, ich hoffe es hilft!