Prof. Marcelo Henrique dos Santos
Bibliografia Recomendada
•BOURG, David M.; SEEMANN, Glenn. AI for Game Developers. O’Reilly, 2004.
•FUNGE, J. Artificial Intelligence for Computer Games: An Introduction. A K Peters, 2004.
•RABIN, Steve. AI Game Programming Wisdom. Charles Rivergg Media, 2002
•www.gamasutra.com •www.gamedev.net
Prof. Marcelo Henrique dos Santos
O que é Inteligência?
• capacidade de raciocinar, planejar, resolver problemas, pensar de maneira abstrata, compreender ideias e
linguagens, e aprender
• “A inteligência é aquilo que os testes de inteligência
medem” – Alfred Binet (mais fácil medir do que definir)
• “habilidade de um sistema de adaptar seu comportamento para atingir seus objetivos numa série de ambientes”
O que é Inteligência Artificial ?
• inteligência apresentada por uma entidade artificial
(geralmente um computador); ramo da Ciência que lida com aprendizagem, comportamento e adaptação em máquinas • teste de QI x teste de Turing (1950)
• usos mais disseminados: controle, planejamento,i dii dt l l jt reconhecimento de imagens (facial)/sons (voz), otimização, etc.
• campos de aplicação: engenharia, medicina, economia, tecnologia militar, jogos eletrônicos, etc.
O que é GameAI ?
• conjunto de técnicas utilizadas em jogos eletrônicos para
criar um comportamento desejado de non-player characters (NPCs), e eventualmente do ambiente também
• técnicas derivadas das áreas acadêmicas de AI, Teoria de Controle, Robótica e Computação
• tem como principal objetivo melhorar o desafio e a imersão
(o que interessa é a diversão)
Na prática...
• GameAI é o controle de toda entidade não-humana num jogo:
– outros carros num jogo de corrida – oponentes e monstros num FPS – unidades inimigas num RTS
• não inclui controle de elementos passivos, que não têm
autonomia para agir; quem cuida disso é a física ou a lógica de jogo; ex:
– blocos caindo em “Tetris” – tiros
Prof. Marcelo Henrique dos Santos
AI vs. GameAI (1)
• criar inteligência é diferente de criar uma ilusão de inteligência
• oponente imbatível ou jogo desafiante ?
• GameAI pode lançar mão d “de “truques sujos” para iludir o jogador
AI vs. GameAI (2)
AI Tradicional GameAI
Função competir com as pessoas entreter as pessoas
Usa dados e heurísticas
para... ... derrotar humanos ... imitar
Objetivos da GameAI
• proporcionar diversão
• ser convincente (pelo menos não parecer estúpida...)
• usar pouca memória e processamento • implementação rápida e fácil
Aplicações da GameAI (1)
• projeto de NPCs: – movimentação – tomada de decisão – comportamento • aprendizado• controle de reação de ambiente • posicionamento de câmera
Aplicações da GameAI (2)
• iluminação
• controle de narrativa e eventos • balanceamento de dificuldade • testes
Trapaça, a técnica mais comum
• compensa o desequilíbrio contra a inteligência humana e deixa o jogador desafiado
• razões para trapacear:
– fingir que é “pior”: mira nos shooters (o objetivo nem sempre é acertar)
– fingir que é “melhor”: inimigos mais rápidos, violação nas regras, etc. (vale tudo)
Ainda sobre trapaças...
• não exagerar: o jogador não pode perceber
• trapacear demais pode deixar a dificuldade do jogo desbalanceada
• exemplo de trapaça: em jogos de estratégia, o computador sabe absolutamente todas as
informações sobre os oponentes humanos (localização das bases, armamentos, etc.);
Histórico (1)
• Não comercial - Jogo da Vida (John Horton Conway – 1970) • Comercial - GameAI nasceu com os single-players; exs:
– “Space Invaders” (1978): padrões de movimentação e dificuldade progressiva
– “Pac-Man” (1980): movimentação dos fantasmas
• Sistemas Especialistas - jogos de esporte (“Madden Football”1984) • Anos 90: difusão das técnicas com o crescimento do gênero
Histórico (2)
• 1996: “Battlecruiser 3000AD”: primeiro jogo a usar Redes Neurais
• 1996: uso de Algoritmos Genéticos na série “Creatures” • 1997: Deep Blue derrotou o campeão Kasparov (não
exatamente um exemplo de entretenimento)
Onipresença da AI (gêneros...)
• estratégia (tática dos inimigos)
• luta (padrões de ataque e defesa)
• first-person shooters (movimentação e ataque de oponentes e aliados)
• tabuleiro (tomada de decisão de oponentes) • RPG (monstros, NPCs)
• esportes ( ação tática de outros times/atletas, comentaristas) • corrida (controle dos outros carros)
Onipresença da AI (... e no tempo)
De...
– controle dos fantasmas em “Pac Man”
– movimentação das naves em “Defender” ... até
– modelagem de emoções em “The Sims”
AI – A Fronteira Final
Impacto na capacidade de imersão:
• Computação gráfica: fotorrealismo cada vez mais próximo (velocidade das GPUs), em alta resolução e a elevado
frame-rate
• Simulação Física: campo em forte expansão. O realismo não é necessário (ou mesmo desejável) em todos os gêneros.
→ Quanto maior a qualidade visual e física da simulação,
maior é a expectativa do jogador quanto ao comportamento de personagens (NPCs) e do ambiente.
Classificação (1)
Determinismo em GameAI
AI Determinística AI Não-determinística Comportamento previsível imprevisível
Implementação mais fácil mais difícil
Teste/debug fácil, mas trabalhoso difícil
Aprendizado difícil fácil
Exemplos algoritmos de perseguição e fuga, máquinas de estados adaptação via Redes Neurais, Algoritmos Genéticos
AI Reflexiva (pré-análise)
AI Reativa (decisão instantânea) algoritmo exaustivo, força bruta heurístico
modelagem fenômeno “caixa preta”
resposta lenta rápida
solução ótima satisfatória
Classificação (2)
Arquitetura (1)
AI no game loop
• atualizada como parte do game loop, após a entrada de dados e antes da renderização
• precisa ser atualizada em todos os frames ?
– as entradas da AI talvez não variem tão rápido – AI pode ser disparada somente por eventos
• não precisa ser síncrona (atualizada
Arquitetura (2)
Polling vs. Event Driven
• Polling
―AI é executada a uma taxa fixa de atualização ―sensoreamento: o que mudou no ambiente ? ―reage a partir de mudanças detectadas
―geralmente ineficiente
―bom se apenas estado atual interessa • Event Driven
―só reage a eventos
―mensagens (chegada de inimigos, timeout, etc.)
―exige arquitetura de mensagens substituindo o sensoreamento ―imprescindível quando transições são importantes
Arquitetura (3)
Complexidade de Execução
• qual o impacto na velocidade com a adição de conhecimento ?
• qual o impacto na memória com a adição de conhecimento ?
• determina o custo da técnica em termos de tempo de execução
Desafios da GameAI
• resultados menos frustrantes para os jogadores
(GameAI tende a ser lembrada mais quando falha do que quando acerta...)
• evoluir (ou pelo menos manter) o comportamento inteligente à medida que o realismo gráfico e físico aumenta (pathfinding numa grade 2D com muros retos é fácil...)
Mais desafios...
• explosão de conteúdo, mundos mais densos e mais reativos
• nem sempre o que o mercado quer é o estado-da- arte da tecnologia em AI
• pressão por maior uso de técnicas não-
determinísticas, mas aí estão os maiores riscos,
(ciclo de desenvolvimento mais longo, mais caro,
Considerações
• NPCs inteligentes podem agir de forma autônoma, mas os game designers precisam controlá-los para manter o jogo conforme o projetado
• decisões inteligentes (mas completamente
imprevisíveis) podem arruinar um roteiro pré-
Técnicas de GameAI:
Uma visão geral
Técnicas de GameAI
Maquinas de Estado Finito (FSM)
Lógica Nebulosa - Fuzzy
Sistemas baseados em regras
Sistemas baseados em planejamento
Algoritmos Genéticos
Redes Neurais Aula 2
Padrões de Movimento
Perseguição e Fuga
Basico
Line of Sight
Interceptacao
Maquinas de estado Finito
FSM, ou Finite State Machine
O que é?
Uma máquina de estados é composta por um conjunto de estados (patrulhando,
rondando, parando, etc.) e um conjunto de regras de transição (tomei um tiro, vou
perseguir o agressor; estou sem energia,
vou buscar energia) entre estes estados. Determinística
Máquinas de Estados Determinísticas não permitem múltiplas transições de
um mesmo estado com a mesma entrada.
Não - Determinística
Máquinas de Estados Não-Determinísticas ao contrário, permitem essas transições.
Maquinas de estado Finito
FSM, ou Finite State Machine
Vantagens da FSM •Intuitivo; •Fácil implementação; •Fácil teste; •Flexível; •Representação realista de Comportamentos. Desvantagens da FSM •Comportamentos repetitivos e limitados;
•Número de transições da FSM cresce muito rápido com a complexidade do ambiente.
Lógica Nebulosa Fuzzy
A lógica fuzzy permite representar valores como “pouca comida”, “muito perto”, e outros eventos não contáveis (ou imprecisos) num sistema
computacional que, usando lógicas clássicas, onde os únicos valores são zero e 1, não conseguiriam representar.
O conhecimento é representado por um conjunto que contém valores numéricos, que podem representar melhor uma emoção humana.
Ex: eu tenho um personagem “muito feliz”, ele é do conjunto feliz e pode receber 9 (numa contagem de 0 a 10) e eu posso ter um personagem
“nada feliz” com valor 1.
se a bola está próxima ao gol e o goleiro está um pouco afastado chute a bola com força mediana.
Misturando as duas técnicas
FUZZY + FSMs = FuSMs
Vantagens
• Possibilidade de criação de personagens “razoavelmente inteligentes” e que erram
Desvantagens
Sistemas baseados em regras
O que é?
É um conjunto de parâmetros e um conjunto de regras que trabalham sobre estes parâmetros, de modo que durante a tomada de decisão, essas regras são então
processadas.
• técnicas mais simples utilizadas em jogos
• reações “instintivas”, ativadas por conjuntos de condições do ambiente • utilizam, geralmente, lógica proposicional estruturada em condições if-
then-else:
Se <unidade_A> ataca <unidade_B> então <unidade_B> dispara
Sistemas baseados em planejamento
O que é?
O planejamento de IA aplicado a jogos digitais é o armazenamento de “planos de ação” e fazer com que o personagem escolha o plano mais adequado numa determinada situação. Também pode permitir ao personagem decidir qual estratégia ele pode utilizar (além do próprio personagem criar a sua estratégia)
Vantagens
• Ações do personagem não são tão repetitivas
Desvantagens
Algoritmos Genéticos
O que são ?
São algoritmos que simulam a seleção natural proposta por Darwin na genética, ou seja, a estrutura pode evoluir e entrar em mutação, para executar com uma melhor performance.
É algo similar à experiência em jogos de RPG, onde o personagem pode evoluir, ganhar mais atributos e poderes que podem ajudar em níveis mais avançados do game.
Vantagens
• Possibilidade de criar diversas variações baseadas em um design inicial, ampliando as potencialidades do mesmo;
• Otimiza o tempo de criação do jogo (caso certo jogo tenha muitas
variações de adversários;
• Quanto à própria Inteligência Artificial do jogo (o jogador pode encontrar
adversários diferentes, aumentando a diversão do game)
Características
•metáfora do processo de seleção natural
(evolução biológica);
•indivíduos, soluções, etc., codificados em “DNA”;
•operadores genéticos(cruzamento, mutação);
•algoritmo baseado em populações;
•os mais adaptados sobrevivem e passam os seus
“genes” às próximas gerações;
Etapas
1) Inicialização: modo de codificar os
cromossomos,maneira simples,utilizando um vetor de caracteres; cada índice do vetor pode representar uma característica do ambiente
externo e o valor contido nesta posição representa a ação que a criatura deverá executar.
ex: Suponha que a população de criaturas controladas pelo computador tenham que
responder de acordo com a arma em uso pelo jogador (espada, arco, lança e machado), e as respostas possíveis são: usar Escudo (1), ataqueComEspada (2), fugir (3), esconder (4) e ataqueComArco (5).
Arma Espada Arco Lança Machado Ação [1..5] [1..5] [1..5] [1..5]
Etapas
2) Validação da aptidão: avaliar quais indivíduos da
população são os mais aptos,utiliza-se uma
função de avaliação de aptidão (função fitness).
ex: Para o exemplo, uma boa função avaliação é contabilizar a diferença entre
o dano que a criatura causou ao jogador e o dano recebido. As criaturas com a
maior aptidão segundo esta função terão a maior probabilidade de passar seus
Etapas
3) Seleção: aplicação da função de avaliação de
aptidão para selecionar indivíduos que participarão do processo evolucionário. Vida real, dois pais contribuem.
Mundo dos jogos, qualquer número dentre os melhores indivíduos.
Etapas
4) Evolução: criados os novos indivíduos e
introduzidos no ambiente do jogo.São selecionados os melhores indivíduos e
combinados seus genesno processo de crossover. Aqui também são introduzidas mutações
aleatórias.Observe a tabela abaixo.
1 Usar Escudo
2 ataqueComEspada
3 fugir
4 esconder
Redes Neurais
O que são?
São redes computadorizadas onde a sua estrutura é similar a um cérebro humano, tendo nós de rede (neurônios) e conexões entre os nós.
As redes devem ser treinadas para adquirir conhecimento (backpropagation, RBF, etc.)
Vantagens
• a rede pode aprender e armazenar conhecimento para uso posterior.
Padrões de Movimento
•Galaga é o exemplo clássico ... e antigo •Atualmente:
–RPG/FPS: patrulhamento
–Combate aéreo: manobras evasivas ou de ataque
–NPCs e personagens secundários, impressão de estarem: vagando, se alimentando ou realizando uma tarefa
Padrões de Movimento
Implementação
•codificar os padrões em um array ou conjunto de arrays
Padrões de Movimento
•algoritmo simples
•implementação varia com estrutura do jogo
•regra geral é ter vários padrões em arrays distintos
–IA seleciona padrões aleatoriamente ou baseado em alguma regra
Perseguição e Fuga
Método Básico
•entradas: coordenadas da presa e do predador
•atualização das coordenadas do predador no game loop:
se predadorX > presaX
predadorX = predadorX-1 senão se predadorX < presaX predadorX = predadorX+1
•atualização das coordenadas da presa no game loop:
se presaX > predadorX presaX = presaX+1
Perseguição e Fuga
Método Básico
vantagens
•fácil implementação •fácil teste
•baixa complexidade (pouco uso de CPU)
desvantagens
•movimentos muito mecânico •perseguição não eficiente
•não permite interceptação Obs.
cenários discretos (tiled): implementação específica - algoritmo de Bresenham
Perseguição e Fuga
Linha de Vista (Line-of-Sight)
•predador sempre se move em direção à posição da presa •recálculo é necessário quando a presa se move
Perseguição e Fuga
Linha de Vista (Line-of-Sight)
Perseguição e Fuga
Linha de Vista (Line-of-Sight)
vantagens
• movimento mais natural
desvantagens
• implementação mais difícil
• predador acaba sempre atrás da presa
• ou passa a trajetória (predador mais rápido) –pode se prevenido (controle de velocidade)
Perseguição e Fuga
Interceptação
• predador sempre se move em direção à futura posição da presa
• quanto tempo é futuro? ...
• depende da velocidade relativa entre presa e predador • depende da distância relativa entre presa e predador
Perseguição e Fuga
Interceptação
• mais física ...
• velocidade relativa
Vrel = Vpresa - Vpredador • distância relativa
Srel = Spresa - Spredador • tempo para o encontro
tenc = |Srel|/|Vrel|
• posição do encontro
Senc = Spresa + (Vpresa)*(tenc)
Perseguição e Fuga
Interceptação
vantagens
• movimento mais natural
• tempo/trajetória de caça menor
desvantagens
•nem sempre interceptação é possível –predador mais lento do que a presa –predador acaba na frente da presa
Obs.
cenários discretos(tiled):implementação específica - algoritmo de Bresenham