Embora eu concorde com o parágrafo de abertura do DampeS8N (ou seja, a IA do jogo só precisa ser inteligente o suficiente para fazer o jogador pensar que é inteligente), sinto que essa pergunta precisa de um pouco mais de elaboração. As estruturas de dados em uso podem ser FSMs para todos os níveis, mas isso realmente não responde à pergunta sobre como os sistemas individuais funcionam.
Disclaimer: Eu quase não joguei os jogos Civilization, então meu entendimento da jogabilidade é limitado. Se houver algum erro óbvio, peço desculpas. Por favor, corrija-me e editarei com prazer.
Vou tomar citações do artigo original da IGN .
1. IA tática
No nível mais baixo, a IA tática usa as forças disponíveis para vencer uma batalha em escala local.
Essa é provavelmente a parte mais padrão do subsistema. Existem maneiras ilimitadas de fazer isso usando FSMs, árvores de comportamento (ou mesmo executando ações aleatórias, dependendo da dificuldade da IA).
No entanto, como esse jogo é baseado em turnos, semelhante ao Risk, acho que o mais provável é que cada unidade receba uma pontuação. Existem multiplicadores associados a essa pontuação, dependendo de diferentes variáveis (lealdades, bônus de terreno, etc.).
O resultado é então calculado por algo como isto:
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
Faz sentido que a IA tente maximizar essa pontuação quando estiver em batalha.
Adicione um valor de epsilon (por exemplo, pequena chance aleatória de fracasso / sucesso) e você terá uma IA bastante decente (ninguém quer um oponente perfeito, isso não é divertido!).
2. IA operacional
Um passo adiante, a IA operacional escolhe quais batalhas lutar e garante que as forças necessárias estejam disponíveis.
Eu acho que há alguns pontos para isso:
- Avaliando a força atual
- Reforço de unidades
- Avaliando quais brigas escolher / evitar
Avaliando a força atual - Isso apenas grita o mapa de influência para mim. Pode ser facilmente representado em uma grade hexagonal. Como este subsistema é orientado para o combate, os valores de influência podem ser representativos dos valores de força de cada unidade nas proximidades. Se você tem um exército enorme focado em uma pequena área de hexágonos, o valor da influência será enorme e a IA operacional levará isso em consideração ao avaliar as lutas a serem escolhidas. Não se esqueça, os valores de influência dos exércitos opostos também serão calculados. Isso permite que a IA operacional preveja possíveis ameaças de entrada.
Reforços de unidades - Ao receber informações sobre facções opostas do mapa de influência, a IA pode determinar quais unidades estão sob maior ameaça. A IA pode, então, emitir um comando para unidades próximas irem e reforçarem as partes ameaçadas.
Avaliando quais brigas escolher / evitar - Algumas situações podem ocorrer aqui. Se a IA detectar que uma unidade está ameaçada E não houver unidades próximas para ajudá-la, poderá: a) decidir sacrificar a unidade (se for apenas infantaria humilde, em vez de um general insubstituível, por exemplo) ou b) Encomende a unidade recuar. Por outro lado, se a IA detectar uma unidade inimiga fraca perto de um exército, poderá ordenar que as unidades matem esse inimigo.
Aqui está um artigo decente que utiliza mapas de influência em jogos de estratégia em tempo real.
3. IA estratégica
Subindo ainda mais, a IA estratégica gerencia o império como um todo, concentrando-se em onde construir cidades e o que fazer com elas.
"Onde devo construir uma cidade?" apenas soa como avaliação de posição. Os programas de xadrez e outros jogos o utilizam para determinar a conveniência de uma determinada posição. Por exemplo:
Hex A: Perto de recursos, em terrenos altos, perto de aliados, perto de inimigo Hex B: Longe de recursos, em terreno de nível médio, distância média de aliados, longe de inimigo
A função de avaliação de posição pode levar esses três fatores da seguinte forma:
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)
E o hexágono que tiver a pontuação mais alta será onde a cidade será construída. Mais informações sobre as funções de avaliação podem ser encontradas aqui .
Eu acho que a IA estratégica também tem um monte de estratégias pseudo-pré-definidas no jogo, dependendo do tipo de vitória que a IA está buscando.
4. Grande IA estratégica
No topo da escada está a grande IA estratégica, que decide como ganhar o jogo.
Eu acho que este é provavelmente o mais simples do grupo, e dá a impressão de que é mais impressionante do que realmente é. Em um jogo como este, haverá apenas um número finito de tipos de vitória. O artigo menciona uma vitória da Conquista, assumindo que também há vitórias da Aliança, etc., pode ser tão simples quanto escolher aleatoriamente um dos tipos e depois passá-lo para os outros sistemas.
EDIT: Obviamente, como apontado pelo DampeS8N, o tipo de mapa poderia ditar a melhor condição de vitória a ser adotada, caso em que poderia ser codificado pelos designers ou por algum tipo de função de avaliação considerando diferentes variáveis.
Resumo
Acho que o que é realmente importante observar sobre esse tipo de sistema é que, da maneira como os subsistemas são colocados em camadas, eles não precisam se comunicar muito um com o outro. Parece ser uma arquitetura de cima para baixo, com os componentes fracamente acoplados. Do ponto de vista do design técnico, é limpo e flexível, e provavelmente se inspira no Emergent Behavior e / ou Subsumption Architecture .
Eu realmente peço desculpas pelo tamanho deste post, ele se transformou em um animal :(
De qualquer forma, espero que ajude!