Académique Documents
Professionnel Documents
Culture Documents
Artificial
Inteligência Artificial I
Ricardo Borges
Cícero Augusto
Mauricio Volkweis
2
Introdução
3
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
4
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
5
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
6
2 Histórico
Jogos que marcaram a década de 70:
Breakout
Space Invaders
Asteroids
Pac Man
7
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
8
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
9
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
10
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
11
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
IA Extensível
12
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
Unreal Tournament
13
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
14
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
15
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)
16
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
17
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
18
3.1 Máquinas de Estados Finitos
Uma HFSM são FSM hierarquizadas
Usadas para modelagem de comportamentos
mais complexos
19
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 futuros
3
%
8
20
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 __________
________
__________
____
________
21
3.2 IA Extensível
Exemplo de script:
IF
!Range(NearestEnemyOf(Myself),3) and
Range(NearestEnemyOf(Myself),8)
THEN
EquipMostDamagingMelee()
AttackReevalutate(NearestEnemyOf
(Myself),60)
22
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
23
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
24
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)
25
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
26
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
27
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
28
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
29
Conclusão
30