Geração Procedimental Evolutiva [fechada]

7

Existem exemplos de empresas ou artigos que utilizam algoritmos evolutivos ( EA ) ou programação genética ( GP ) na geração processual de conteúdo para jogos? Isso existe na indústria?

Este é o único local em que realmente o encontrei:
http://pcg.wikidot.com/pcg-algorithm:automatic-game-design

Também verifiquei essas perguntas e conheço o PCG:
O que é "geração procedural" e como é feita?
Geração processual de nível infinito 2d Geração
processual do universo

Alex Shepard
fonte
Um artigo realmente bom sobre o assunto, embora seja mais teórico do que técnico: researchgate.net/publication/220061075/download Ele cobre muito da geração de terrenos com GP e EA.
Nick O'Brien

Respostas:

5

Em geral, a maioria dos jogos opta pelo método muito mais fácil e previsível de criar scripts para sua IA ou usa ruído para geração de terreno / conteúdo. A maioria dos jogos tende a evitar a programação evolutiva / genética porque, francamente, muitas vezes é muito caro de implementar ou muito aleatório para a maioria dos jogadores entender.

Fora de alguns jogos experimentais e de nicho, como o Darwin's Pond ou a série Creatures , eu realmente não consigo pensar em nenhum jogo que use EA ou GP. Preto e Branco usou o modelo de Crença-Desejo-Intenção como base para a IA da Criatura, mas o jogo teve muitas respostas negativas devido ao comportamento da Criatura parecer aleatório. É provável que o segundo jogo em preto e branco tenha usado scripts para a criatura AI.

thedaian
fonte
Então a conclusão geral é não, isso não foi usado na prática?
Alex Shepard
@AlexShepard Correct. Apenas não há benefícios suficientes para implementar algoritmos bastante complexos quando níveis feitos à mão ou IA com script funcionam tão bem (às vezes, melhor). Obviamente, uma coisa que poderia ser usada é nas ferramentas "nos bastidores", em que um nível é gerado usando EA ou GP durante a noite e o resultado é salvo e usado no jogo (embora provavelmente haja ajustes adicionais como resultado de testes adicionais)
thedaian 25/10
4

A resposta de thedaian é boa, pois fornece exemplos.

Eu acho que o principal problema visto com essas abordagens é o controle. Depois que você começa a lidar com heurísticas, nas quais elas se baseiam, fica muito difícil desenvolver um sistema que faça o que você quer que ele faça. Francamente, é uma questão de custo e risco do projeto. Se você tem uma ideia de jogo que pode implementar sem usá-las ou usando uma abordagem processual mais direta, melhor para você.

O problema até das abordagens de IA mais elementares (por exemplo, encontrar o caminho A *) é que elas levam algum tempo para entender primeiro e consideravelmente mais tempo para dominar. Eu acho que isso nos mantém mais próximos de abordagens mais simples e estáticas. Não alimenta a inovação, mas é difícil ignorar um rápido retorno do investimento.

Dito isto, estou definitivamente do lado de "Se ninguém tentar, nunca saberemos". Um projeto de GP está se formando em minha mente há algum tempo.

(Outra abordagem que você pode querer procurar é nas redes neurais, geralmente é agrupada como um processo de máquina que imita formas naturais de melhoria - neste caso, aprendizado - através da eliminação.)

Engenheiro
fonte
1

Esse tipo de programação é geralmente usado, se disponível, para dar aos Agentes de IA suas 'personalidades'. Usando os diferentes valores disponíveis, você pode tentar criar as melhores estatísticas para um agente sobreviver e prosperar no mundo, mas isso não é algo feito ativamente durante o jogo, por uma boa razão. É um jogo.

Você pode fazer o computador aprender a derrotar constantemente o jogador, mas quem jogará um jogo no qual você só pode perder? O objetivo é apresentar um desafio e, usando algoritmos genéticos, você pode tentar encontrar combinações de IA para jogar de certas maneiras para representar configurações fáceis, médias e difíceis. Ou, por exemplo, nos jogos RTS, jogue estilos como o rusher ou o turtler.

Esses algoritmos são mais aplicados aos desenvolvedores que desejam ajustar seu jogo em vez de serem usados ​​ativamente nos jogos após o lançamento. Se você ler os livros da Game Programming Gem, poderá encontrar artigos neles que dão exemplos de como eles são usados ​​nos jogos RTS para ajudar a equilibrar a IA.

James
fonte