Jogos em Inteligência Artificial Inteligência Artificial I Ricardo Borges Cícero Augusto Mauricio...
Transcript of Jogos em Inteligência Artificial Inteligência Artificial I Ricardo Borges Cícero Augusto Mauricio...
Jogos em Inteligência Artificial
Inteligência Artificial I
Ricardo Borges
Cícero Augusto
Mauricio Volkweis
Professora Andrea Konzen
Torres - RS, Junho de 2003
2
Sumário
Introdução 1 Objetivos 2 Histórico 3 Técnicas Atualmente Utilizadas Conclusão
3
Introdução
4
1 Objetivos
Embutir uma inteligência simulada nos jogos através de técnicas de Inteligência Artificial (IA)
Tornar o jogo mais real Por conseqüência, mais envolvente e
desafiador para o jogador
5
2 Histórico
Década de 60 Surgimento dos jogos de computador Versões para mainframes Principal preocupação era o visual Sem técnicas de IA Em Space War (1961), os jogadores se
confrontavam em naves espaciais com interface em caracteres ASCII
6
2 Histórico
Década de 70 Bom número de jogos em modo texto Também conhecidos como Multi User
Dungeons (MDU’s) Primeiro sucesso comercial foi Pong (1972) Pong foi criado por Nolan Bushnell, fundador
da Atari
7
2 Histórico
Jogos que marcaram a década de 70: Breakout Space Invaders Asteroids Pac Man
8
2 Histórico
Década de 80 Grande diversidade de jogos Destaque foi Donkey Kong, que deu origem ao
personagem Mário de Shigeru Miyamato O sucesso de Mário Brothers (1984) fez de
Mário o principal mascote da Nintendo
9
2 Histórico
Década de 90 Melhoria na interface e interação depois do
lançamento dos computadores de 16 bits Surgimento de alguns jogos de simulação 3D:
Flight Simulator Wing Commander
10
2 Histórico
Década de 90 Revolução na plataforma IBM PC com o
lançamento de Doom pela ID Software (1993) Inovação tecnológica Perspectiva em primeira pessoa Evolução tanto na área gráfica como de IA
11
2 Histórico
Década de 90 Duke Nuke em 3D é lançado com ferramenta
de IA Extensível A ID Software lança Quake (1996) primeiro
jogo em 3D real Desaceleração na aplicação de IA em relação a
parte gráfica
12
2 Histórico
Década de 90 Reaperbot, um oponente criado para ser usado
em Quake dá novo impulso ao uso de IA em jogos
O jogo Unreal (1998) lançado pela Epic Megagames mostrou avanço no uso de IA em jogos usando técnicas como: Finite State Machines Fuzzy State Machines IA Extensível
13
2 Histórico
Atualidade Jogos com gráficos 3D avançados com nível
razoável de aplicação de IA A IA do jogo passa a ter tanta importância
quanto a parte gráfica Exemplos de jogos atuais:
Diablo 2 Quake III: Arena Unreal Tournament
14
2 Histórico
Atualidade Grandes orçamentos para produção de jogos Equipes normalmente compostas de:
Projetistas de Jogo Projetistas de Fases Planejador de Software Arquiteto Chefe Gerente de Projeto Programadores Artistas Gráficos Músicos e Sonoplastas
15
3 Técnicas Atualmente Utilizadas
Máquinas de Estados Finitos IA Extensível Técnicas de Busca Máquinas de Aprendizado Vida Artificial Kits de Desenvolvimento
16
3.1 Máquinas de Estados Finitos
Baseadas em regras Implementação relativamente simples Técnica já consolidada no mercado Permite criar elementos com comportamentos
relativamente complexos Foi utilizada no jogo Unreal Podem ser:
Finite State Machines (FSM) Hierarchical Finite State Machines (HFSM) Fuzzy State Machines (FuSM)
17
3.1 Máquinas de Estados Finitos
Normalmente representadas por um Diagrama de Transição de Estados
Uma FSM possui Conjunto de estados Estado inicial Conjunto de entradas Conjunto de saídas Função de transição de estado
18
3.1 Máquinas de Estados Finitos
A função de transição de estados recebe as entradas e o estado atual
Retorna o conjunto de saídas e um novo estado que passa a ser o estado atual
Entradas Saídas
Estado Atual Estado Futuro
19
3.1 Máquinas de Estados Finitos
Uma HFSM são FSM hierarquizadas Usadas para modelagem de comportamentos
mais complexos
20
3.1 Máquinas de Estados Finitos
As FuSM’s são baseadas em cadeias de Markov
Pesos são associados aos estados e transições Regras são usadas para calcular pesos de
estados futuros3
8%
21
3.2 IA Extensível
Iniciada com Duke Nuke em 3D e Quake O jogador pode criar seus próprios
personagens ou alterar o nível e IA dos existentes
É feita através de uma linguagem de script A forma do script pode ser semelhante a
linguagens como C e C++ ou até conjuntos de ordens passadas diretamente ao elemento do jogo
________________________________________
22
3.2 IA Extensível
Exemplo de script:IF
!Range(NearestEnemyOf(Myself),3) and
Range(NearestEnemyOf(Myself),8)
THEN
EquipMostDamagingMelee()
AttackReevalutate(NearestEnemyOf (Myself),60)
23
3.3 Técnicas de Busca
Entre os algoritmos existentes, o A-star (A*) é o mais utilizado
Utilizado para encontrar um melhor caminho a partir da posição atual
Foi aplicado em Age of Empires II: The Age of Kings para análise de terrenos
Utiliza uma função heurística para calcular a estimativa de custo de cada rota
24
3.4 Máquinas de Aprendizado
Estão começando a ter mais espaço em jogos No jogo Magic & Mayhem, são gravados dados
das jogadas para que o sistema evite usar técnicas com baixo grau de efetividade
Entre os enfoques com maior embasamento científico estão: Redes Neurais Algoritmos Genéticos
25
3.4 Máquinas de Aprendizado
Battle Cruiser: 3000 AD foi um dos primeiros jogos a usar redes neurais
Foi desenvolvida uma linguagem especialmente para implementar a IA do jogo
Denominada Artificial Intelligence and Logistics (AILOG), usava uma rede neural para efetuar tomadas de decisão e busca das melhores rotas
AILOG também implementa alguns conceitos de lógica difusa (fuzzy logic)
26
3.4 Máquinas de Aprendizado
Cloak Dagger and DNA (1995) foi um dos primeiros jogos comerciais a utilizar algoritmos genéticos
O jogo vêm com quatro “seqüências de DNA” Estas seqüências são conjuntos de
características comportamentais dos inimigos A medida que cada um desses conjuntos
participa de batalhas recebe pontos pelo desempenho
Os melhores conjuntos são combinados gerando novos e melhores comportamentos
27
3.5 Vida Artificial
Também conhecida como A-Life (do inglês Artificial Life)
Tem sua origem no estudo de seres vivos do mundo real
Tenta simular este comportamento usando uma variedade de técnicas de IA combinadas
28
3.5 Vida Artificial
Estas técnicas são interligadas em uma hierarquia de tomada de decisão
Foi utilizada nos jogos The Sims e Creatures
29
3.6 Kits de Desenvolvimento
Software Development Kits (SDK’s) ou simplesmente toolkits
Bibliotecas que implementam uma ou mais técnicas de IA
Podem ser específicos para jogos ou mais genéricos Agilizam o desenvolvimento da aplicação Exemplos:
Motivate Spark! DirectIA
30
Conclusão