Escolar Documentos
Profissional Documentos
Cultura Documentos
TCC Eduardo - Fujita 2005 PDF
TCC Eduardo - Fujita 2005 PDF
EDUARDO FUJITA
Londrina
2005
EDUARDO FUJITA
Trabalho
apresentado
ao
Curso
de
Londrina
2005
EDUARDO FUJITA
COMISSO EXAMINADORA
______________________________________
Prof. Dr. Pedro Paulo da Silva Ayrosa
Universidade Estadual de Londrina
______________________________________
Prof. Ms. Liana Dessandre D. Garanhani
Universidade Estadual de Londrina
______________________________________
Prof. Ms. Rafael Robson Negro
Universidade Estadual de Londrina
AGRADECIMENTOS
Ao Prof. Dr. Pedro Paulo da Silva Ayrosa, por sua maneira descontrada de ministrar
as aulas e sua orientao na elaborao do presente trabalho.
minha famlia.
Aos amigos, professores e funcionrios do departamento de computao da UEL.
ABSTRACT
This work approaches the main Artificial Intelligence (AI) techniques applied in the
area of game development, like finite state machines, scripts, genetic algorithms and
neural networks. Presents in a succinct way the history of AI as well as the main
characteristics of game development. Demonstrates the importance of AI as a
differential factor in the creation of more attractive games for the final consumer.
Ultimately, makes an analysis of the state-of-the-art in the researches in this area
and concludes that the tendency is the creation of games using non-deterministic
techniques, learning with its own mistakes and adapting to the playing manner of its
human opponent.
Key-words: Artificial Intelligence; games.
LISTA DE TABELAS
LISTA DE EQUAES
LISTA DE ILUSTRAES
LISTA DE CDIGOS
SUMRIO
INTRODUO .....................................................................................................1
2.4.2
2.4.3
2.4.4
3.1 Categorias..........................................................................................................15
3.2 Pblico Alvo .......................................................................................................17
3.3 Plataforma..........................................................................................................18
3.4 rea de Atuao ................................................................................................18
4
4.1.2
4.1.3
4.1.4
4.1.5
Interceptao ..............................................................................................26
4.2.1
4.2.2
Forward chaining.........................................................................................29
4.2.3
4.2.4
4.3.2
Caractersticas ............................................................................................32
4.3.3
Fuzzificao ................................................................................................32
4.3.4
Funes de associatividade........................................................................33
4.3.5
4.3.6
Desfuzzificao ...........................................................................................35
Construo..................................................................................................37
Caractersticas ............................................................................................39
4.5.2
Implementao ...........................................................................................39
4.5.3
4.7.2
Algoritmo A* ................................................................................................46
4.8.2
4.8.3
4.9.1
4.10 Flocking.............................................................................................................57
5
CONCLUSO ....................................................................................................62
1 INTRODUO
quarto
captulo
engloba
tema
_____________
1
Este se difere de um computador pois seu hardware dedicado exclusivamente para a execuo de
jogos. Neste trabalho no h distino entre jogos para computador e jogos para consoles.
2 INTELIGNCIA ARTIFICIAL
2.2 Nascimento da IA
na
anlise
da
lgica
proposicional
de
Russel,
no
10
humano da mquina.
Um computador capaz de passar no Teste de Turing, possuiria as
seguintes caractersticas:
representao
de
conhecimento:
para
armazenar
aprendizado
de
mquina:
um
sistema
computacional,
11
12
Jogo estilo quebra-cabea onde quinze peas so embaralhadas e dispostas em uma matriz 4x4.
As peas s podem ser movidas em direo ao nico espao em branco, e o objetivo do jogo
restaurar a matriz ao seu estado original.
13
Movimento: entre determinadas reas do cenrio, desviandose de obstculos, plataformas, entre outros;
_____________
3
Non Player Character (Personagem no controlado pelo jogador, mas pela mquina).
14
15
16
de
complexidade
elevado
no
que
tange
seu
17
A*
(A-estrela)
na
busca
de
caminhos
trajetria
linear,
por
isso
sua
programao
18
dessas
disparidades,
maioria
dos
estdios
de
_____________
4
19
determinstica:
poucos
recursos
tem
da
comportamento
previsvel,
mquina
mais
consome
fcil de ser
20
21
Figura 1 - uma melhora alcanada utilizando a perseguio com linha de viso (line-ofsight chasing) (BOURG e SEEMAN, 2004)
22
_____________
5
Pixel: menor unidade que compe uma imagem em um monitor ou tela de televiso.
23
Figura 3 - o algoritmo de Bresenham (esq.) nunca desenha dois pixels adjacentes no menor
eixo da reta
24
DoLineOfSightChase (void)
Vector
bool
bool
u;
left = false;
right = false;
u = VRotate2D(-Predator.fOrientation,
(Prey.vPosition - Predator.vPosition));
u.Normalize();
if (u.x < -_TOL)
left = true;
else if (u.x > _TOL)
right = true;
Predator.SetThrusters(left, right); //ajusta a direo
}
_____________
6
Tile: do ingls ladrilho. uma unidade que compe um cenrio em ambientes 2D. Cada cenrio
composto de uma matriz de tiles.
25
26
4.1.5 Interceptao
27
DoIntercept(void)
Vector
Bool
Bool
Vector
Double
u;
left = false;
right = false;
Vr, Sr, St;
tc
Vr = Prey.vVelocity - Predator.vVelocity;
Sr = Prey.vPosition - Predator.vPosition;
Ta = Sr.Magnitude() / Vr.Magnitude();
Sf = Prey.vPosition + (Prey.vVelocity * Ta);
u = VRotate2D(-Predator.fOrientation,(Sf - Predator.vPosition));
//daqui em diante, permanece o mesmo cdigo do algoritmo anterior
u.Normalize();
if (u.x < -_TOL)
left = true;
else if (u.x > _TOL)
right = true;
Predator.SetThrusters(left, right); //ajusta a direo
}
28
29
30
31
32
Neste, o computador toma decises de acordo com o estado atual do jogador, que
medido segundo a lgica nebulosa:
Se (muito_forte) then fugir;
Se (forte) then procurar_arma;
Se (fraco) then atacar;
Note que muito_forte, forte e fraco so funes fuzzy, cujo clculo
ser visto adiante. relevante salientar que, se fosse utilizada a lgica tradicional,
teramos de estabelecer inmeros limites (regras) para definir qual o significado
de cada uma dessas funes, enquanto que na lgica nebulosa, possvel faz-lo
com um nmero bem menor de regras.
4.3.2 Caractersticas
33
0; x x 0
f ( x) =
x0
x
; x 0 < x < x1
x1 x 0 x1 x 0
1; x x1
34
35
36
37
4.4.1 Construo
Fuja();
38
rapidamente.
Alm
disso,
podem
ser
39
4.5.1 Caractersticas
estados:
representam
uma
posio
no
tempo
que,
4.5.2 Implementao
40
Novo estado
Fugindo
Seguro
Patrulhando
Atacando
MaisFracoQueInimigo
Fugindo
Patrulhando
Patrulhando
41
42
4.7 Pathfinding
43
desvio
de
obstculos:
requer
que
unidade
tenha
44
funciona
satisfatriamente
requer
pouco
_____________
7
Um poliedro convexo aquele que, dados quaisquer dois pontos pertencentes a ele, o segmento
contendo estes pontos nas extremidades dever estar inteiramente contido no poliedro.
45
46
4.7.2 Algoritmo A*
47
48
possuem
certas
caractersticas
como
rampas,
relevo
49
50
51
52
53
Tais
54
55
Tabela 2 exemplo de codificao de um cromossomo
Arma
Espada
Arco
Lana
Machado
Ao
[1..5]
[1..5]
[1..5]
[1..5]
56
Tabela 3 exemplo de crossover
Pai 1
Pai 2
Filho
57
4.10 Flocking
58
59
60
61
de situaes passadas, como foi feito no jogo Magic & Mayhem, da Mythos Games.
Diante da necessidade de atacar o jogador, o jogo recorre ao seu banco de dados
procurando aquelas estratgias que surtiram efeito em situaes parecidas que
ocorreram anteriormente.
Alguns jogos utilizam redes neurais que so treinadas pelos prprios
desenvolvedores e que so mais tarde desligadas antes de chegarem ao
consumidor. Tal abordagem pode criar uma boa IA, mas infelizmente anula
qualquer possibilidade de aprendizagem com o jogador.
Tambm importante ressaltar que os algoritmos genticos tm sido
pouco utilizados recentemente, ficando sua implementao mais limitada aos jogos
simuladores de vida. Mas em seu lugar, as tcnicas de flocking e A-Life continuam
sendo bastante utilizadas na IA para jogos.
62
6 CONCLUSO
63
REFERNCIAS BIBLIOGRFICAS
64
BIBLIOGRAFIA CONSULTADA
65
ANEXOS
66