Os conceitos de 'IA pura' de nível superior (como redes neurais ou algoritmos genéticos) são implementados com sucesso em jogos comerciais?

18

Embora os gráficos sejam a minha principal área de foco, estou me interessando pelos conceitos de Game AI há algum tempo; de simples localização de caminhos A * a intrincados Perceptrons.

Minha pergunta é essa; Alguém tem exemplos de implementações bem-sucedidas (ou talvez mais interessante, falhadas) de alguns conceitos de IA de nível superior em títulos comerciais em larga escala?

Por nível superior, refiro-me a métodos de simulação de inteligência que geralmente são encontrados na Pure AI. Por exemplo.

  • Redes neurais
  • Algorítmos genéticos
  • Teoria da Decisão

Entendo que, além de um orçamento financeiro, os desenvolvedores também têm um orçamento de uso de memória (com a IA muitas vezes ficando em segundo plano). Muitos desses métodos são caros para implementar e fornecem retornos limitados. Estou intrigado em descobrir se alguém sabe onde ou quando algum desses (ou quaisquer outros conceitos de alto nível que eu esqueci de mencionar) foram implantados no quaisquer jogos conhecidos :)

Sei também que nesta indústria, segredos comerciais são um fato da vida;) Além dos títulos da AAA, se você tiver alguma de suas próprias histórias de sucesso (ou desastres), seria bom ouvi-las! : D

Bluestone
fonte

Respostas:

18

De um modo geral, redes neurais e algoritmos genéticos não são usados ​​em jogos e, além do interesse recente em usar redes neurais para aprendizado profundo, também não costumam estar fora dos jogos.

A principal razão pela qual elas são ensinadas na academia de IA não é por causa de sua aplicabilidade prática, mas porque são fáceis de explicar como dispositivos de ensino - ambos têm análogos matemáticos e biológicos que permitem ao aluno entender como eles poderiam funcionar.

No mundo real, você normalmente precisa de confiabilidade e previsibilidade. O problema com os métodos de aprendizagem é que, se eles aprendem "em estado selvagem", podem aprender os padrões errados e não serem confiáveis. Um NN ou um GA pode potencialmente atingir um máximo local que não é garantido como bom o suficiente para fornecer a experiência de jogo necessária, por exemplo. Outras vezes, pode acabar sendo muito bom, encontrando uma estratégia perfeita que é imbatível. Nem é desejável na maioria dos produtos de entretenimento.

Mesmo se você treinar offline (ou seja, antes do lançamento e não durante o jogo), um conjunto de dados aparentemente bonito pode estar escondendo anomalias que, uma vez encontradas por um jogador, são fáceis de explorar. Uma rede neural em particular normalmente desenvolve um conjunto de pesos bastante opaco para estudar, e as decisões tomadas por ela são difíceis de raciocinar. Seria difícil para um designer ajustar essa rotina de IA para executar como desejado.

Mas talvez o problema mais difícil seja o fato de os GAs e os NNs geralmente não serem as melhores ferramentas para qualquer tarefa de desenvolvimento de jogos. Enquanto bons dispositivos de ensino, qualquer pessoa com conhecimento suficiente do domínio da disciplina geralmente está melhor equipada para usar um método diferente para obter resultados semelhantes. Isso pode ser qualquer coisa, desde outras técnicas de IA, como máquinas de vetores de suporte ou árvores de comportamento, até abordagens mais simples, como máquinas de estado, ou mesmo uma longa cadeia de condicionais if-then. Essas abordagens tendem a fazer melhor uso do conhecimento do domínio do desenvolvedor e são mais confiáveis ​​e previsíveis do que os métodos de aprendizado.

No entanto, ouvi dizer que alguns desenvolvedores usaram redes neurais durante o desenvolvimento para treinar um motorista para encontrar uma boa rota em torno de uma pista de corrida e, em seguida, essa rota pode ser enviada como parte do jogo. Observe que o jogo final não requer nenhum código de rede neural para que isso funcione, nem mesmo a rede treinada.

O 'custo' do método não é realmente o problema, aliás. Os NNs e os GAs podem ser implementados de maneira extremamente barata, com o NN, em particular, se prestando ao pré-cálculo e otimização. A questão é realmente a de conseguir algo útil deles.

Kylotan
fonte
3
Fora dos jogos, os GAs têm sido imensamente bem-sucedidos em encontrar soluções esotéricas para problemas de engenharia, por exemplo, o trabalho inicial do Dr. Adrian Thompson em circuitos genéticos, resultando em subcircuitos "inúteis" que afetavam o fluxo de tal maneira que o resto funcionava. O problema é que soluções esotéricas eficazes não são valiosas nos jogos, como na engenharia. O problema realmente difícil da IA ​​do jogo é fazer com que a AI tenha uma estratégia compreensível, e não apenas jogar bem.
4
Eu usei o GA para ajustar variáveis ​​de driver de IA. Mas, como você mencionou, isso foi feito offline com uma ferramenta para gerar os dados de ajuste. O jogo não foi lançado com o GA ativo, apenas os números que foram derivados durante o desenvolvimento.
wkerslake
@ Joe - sim, eu amo GAs eu mesmo. Eu acho que eles são uma maneira bastante eficaz de explorar um espaço problemático de uma maneira bastante intuitiva para a pessoa que aprimora o algoritmo. Também os usei para a tomada de decisões em tempo real, mas é difícil argumentar que eles eram mais eficientes ou mais eficazes do que as alternativas.
Kylotan
+1 para o conhecimento do domínio. Além disso, não desconsidere o caso de negócios: as semanas de tempo do programador para criar, ajustar e manter uma linha de corrida NN podem ser menos econômicas do que uma simples ferramenta máxima para definir um spline e alguns dias de tempo de designer.
Dezpn
O problema é mais do que para aprender algo útil, você precisa de uma grande rede neural que requer muito poder de computação. Se você tem uma rede pequena, é barato treinar como você disse, mas não tem chance de aprender um comportamento sofisticado. Outro problema que vejo é que você precisa de uma grande quantidade de exemplos de treinamento para ML, portanto não pode treinar durante o jogo, pois levaria muito tempo para os inimigos se tornarem inteligentes. Por outro lado, o Q-learning por reforço parece uma boa técnica para isso. Um truque funcionaria apenas uma vez contra essa IA. Não tenho certeza se os jogos já usaram isso.
Danijar 2/08
7

Aplicações de IA "acadêmica" em jogos tendem a ser muito mais sutis do que os tipos de coisas que normalmente se pensa como IA na esfera do jogo. Muito do foco do meu professor de Game AI quando eu estava na escola era AI para controle de câmera. Sua outra área de interesse era o gerenciamento de narrativas de IA, que, até onde sei, ainda se limita à academia, na maior parte. Um exemplo notável dessa área posterior seria a fachada .

A questão principal da IA ​​"acadêmica", nos jogos, é que eles estão resolvendo problemas diferentes. Muitas vezes você não deseja satisfazer requisitos, no jogo; você só quer satisfazer. Como foi dito anteriormente: você não quer ser fácil, mas também não quer que seu oponente de IA seja muito difícil.

Dito isto, a série de jogos em preto e branco da Lionhead usou IA semelhante ao que você está falando com a pergunta acima e teve pelo menos sucesso suficiente para que eles fizessem uma sequela .

Lembro-me de relatos de IA radiante de "The Elder Scrolls IV: Oblivion" sendo um exemplo dessa veia de comportamento originalmente também, mas teve que ser emburrecido por causa de um comportamento inesperado e estranho, como NPCs se matando por comida.

lathomas64
fonte
GA também é usado nas séries criaturas: en.wikipedia.org/wiki/Creatures_(artificial_life_program) , mas não tão bem sucedida como o anteriormente mencionado preto e branco ou esquecimento
lathomas64
Obrigado pela resposta. É interessante como você mencionou como o equilíbrio na Game AI é crucial, pois em praticamente todos os aspectos do desenvolvimento de jogos, deve ser divertido antes de ser realista / crível. Um AI que é muito 'inteligente' não é divertido em tudo, ninguém gosta de um smart-alec :)
Bluestone
1

Eles são difíceis de depurar, portanto, uma falha (possivelmente causada por otimização acidental) não pode ser corrigida facilmente. Por esse motivo, qualquer rede neural usada nos jogos deve aprender em tempo real durante o jogo. No entanto, eles foram usados, por exemplo, o jogo NERO.

Lucas
fonte
1

Como você pediu exemplos na indústria, aqui está um para você: O primeiro título que conheço sobre redes neurais usadas foi Fantasy Empires, um jogo de ação e desenvolvimento de D&D TBS lançado em 1993. Aparentemente, eles foram usados ​​para orientar o que diria a figura mestra das masmorras e faça de uma maneira "inteligente", mas "não previsível" ... se você jogou muito o jogo, pode discordar! A figura principal da masmorra animada oferece orientação sobre seu estilo de jogo, com base em suas ações recentes, a partir de uma coleção de sons estáticos, usando o NN. Presumo que seja uma rede muito simples.

(consulte a página 57 do manual para obter detalhes)

insira a descrição da imagem aqui

Engenheiro
fonte
Este pode ser um exemplo interessante, mas para alguém que não jogou esse jogo, não ajuda muito. Você pode talvez elaborar quais mecânicas de jogo eram controladas pela rede neural, qual era a intenção e dar alguns exemplos de bons e maus resultados produzidos?
Philipp
@ Philipp Seu ponto devidamente anotado - ETA. Os resultados não foram tão "ruins" quanto simplesmente a natureza analógica das redes neurais parecia desperdiçada ao ser quantizada para um conjunto muito limitado de ações de saída.
Engenheiro de