universidade federal fluminense - ic.uff.br · área de inteligência artificial (ia) em um...
TRANSCRIPT
UNIVERSIDADE FEDERAL FLUMINENSEARTUR FIGUEIREDO DA COSTA
JOGOS E SISTEMAS ESPECIALISTAS
Niteri2010
ARTUR FIGUEIREDO DA COSTA
JOGOS E SISTEMAS ESPECIALISTAS
Trabalho de Concluso de Curso submetido ao Curso de Tecnologia em Sistemas de Computao da Universidade Federal Fluminense como requisito parcial para obteno do Ttulo de Tecnlogo em Sistemas de Computao.
Orientador:Cristiano Grij Pitangui
Niteri2010
ARTUR FIGUEIREDO DA COSTA
JOGOS E SISTEMAS ESPECIALISTAS
Trabalho de Concluso de Curso submetido ao Curso de Tecnologia em Sistemas de Computao da Universidade Federal Fluminense como requisito parcial para obteno do ttulo de Tecnlogo em Sistemas de Computao.
Niteri, ___ de _______________ de 2010.
Banca Examinadora:
_________________________________________
Prof. Cristiano Grij Pitangui, Msc. Orientador
UFRJ Universidade Federal do Rio de Janeiro
_________________________________________
Prof. Leandro Soares de Sousa, Msc. Avaliador
UFF - Universidade Federal Fluminense
AGRADECIMENTOS
A minha famlia pelo apoio durante esta
jornada.
A meu Orientador Cristiano Grij Pitangui
pelo estmulo, ateno e por toda a ajuda
que me concedeu durante o curso.
RESUMO
Este trabalho demonstra o uso de metodologias computacionais da
rea de Inteligncia Artificial (IA) em um segmento que nos ltimos 17 anos
tornou-se to lucrativo quanto indstria do cinema: a indstria dos jogos
eletrnicos. O produto principal desta indstria, ou seja, os jogos, alm de se
beneficiarem com a introduo desta rea da cincia da computao, trouxeram
grandes avanos tecnolgicos e garantiu muita diverso para as pessoas ao longo
do seu processo evolutivo.
O trabalho apresentar uma viso geral sobre IA, visto que um
elemento essencial no desenvolvimento de jogos, sobretudo atentando para o uso
dos Sistemas Especialistas (SE), cujos jogos utilizam para controle dos seus
agentes inteligentes.
Palavras-chaves: Sistemas Especialistas, Inteligncia Artificial, Jogos Eletrnicos.
LISTA DE ILUSTRAES
Figura 1: Fundamentos da IA..................................................................................17Figura 2: Imagem do jogo Pong.............................................................................23Figura 3: O Console Odyssey................................................................................24Figura 4: O Console Atari 2600..............................................................................25Figura 5: ZX-Spectrum lanado em 23 de maro de 1980.....................................25Figura 6: Commodore 64 agosto de 1982..............................................................26Figura 7: Sony MSX, Model HitBit-10-P MSX lanado em 1983...........................26Figura 8: O Console TRS-80 Modelo I fim da dcada de 1970..............................26Figura 9: NES lanado em 15 de Julho 1983 (Japo) ..........................................27Figura 10: Master System lanado 20 de Outubro de 1985 (Japo)....................27Figura 11: Mega Drive lanado 1988 (Japo).........................................................28Figura 12: SNES lanado 1990 (Japo).................................................................28Figura 13: NEO-GEO Lanamento 1990 (Japo)..................................................29Figura 14: Sony Playstation Lanamento 3 de Dezembro 1994 (Japo)..............30Figura 15: Nintendo 64 Lanamento 23 de Junho 1996 (Japo)..........................30Figura 16: DreamCast Lanamento 27 de Novembro 1998 (Japo).....................32Figura 17: Sony Playstation 2 Lanamento 4 de Maro 2000 (Japo)..................32Figura 18: GameCube Lanamento 14 de Setembro 2001 (Japo) .....................32Figura 19: Micosoft XBOX Lanamento 15 de Novembro 2001 (EUA).................33Figura 20: Micosoft XBOX 360 Lanamento 22 de Novembro 2005 (EUA)..........34Figura 21: Sony Playstation 3 Lanamento 11 de Novembro 2006 (Japo).........34Figura 22: Nintendo Wii Lanamento 19 de Novembro 2006 (Japo)..................35Figura 23: Ilustrao do Funcionamento do A*.......................................................49Figura 24:Simples jogo 2D.....................................................................................54Figura 25: Colises................................................................................................56Figura 26:Busca utilizando uma variao do algoritmo A*....................................57Figura 27:Grade.....................................................................................................58Figura 28:Uso de Mquinas de Estado..................................................................59
Figura 29: Uso de Sistemas de Regras..................................................................60
LISTA DE ABREVIATURAS E SIGLAS
CDs Compact disc
CGs Computer Graphics
DLC Downloadable content ou contedo para download
FPS First Person Shooter
IDE Integrated Development Environment
NES Nintendo Entertainment System
NPC Non-player Character ou Personagem no-jogvel
SEGA Service Games
Side Scrolling Direo aos lados
SNES Super Nintendo Entertainment System
SNK S hin N ihon K ikaku, ou "Projeto Novo Japo"
VMU Visual Memory Unit
http://pt.wikipedia.org/wiki/Personagem_n%C3%A3o-jog%C3%A1vel
SUMRIO
RESUMO..................................................................................................................5 LISTA
DE ILUSTRAES..................................................................................... 6LISTA DE
ABREVIATURAS E SIGLAS...................................................................8
1 INTRODUO.................................................................................................
10
2 HISTRICO DA INTELIGNCIA ARTIFICIAL................................................17
2.1 O USO DE SISTEMAS ESPECIALISTAS.................................................
...... 20
3 JOGOS DE COMPUTADOR...........................................................................22
3.1 Histrico de Jogos Eletrnicos..............................................................22
3.2 Histrico da Evoluo dos Consoles e o Uso Mais Complexo de IA...23
3.3 Histrico e Benefcios de IA em jogos...................................................35
4.1.3 ANO E DESCRIO DE IA UTILIZADAIA APLICADA AOS
JOGOSTCNICAS E ALGORITMOS DE IA IMPLEMENTADAS EM
JOGOSMQUINAS DE ESTADOSISTEMAS BASEADOS EM
REGRASALGORITMOS DE BUSCA........................................................
...........47
4.2 Algoritmo A*Algoritmos genticosProblemas Envolvendo IA e
jogos..........................................................51
5 O PROJETO DESENVOLVIDO................................................................
.......53
5.1a A base do projeto...................................................................................54
Tecnicas de IA Aplicadas ao projetoCOLISESBUSCAO SISTEMA
ESPECIALISTA NA TOMADA DE DECISESCONCLUSOREFERN
CIAS BIBLIOGRFICASANEXOS.............................................................
...................................................64
1 INTRODUO
H estudos que atribuem o conceito de inteligncia a outros animais e
vegetais, mas obviamente no um conceito comparvel ao da inteligncia
humana. A denominada inteligncia irracional seria a capacidade de adaptao ou
auto-adaptao de um ser vivo s circunstncias de seu meio. Logo, possvel
utilizar este conceito para a mquina, definindo de certa forma uma inteligncia de
mquina.
Um dos principais objetivos no estudo da IA recriar a capacidade da
inteligncia humana e o prprio comportamento humano na rea da Cincia da
Computao atravs do uso de computadores. Um dos principais dilemas como
fazer com que as decises paream naturais como o estado de raciocnio e no
apenas programadas. Um exemplo pode ser citado: o rob Terminator (Terminator
ou Exterminador do Futuro no Brasil, uma franquia cinematogrfica e de livros de
fico cientfica criada em 1984 James Cameron), o qual assemelha- se a um ser
humano. Apesar de fictcio, no diferente dos que so realmente criados por
cientistas, engenheiros, programadores e os demais responsveis. Ele possui
inteligncia e capaz de aprender, mas ainda precisa de um objetivo que pode
ser mudado. Na sequncia temos algumas definies do termo:
Inteligncia Artificial o estudo e a criao de mquinas que exibam qualidades
semelhantes s humanas, incluindo a capacidade de raciocinar (LAUDON;
LAUDON, 1999, p. 328).
A Inteligncia Artificial um campo de estudo multidisciplinar e interdisciplinar,
que se apia no conhecimento e evoluo de outras reas do conhecimento
(LIMA; LABIDI, 2001).
10
Inteligncia Artificial a rea da cincia da computao orientada ao
entendimento, construo e validao de sistemas inteligentes, isto , que exibem,
de alguma forma, caractersticas associadas ao que chamamos inteligncia.
(RICH; KNIGHT, 1994, p.722).
Segundo as definies acima expostas, pode-se dizer que a proposta
original da IA programar mquinas com qualidades humanas, porm, este o
principal desafio que a IA vem enfrentando.
A IA conta com o apoio de equipes compostas por profissionais de
diversas reas, ou seja, com formaes acadmicas diferentes e que trabalham
em prol de um nico objetivo alcanando grandes avanos com sistemas cada vez
mais precisos.
H trs abordagens principais em IA:
1. Conexionista : baseia-se na hiptese de causa-efeito, segundo a qual um
modelo suficientemente preciso do crebro humano suficiente para
reproduzir a inteligncia que o homem possui. Essa abordagem trata de
problemas imprecisos, mas que podem ser definidos atravs de exemplos
(ex.: reconhecimento de caligrafia), e sua principal contribuio so as
Redes Neurais.
2. Simblica (ou tradicional): baseia-se na hiptese do sistema de smbolos
fsicos, segundo a qual um conjunto de estruturas simblicas e um conjunto
de regras de manipulao dessas estruturas so os meios necessrios e
suficientes para se criar inteligncia. Essa abordagem trata problemas bem
definidos (ex.: planejamento de tarefas) e sua principal contribuio so os
Sistemas Especialistas.
11
3. Evolucionria: baseia-se na teoria evolutiva de Darwin, a hiptese de que
podemos modelar sistemas inteligentes simulando a evoluo de uma
populao de indivduos, que carregam genes com informao suficiente
para dar origem soluo de um problema, usando operadores genticos
de recombinao e mutao. Essa abordagem trata de problemas de
otimizao (Ex. escalonamento de produo) e sua principal contribuio
so os Algoritmos Genticos.
H tambm uma quarta abordagem, denominada IA Hbrida, na qual se
combinam ferramentas de diferentes abordagens para se obter uma soluo para
um determinado problema.
Algumas das reas de aplicao da IA so, por exemplo:
1. Robtica e automao industrial:
O Robotic Institute of America (RIA) define rob como: manipulador
programvel multi-funcional capaz de mover materiais, partes, ferramentas ou
dispositivos especializados atravs de movimentos variveis programados para
realizar uma variedade de tarefas. Seguindo a diviso preconizada pelo projeto
Multisensory Control of Movement (MUCON), pode-se dividir as aes inteligentes
de um rob como: ao, orientao e locomoo.
Na primeira gerao (1953) existia uma ausncia total de sensor ou
elemento de viso. Nesta poca os robs eram tambm conhecidos de robs de
transferncia, adaptados a operaes simples e repetitivas, como um
Automatizador de Prensas.
J na segunda gerao (1969) o sistema sensorial era relativamente
desenvolvido e possua uma programao simples. Tambm chamados de
12
trajetria contnua, os robs so empregados na indstria automobilstica, como
um pintor de automveis por spray.
Na terceira gerao (1973) o sistema sensorial mais avanado, possui
autonomia e agilidade. So empregados em reas que envolvam inteligncia.
2. Processamento de linguagem natural
Processamento de linguagem natural (PLN) uma subrea da IA e da
lingustica que estuda os problemas da gerao e compreenso automtica de
lnguas humanas naturais. Sistemas de gerao de linguagem natural convertem
informao de bancos de dados de computadores em linguagem normalmente
compreensvel ao ser humano, e sistemas de compreenso de linguagem natural
convertem ocorrncias de linguagem humana em representaes mais formais,
mais facilmente manipulveis por programas de computador.
Na teoria, processamento de linguagem natural um mtodo atrativo
para interao homem-mquina. Sistemas mais antigos como SHRDLU1,
trabalhando com blocos de palavras restritos com vocabulrios restritos, funcionou
muito bem, levando pesquisadores a um excessivo otimismo, que mais tarde foi
superado quando o sistema foi aplicado a problemas mais realistas, envolvendo
ambiguidade e complexidade.
3. Aprendizagem de mquina
um sub-campo da IA dedicado ao desenvolvimento de algoritmos e
tcnicas que permitam ao computador aprender, isto , que permitam ao
computador aperfeioar seu desempenho em alguma tarefa. Em um nvel geral,
existem dois tipos de aprendizado: indutivo, que extrai regras e padres de
grandes conjuntos de dados, e dedutivo, utilizando-se da confrontao de duas
1 Foi um programa de computador desenvolvido pelo norte-americano Terry Winograd no Instituto Tecnolgico de Massachusetts (MIT) entre 1968-1970 para contextualizar partes de uma lngua natural e foi usado no processamento de linguagem natural.
13
proposies (uma generalizadora e outra particularizadora) para extrair uma
concluso.
Algumas partes da aprendizagem de mquina esto intimamente
ligadas minerao de dados e estatstica. Sua pesquisa foca nas propriedades
dos mtodos estatsticos, assim como sua complexidade computacional. Sua
aplicao prtica inclui o processamento de linguagem natural, motores de busca,
diagnsticos mdicos, bioinformtica, reconhecimento de fala, reconhecimento de
escrita, viso computacional, locomoo de robs dentre outras.
4. Viso computacional
a cincia e tecnologia das mquinas que enxergam. Ela desenvolve
teoria e tecnologia para a construo de sistemas artificiais que obtm informao
de imagens ou quaisquer dados multidimensionais. Exemplos de aplicaes
incluem o controle de processos (como robs industriais ou veculos autnomos),
deteco de eventos, organizao de informao, modelagem de objetos ou
ambientes e interao (atrelado a interao homem-computador).
A viso computacional tambm pode ser descrita como um
complemento da viso biolgica. Na viso biolgica, a percepo visual dos
humanos e outros animais so estudados, resultando em modelos descritores de
como tais sistemas operam em termos de processos fisiolgicos. Por outro lado, a
viso computacional estuda e descreve sistemas de viso artificial implementados
por hardware ou software. Sub-campos de pesquisa incluem reconstruo de
cena, deteco de eventos, reconhecimento de objetos, aprendizagem de
mquina e restaurao de imagens.
5. A minerao de dados
formada por um conjunto de ferramentas e tcnicas que atravs do
uso de algoritmos de aprendizagem ou classificao, so capazes de explorar um
14
conjunto de dados, extraindo ou ajudando a evidenciar padres nestes dados e
auxiliando na descoberta de conhecimento. Esse conhecimento pode ser
apresentado por essas ferramentas de diversas formas: agrupamentos, hipteses,
regras, rvores de deciso ou grafos.
6. Planejamento Automatizado
uma rea da IA que estuda este processo de deliberao por meio da
computao. O planejamento um processo de deliberao que escolhe e
organiza aes, antecipando os resultados esperados. Esta deliberao busca
alcanar, da melhor forma possvel, alguns objetivos pr-definidos.
7. Jogos Eletrnicos
A rea de jogos por computador uma das reas que mais
amadureceu nas ltimas dcadas; tanto em popularidade quanto em abrangncia
de reas. O seu desenvolvimento hoje requer investimentos milionrios em uma
grande equipe de programadores, artistas, msicos, escritores e tambm em IA,
visto que um dos fatores mais importantes que determinam o sucesso do
produto.
Quando surgiram os primeiros jogos populares, por volta das dcadas
de 60 e 70, o poder computacional oferecido era bastante escasso, assim, no
havia muitas possibilidades para introduo de algoritmos sofisticados de IA nem
recursos suficientes para introduzir aspectos visuais detalhados. Essa limitao
perdurou at meados da dcada de 80, quando os computadores e consoles
dedicados a jogos avanaram muito em tecnologia, e, assim, os jogadores
passaram a exigir dos jogos um nvel de dificuldade compatvel com a de um ser
humano, pois muitos se queixavam de um alto grau de previsibilidade que os
antigos jogos possuam. Assim, o estudo da IA aplicada aos jogos foi ganhando
15
apoio no mundo acadmico, pois alm de ser uma rea nova e interessante do
ponto de implementao de teorias da IA.
O presente trabalho uma breve reproduo de um estilo de jogo
eletrnico baseado em jogos clssicos de luta em duas dimenses (2d) como
Final Fight e Cadilacs & Dinossaurs. Nesse tipo de jogo existe aplicao direta de
IA e SE para os personagens que so controlado pelo computador. As principais
tarefas da IA e SE em um jogo deste tipo so:
Movimentao: Pode-se descrever como busca, padres de movimento, evaso
corrida e etc.. Para solucionar este problema, algoritmos de busca pelo melhor
caminho como A* ser utilizado.
Ataque: Neste caso podemos utilizar sistemas de regras para definir o
comportamento do personagem controlado por mquina. Uma maneira bastante
prtica misturar sistemas de regras com mquinas de estado como ser
apresentado nos prximos captulos.
A ferramenta utilizada para o desenvolvimento do jogo se caracteriza
por ser um SE dedicado a criar jogos. Logo, sero apresentados diversos
conceitos como: tcnicas de animao, controle fluxo do programa, e tratamento
de colises.
O trabalho se organiza como segue. O prximo captulo apresentar um
resumo sobre o histrico da utilizao da IA e Sistemas Especialistas. No terceiro
captulo, so apontados jogos, bem como as caractersticas histricas e a como a
IA acompanhou esse segmento. O quarto captulo engloba o tema principal deste
trabalho, apresentando as principais tcnicas da IA aplicadas aos jogos. No quinto
captulo, o projeto do jogo construdo ser apresentado. Finalmente, a concluso
do trabalho ser apresentada no captulo 6.
16
2 HISTRICO DA INTELIGNCIA ARTIFICIAL
No comeo do sculo XX se deu o incio da histria moderna da IA.
Alfred North Whitehead e Bertrand Russel, no Principia Mathematica, publicado
em 1910-1913, tentaram derivar todas as verdades matemticas a partir de um
conjunto bem definido de axiomas e regras de inferncia para a lgica simblica,
lidando com a matemtica de uma maneira estritamente formal.
Figura 1: Fundamentos da IA.
Embora os avanos cientficos ilustrados anteriormente tenham formado a base para o estudo da IA moderna, somente na metade do sculo XX,
17
com o surgimento dos computadores que a IA se tornou vivel do ponto de vista
cientfico. Graas sua memria e velocidade de processamento, tornou-se muito
mais prtico a implementao de grafos e implantao de sistemas de raciocnio
formal e heursticas2, bem como realizar testes sobre o prprio computador. A
Figura 1 ilustra brevemente os conceitos utilizados pela rea de IA.
A seguir, apresentam-se alguns dos acontecimentos relevantes no
desenvolvimento da IA nos computadores.
Anos 40:
H necessidade do avano tecnolgico para fornecer mais instrumentos
para o combate blico. Assim, seria necessria uma quantidade gigantesca de
clculos, os quais deveriam ser precisos.
O planejamento de aes estratgicas de exrcitos, simulaes do
avano de tropas, elaborao automtica de diversas hipteses estratgicas, tal
como um jogo de guerra, combinaes de possibilidades eram simuladas. Deu-se
ento o incio dos jogos por computador, utilizados tambm para situaes mais
reais alm de jogos de dama e xadrez.
Anos 50:
A introduo da programao atravs de comandos de lgica de
predicados3 proporcionou um grande avano para a programao de sistemas que
utilizassem esquemas de raciocnio, possibilitando o surgimento de linguagens de
programao lgicas 4.
Anos 60:2 As heursticas so regras prticas que podam os espaos de busca para dimenses controlveis. Tendem a concentrar a ateno em algumas configuraes-chave.3 Expande a lgica de palavras "e", "mas", "ou", "no", "se-ento", "se e somente se", e "nem-ou" incluindo palavras como "todos", "alguns", e "nenhum". Alm disso, em expresses como Para tudo (homem mortal), smbolos como (l-se "para todo"), e variveis foram introduzidos. Logo temos x (x homem x mortal) onde " homem" e " mortal" so denominadas, na lgica, de predicados.4 um paradigma de programao que faz uso da lgica matemtica.
18
Para a linha psicolgica, esta dcada foi a descoberta da Inteligncia
Artificial. Utopicamente, os pesquisadores desta linha acreditavam na
possibilidade de reproduzir tarefas de exclusividade humana, tais como o
pensamento e a compreenso da linguagem.
Anos 70:
Estudos mais aprofundados na linha da psicologia demonstraram o
bvio: que, ao menos com a atual tecnologia da poca, no seria possvel
representao numa mquina dos estados mentais humanos responsveis pelo
pensamento.
Dificuldades de se representar o raciocnio humano levaram ao
surgimento dos Sistemas Especialistas5. Mas que tipo de capacidade humana
poderia ser representado em um computador? Para se responder esta pergunta
deve-se investigar os processos caractersticos realizados pelo corpo, tarefas que
parecem simples, como enxergar, falar, ouvir, pegar objetos, reconhecer pessoas
e outras resultantes da percepo, motricidade e memria. Tendo em mos essas
caractersticas, almejava-se realizar uma generalizao destes processos e
implement-las no computador.
Anos 80:
Em 1981, os japoneses anunciaram um projeto de computador de
quinta gerao, que teria Prolog6 como linguagem de mquina e seria capaz de
realizar milhes e inferncias por segundo. Receando o domnio japons, grandes
investimentos comearam a ser feitos na Europa e nos Estados Unidos. Em
decorrncia desse fato, a IA voltou a ser uma rea de pesquisa muito ativa.
5 O conceito de Sistemas Especialistas (SE) surge com a necessidade de se reproduzir a atuao de um especialista humano em alguma rea de conhecimento.6 A linguagem de programao Prolog foi explicitamente apresentada como baseada na lgica matemtica. A base dessa alegao era que um programa Prolog podia literalmente ser lido como um conjunto de frmulas em um fragmento da lgica de primeira ordem, herdando o modelo de teoria e demonstrao da lgica de primeira ordem.
19
http://pt.wikipedia.org/wiki/L%C3%B3gica_de_primeira_ordemhttp://pt.wikipedia.org/wiki/Prolog
Beneficiando-se desse avano, na IA tradicional, ampliavam-se as
tcnicas e aplicaes dos Sistemas Especialistas nas reas de Engenharia, na
Medicina e Economia. Alm disso, houve o interesse de trabalho conjunto com
outras reas, tais como interfaces inteligentes, sistemas de apoio deciso,
controle de robs, entre outras.
2.1O USO DE SISTEMAS ESPECIALISTAS
Com a concluso de que seria difcil recriar o estado da conscincia
humana nos anos 70, a rea de Sistemas Especialistas se destacou na pesquisa
em IA por achar aplicao prtica no mundo real.
Um SE uma classe de programa de computador desenvolvido por
pesquisadores de IA durante os anos 70 e aplicado comercialmente durante os
anos 80, os quais so constitudos por uma srie de regras, s vezes tambm
heursticas, que analisam informaes, normalmente fornecidas pelo usurio do
sistema, sobre uma classe especfica de problema ou domnio de problema.
Sistemas simples utilizam uma lgica verdadeiro/falso simples para
analisar os dados. Por outro lado, sistemas mais sofisticados so capazes de
realizar pelo menos alguma avaliao levando em considerao incertezas do
mundo real.
A arquitetura geral de um SE compreende dois componentes principais:
um conjunto de declaraes totalmente dependentes do domnio do problema e
que chamado de base de conhecimento ou base de regras, e um programa
independente do domnio do problema, apesar de altamente dependente das
estruturas de dados, chamado de motor de inferncia.
A definio de Sistemas Especialistas tem-se como uma tentativa de se
reproduzir o raciocnio humano aplicado a uma determinada rea de
conhecimento. Logo, os problemas que podem ser solucionados por um SE so
20
do tipo que seria atendido por um especialista humano, um mdico ou outro
profissional.
Os SE tambm no deixam de ser uma aplicao da Cincia da
Computao, onde as tcnicas de desenvolvimento devem ser vistas como um
ramo que evoluiu e que, com certeza, deve evoluir ainda mais. Classificam-se
tambm dentro do escopo da IA, utilizando-se de suas possibilidades a fim de que
o objetivo final seja alcanado.
Uma vez que a mstica em torno do tema diminuiu, vrios
programadores perceberam que Sistemas Especialistas simples eram
essencialmente verses ligeiramente mais elaboradas de programas procedurais7
que eles j vinham utilizando h bastante tempo. Sendo assim, algumas das
tcnicas de sistemas especialistas podem ser encontradas em vrios programas
complexos sem qualquer alarde em relao a isso.
7 As linguagens procedurais so caracterizadas pela existncia de algoritmos que determinam uma sequncia de chamadas de procedimentos, que constituem o programa.
21
3JOGOS DE COMPUTADOR
3.1HISTRICO DE JOGOS ELETRNICOS
A histria dos jogos pode ser dividida em: antes da dcada de 70,
dcadas de 70, 80, 90 e 2000, e atravs das diferentes tecnologias utilizadas em
diferentes pocas.
Antes da dcada de 70, algumas empresas e pessoas j comeavam a
dar os primeiros passos na criao de jogos. Uma das principais empresas da
indstria, a Nintendo, comeou como uma empresa que fabricava cartas de
baralho em 1889.
O primeiro jogo eletrnico interativo criado na histria foi o Spacewar,
um jogo onde duas pessoas controlavam dois tipos diferentes de espao-nave que
deveriam combater entre si. Esse jogo foi programado por um estudante do MIT,
Steve Russell, em um computador PDP-1 em 1961. Existem alguns historiadores,
porm, que argumentam que o primeiro jogo eletrnico foi criado por Willy
Higinbotham, um cientista do Brookhaven National Laboratory. Higinbotham
programou, em 1958, um osciloscpio onde era possvel jogar uma partida de
tnis interativa.
Em 1970, Nolan Bushnell comeou a trabalhar em uma verso
fliperama do jogo Spacewar, chamada Computer Space. No ano seguinte, a
empresa Nutting Associates comprou o jogo de Bushnell, colocando no mercado a
primeira mquina de fliperama da histria. Em 1972, Bushnell abre sua prpria
empresa, a Atari, famosa pelo jogo Pong (criado pelo engenheiro Al Alcorn).
22
Figura 2: Imagem do jogo Pong
At o fim da dessa dcada, muitas empresas entraram no mercado de
jogos, como Taito, Midway e Capcom, alm da Magnavox lanar em 1972 o
computador Odyssey. Seguindo a linha de tempo dos jogos, nos anos 80 as
mquinas de fliperama estavam em seu auge, com muitos jogos sendo lanados
(Donkey Kong, Tron e Q*Bert so alguns exemplos).
3.2HISTRICO DA EVOLUO DOS CONSOLES E O USO MAIS COMPLEXO DE IA.
Odyssey (1975):
Como se pode imaginar, na primeira gerao, jogar era a grande
novidade. Antes do lanamento do lendrio Odyssey, o primeiro vdeo game
conectado TV, tudo o que tnhamos (usar sempre o verbo na terceira pessoa do
singular ou do plural, assim, substitua por tinham-se) disposio eram
computadores gigantescos que proporcionavam jogos os quais, na concepo
atual, nem poderiam ser considerados como vdeo games. Contudo, o Odyssey
23
trazia uma experincia que pode ser considerada como base estrutural do que
temos hoje. Em simples jogos como Tennis e Hockey, at dois jogadores podiam
disputar partidas. Na primeira verso do console, no havia cartuchos, apenas os
jogos embutidos na memria. Outro fator interessante a ausncia de painel de
informaes em jogo. Os jogadores tinham de marcar os pontos manualmente.
Em suma, trata-se de uma gerao demarcada pelo surgimento dos
vdeos games. E, neste caso, jogos eram como muitos brinquedos, sendo
realmente limitados e com poucas possibilidades. No havia nem como jogar
contra o computador, algo que s se tornou possvel com a incluso dos
microprocessadores nos consoles, tornando possvel introduo da IA a um nvel
simples, pois se tratava de uma nova maneira de se programar os jogos, somado
a limitao de recursos dos consoles da poca. Porm, isso algo que j no
ocorre nos consoles de hoje, visto que a cada gerao o nvel computacional
aumenta.
Figura 3: O Console Odyssey
Atari 2600 (1975):
Finalmente, com a chegada do lendrio Atari 2600, em 1977, os vdeo
games comeavam tomar sua forma contempornea. Nesta poca os cartuchos
foram introduzidos ao mundo do entretenimento eletrnico. Finalmente, os
24
jogadores poderiam trocar de games como trocavam de blusa, algo que contribuiu,
e muito, para o crescimento da indstria.
Em pouco tempo o Atari se tornaria sinnimo de diverso, e muitas
outras empresas comeavam a enxergar grandes possibilidades lucrativas neste
novo ramo. Com o Atari, muita coisa mudou. O salto se concretiza pela chegada
de uma espcie de verso beta da Inteligncia Artificial (IA). Ao contrrio dos
consoles antecessores, o Atari 2600 j permitia jogos em single-player, incluindo
at mesmo games com uma espcie de campanha.
Figura 4: O Console Atari 2600
Microcomputadores (1980):
A revoluo dos microcomputadores pessoais foi iniciada pela Apple e
seguida por diversos outros como o ZX-Spectrum, Commodore 64, TRS-80 e
MSX. O principal tipo de aplicao destes sistemas eram os jogos.
Figura 5: ZX-Spectrum lanado em 23 de maro de 1980
25
http://pt.wikipedia.org/wiki/1980http://pt.wikipedia.org/wiki/23_de_mar%C3%A7o
Figura 6: Commodore 64 agosto de 1982
Figura 7: Sony MSX, Model HitBit-10-P MSX lanado em 1983
Figura 8: O Console TRS-80 Modelo I fim da dcada de 1970
A gerao de 8 bits (1980):
26
http://pt.wikipedia.org/wiki/D%C3%A9cada_de_1970http://pt.wikipedia.org/wiki/1982http://pt.wikipedia.org/wiki/Agosto
A Nintendo entrou no mercado de vdeo games com o NES (Nintendo
Entertainment System) que era um excelente produto a um preo bem acessvel.
A Big N, como conhecia a empresa, provou que os consoles de mesa no eram
apenas simples brinquedos, trazendo propostas que iam muito alm de tudo que
j havia sido visto no entretenimento interativo. Basta observar o lendrio Super
Mario Bros., game que revolucionou os jogos pela sua proposta e por ser
extremamente cativante. Mario trazia consigo uma proposta indita, com foco
simultneo na narrativa e na aventura. importante ressaltar que foi durante esta
gerao que surgiram os primeiros games com uma trama contextualizada com a
ajuda de informaes no formato de texto.
A Sega veio em seguida com o Master System para concorrer com o
NES. No Brasil a Sega representada pela Tec Toy.
Figura 9: NES lanado em 15 de Julho 1983 (Japo)
Figura 10: Master System lanado 20 de Outubro de 1985 (Japo)
A gerao de 16 bits (1980):
27
http://pt.wikipedia.org/wiki/Jap%C3%A3ohttp://pt.wikipedia.org/wiki/1985http://pt.wikipedia.org/wiki/20_de_outubrohttp://pt.wikipedia.org/wiki/Jap%C3%A3ohttp://pt.wikipedia.org/wiki/1983
A Sega saiu na frente na corrida dos 16 bits com o lanamento do Mega
Drive. A Nintendo surgiu depois com o Super Nintendo. Havia tambm o Neo Geo
da SNK que era incrivelmente superior, visto que era um Arcade domstico, porm
tinha um custo muito elevado.
Surgiam jogos de extrema qualidade, trazendo propostas ainda mais
inovadoras. Novos gneros surgiam, e os antigos desfrutavam de aprimoramentos
memorveis. Os consoles mantinham uma estrutura semelhante aos seus
predecessores. Nesta poca, surgiram grandes franquias de empresas
terceirizadas, como o caso de Final Fantasy e dezenas de outros ttulos, por
exemplo. A trama tambm se tornou mais elaborada, o que acabou gerando jogos
em srie, algo tambm inovador para a poca.
Os grficos desta gerao eram simplesmente impressionantes. O salto
foi enorme, e os jogadores podiam conferir muito mais detalhes em seus games,
incluindo animaes e representaes tridimensionais.
Figura 11: Mega Drive lanado 1988 (Japo)
28
http://pt.wikipedia.org/wiki/Jap%C3%A3o
Figura 12: SNES lanado 1990 (Japo)
Figura 13: NEO-GEO Lanamento 1990 (Japo)
32 bits, 64 bits e o CD-ROM (1990):
Entrava em cena uma nova marca que revolucionaria, de uma vez por
todas, o universo do entretenimento eletrnico: a Sony, ao lado de seu
PlayStation.
Saiam os cartuchos, com exceo do Nintendo 64, que continuou
investindo nos chips com armaduras plsticas, e entravam os CDs, o que
possibilitou a introduo de elementos inovadores.
Talvez uma das mais significantes, e impressionantes, novidades foram
as CGs (Computer Graphics) tratam-se de clipes que contextualizavam, ou
simplesmente ilustravam, os games atravs de animaes de alta qualidade.
29
http://pt.wikipedia.org/wiki/Jap%C3%A3ohttp://pt.wikipedia.org/wiki/Jap%C3%A3o
Muitos gneros encontraram novos horizontes, tudo graas ao novo
modo de jogar. Agora, tudo era tridimensional, o que possibilitava novos modos de
explorao e, consequentemente, a criao de novos gneros. Felizmente, muitos
ttulos conseguiram se adaptar a esta nova era, como o caso da srie de Mario,
por exemplo, que revolucionou com a chegada de Super Mario 64.
A quinta gerao foi marcada pela introduo do termo tridimensional
aos games. Com os novos recursos tecnolgicos, os games comeavam a se
tornar ainda mais realistas, mesmo que muitos dos personagens fossem
pontiagudos e relativamente longes de nossa realidade. O importante era a
explorao de um ambiente que relembrava bastante o mundo em que vivemos.
Quanto ao udio, o vasto espao das mdias permitia trilhas sonoras
orquestradas e jogos completamente dublados. Estava-se a poucos passos da to
sonhada perfeio, tornando esta gerao a que trouxe as maiores mudanas da
indstria.
Figura 14: Sony Playstation Lanamento 3 de Dezembro 1994 (Japo)
30
http://pt.wikipedia.org/wiki/Jap%C3%A3o
Figura 15: Nintendo 64 Lanamento 23 de Junho 1996 (Japo)
A gerao de 128 bits (1990):
nesta gerao que os grficos dos games comeavam a desenhar,
pela primeira vez objetos realmente redondos. Inaugurada pelo famoso
DreamCast, da Sega, esta gerao foi consolidada pelo domnio da gigantesca
Sony, que passaria a ser reconhecida como a gigante do ramo.
Todos os consoles desta gerao contavam com mdias em disco, o
que causou a extino dos cartuchos. Entretanto, assim como na gerao
passada, era possvel salvar o seu desempenho e outros elementos dos jogos em
um carto de memria, deixando de lado as palavras-passe das primeiras
geraes.
No DreamCast, a companhia foi alm do esperado ao trazer um VMU
(Visual Memory Unit), o qual, alm de salvar seu progresso, tambm servia como
um auxilio visual para o jogador, exibindo informaes em tempo real durante o
jogo.
Em termos tcnicos, o avano, novamente, foi gigantesco. Com 128
bits, os consoles conseguiam processar dados de tirar o flego, trazendo
ambientes caprichados e muita ao na tela. Um dos grandes exemplos o
famoso God of War, que considerado por muitos como um dos jogos mais belos
do console da Sony.
Foi nesta gerao que Bill Gates apresentou seu console ao mundo.
Muitos dos games passaram a ser produes que envolviam milhes de dlares,
como o caso de Shenmue que, por muito tempo, foi o jogo mais caro da histria.
Os direcionais analgicos, introduzidos no final da gerao passada,
passaram a ser indispensveis para muitos ttulos. Alm disso, o Xbox, da
Microsoft, introduzia um novo conceito para o que conhecamos como multiplayer:
31
http://pt.wikipedia.org/wiki/Jap%C3%A3o
jogar online. Outro fator interessante que os games passaram a ser vistos como
algo tambm adorado por gente grande.
Figura 16: DreamCast Lanamento 27 de Novembro 1998 (Japo)
Figura 17: Sony Playstation 2 Lanamento 4 de Maro 2000 (Japo)
Figura 18: GameCube Lanamento 14 de Setembro 2001 (Japo)
32
http://pt.wikipedia.org/wiki/Jap%C3%A3ohttp://pt.wikipedia.org/wiki/Jap%C3%A3ohttp://pt.wikipedia.org/wiki/Jap%C3%A3o
Figura 19: Micosoft XBOX Lanamento 15 de Novembro 2001 (EUA)
A gerao High Definition (2005):
Games Online, DLC (DownLoadable Content ou contedo para
download) e Wireless, tudo em um s aparelho. Jogar em sua TV era o princpio
bsico da primeira gerao. Na stima, voc joga, assiste filmes, ouve msica,
acessa a Internet, conversa com seus amigos, faz desenhos, v fotos entre outras
coisas.
Na era do Xbox 360, PlayStation 3 e Nintendo Wii, o mundo novamente
desfrutou de uma revoluo. A gerao HD (High Definition) no reinventou a
roda, como aconteceu na transio da quarta para a quinta. Entretanto, os
aprimoramentos foram absurdos e a integrao com o mundo online trouxe novas
possibilidades.
Se considerarmos a jogabilidade, quase no h diferena entre o
primeiro Xbox e o Xbox 360, por exemplo. Mas, se mencionarmos Nintendo Wii,
pode-se verificar uma grande diferena. A Big N, que nas geraes passadas
enfrentou dificuldades, simplesmente dominou nas vendas, graas a ajuda do
pblico que adorou a aposta da empresa nos controles intuitivos.
33
Alm disso, tudo se tornou mais fcil. Nem mesmo precisamos sair de
casa para adquirir jogos, e jogar com os amigos algo que pode ser feito
distncia e sem qualquer empecilho. O visual alcanado nesta gerao espanta
qualquer um.
Mas, se prestarmos muita ateno, os jogos ainda so os mesmos. Isto
porque a estrutura ainda a mesma de 40 anos atrs. Senta-se, pega-se o
controle e desfruta-se de uma aventura em frente aos televisores. Mas, agora,
tudo mais enfeitado e detalhado. Querendo ou no, a essncia dos games ainda
continua viva, firme e forte.
Figura 20: Micosoft XBOX 360 Lanamento 22 de Novembro 2005 (EUA)
34
Figura 21: Sony Playstation 3 Lanamento 11 de Novembro 2006 (Japo)
Figura 22: Nintendo Wii Lanamento 19 de Novembro 2006 (Japo)
3.3HISTRICO E BENEFCIOS DE IA EM JOGOS
O principal benefcio que o uso de IA em jogos pode propiciar ao
desenvolvimento de jogos o fator diverso. Os personagens de um jogo devem
simular inteligncia e erros humanos e ter personalidades, devem ser capazes de
fornecer diferentes nveis de dificuldade ao jogador, para que o mesmo se sinta
desafiado. Alm disso, os jogadores cada vez mais demandam melhores
oponentes em jogos mais complexos.
A IA em jogos aumenta a experincia e imerso do jogo, melhorando
sua jogabilidade. NPCs (Non-player Character ou Personagem no-jogvel)
inteligentes fazem com que a criao de jogos single-player (para um jogador)
seja possvel, alm de melhorar a experincia em jogos multiplayer (para vrios
jogadores) sem a necessidade de se ter uma comunidade de pessoas atuando
35
http://pt.wikipedia.org/wiki/Personagem_n%C3%A3o-jog%C3%A1vel
durante o jogo. Os NPCs inteligentes so necessrios a qualquer gnero de jogo
para criar a iluso que o jogador est num mundo com outros jogadores
inteligentes, alm de adicionar uma profundidade ao jogo. O uso da IA tambm
pode trazer vantagens de desenvolvimento de jogos. Segundo (CHAMPANDARD,
2003), o jogo Colin McRae Rally 2 utiliza redes neurais e aprendizado, no sendo
necessrio assim a programao manual da IA, uma vez que o jogo aprende
como os carros devem se comportar durante as corridas.
3.4ANO E DESCRIO DE IA UTILIZADA
A seguir apresentam-se alguns dos principais jogos de cada ano,
seguido do tipo de IA aplicada ao mesmo.
1962 - Primeiro jogo de computador, Spacewar, para dois jogadores.
IA: Nenhuma
1972 - Lanamento do jogo Pong, para dois jogadores.
IA: Nenhuma
1974 - Jogadores tinham que atirar em alvos mveis em Pursuit e Qwak.
IA: Padres de movimento
1975 - Gun Fight lanado, personagens com movimentos aleatrios.
IA: Padres de movimento
1978 Space Invaders contm inimigos com movimentos padronizados, mas
tambm atiram contra o jogador.
IA: Padres de movimento
36
1980 O jogo Pac-man conta com movimentos padronizados dos inimigos,
porm cada fantasma (inimigo) tem uma personalidade sobre o modo em
que caa o jogador.
IA: Padres de movimento
1990 O primeiro jogo de estratgia em tempo real, Herzog Wei, lanado.
Os jogadores puderam noticiar uma pssima busca de caminho.
IA: Mquina de estados
1993 Doom lanado como primeiro jogo de tiro em primeira pessoa.
IA: Mquina de estados
1996 BattleCruiser: 3000AD publicado como o primeiro jogo a utilizar
redes neurais em um jogo comercial.
IA: Redes neurais
1998 Half-Life lanado e analisado como a melhor IA em jogos at a
poca, porm, o jogo utiliza IA baseada em scripts.
IA: Mquina de estados / Script
2001 O jogo Black & White alvo da mdia a respeito de como as criaturas
do jogo aprendem com as decises feitas pelo jogador. Utiliza redes
neurais, Reinforcement 8 e Observational Learning9.
IA: Diversos.
8 um termo de condicionamento operante e anlise do comportamento para a entrega de um estmulo, (imediatamente ou pouco), aps uma resposta, que resulta em um aumento da taxa de probabilidade de uma resposta.9 um tipo de aprendizado que ocorre em funo de observar, reproduzir um comportamento e mant-lo.
37
2004 Half-Life 2 a seqncia de Half-Life, um jogo de tiro em primeira
pessoa. Traz novas tecnologias para representar fsica nos jogos, alm
do modo cooperativo, recebendo ajuda dos personagens controlados pela
mquina.
IA: Diversos.
2005 SWAT 4 um jogo com caracterstica ttica. O controle da equipe
feito por um sistema de ordens. A IA dos adversrios funciona atravs de
um sistema de moral que define o nvel de agressividade para cada tipo de
delito que praticado por estes agentes.
IA: Mquina de estados / Script baseado em fortes sistemas de regras
2005 F.E.A.R. um jogo de tiro em primeira pessoa. O jogo foi
implementado com o que podemos considerar o melhor sistema de IA.
IA: Mquina de estados / Script ; Hierarquia de metas; redes neurais
2006 Gears of War um jogo de tiro em terceira pessoa. Com ponto de
vista sobre o ombro e sistema ttico de cobertura. A jogabilidade tem foco
em se esconder e atacar com fora bruta. Todas as paredes, muros,
escombros, objetos e imperfeies do terreno podem ser usados como
proteo durante o fogo-cruzado.
IA: Diversos
2009 Dark Sector adiciona algumas novidades muito interessantes. O
objetivo aumentar a fora do vrus que infecta o personagem, isto obtido
com tcnicas de Reinforcement, Observational Learning e algoritmos
genticos.
IA: Diversos
38
http://pt.wikipedia.org/wiki/2005
4 IA APLICADA AOS JOGOS
As tcnicas de IA para jogos podem ser divididas em duas principais
categorias, que so denominadas determinsticas e no-determinsticas:
Determinstica: possui comportamento previsvel, consome poucos recursos da mquina e mais fcil de ser implementada.
Um exemplo de comportamento determinstico o algoritmo bsico de
perseguio. O problema desta abordagem que se faz necessrio prever todas
as aes possveis em um determinado momento, fazendo-se uso de muitas
regras do tipo se-ento; alm disso, aps pouco tempo de jogo, o jogador
consegue prever facilmente o comportamento da mquina, pois, para um mesmo
conjunto de entradas, as mesmas respostas so atribudas.
No-determinstica: possui um grau de incerteza, que pode variar a cada implementao.
Um exemplo de comportamento no determinstico inclui o aprendizado
que um personagem da mquina adquire ao jogar contra um humano aps um
determinado perodo. Tal aprendizado pode ser implementado por uma Rede
Neural ou Algoritmo Gentico, por exemplo. possvel fazer com que a mquina
possa exibir comportamentos que vo alm do que lhe foi programado, porm, em
alguns casos, a mquina pode exibir um comportamento no desejado. Outra
dificuldade se encontra nos testes, pois fica mais difcil testar todas as
combinaes de comportamento que a mquina poder exibir durante a execuo
do jogo.
39
Muitos programadores do incio da era de jogos eletrnicos
implementavam padres de movimentos, repetitivos e/ou aleatrios para os
personagens controlados pelo computador (como Galaga e Donkey Kong) como
sendo a inteligncia existente no jogo. Esse fato foi principalmente causado pela
falta de memria e limitao existente na velocidade de processamento.
Os jogos de estratgia (Civilization de 1991, por exemplo) esto entre
os pioneiros em IA para jogos, uma vez que tais jogos necessitam de uma boa
inteligncia para que sejam jogveis, pois requerem que o computador controle
grupos de personagens com estratgias e tticas complexas.
Uma extenso dos jogos de estratgia so os jogos de estratgia em
tempo real, onde toda a ao acontece em tempo real, ao contrrio de outros
jogos de estratgia, que ocorre em turnos. A IA para esse gnero de jogo deve
realizar buscas de caminhos (pathfinding) para centenas de unidades em tempo
real. Jogos do gnero simuladores de gesto de cidades, fazendas, relaes
pessoais, entre outros, como o clssico SimCity, lanado pela empresa Maxis em
1989, foram os primeiros a provarem o potencial dos mtodos de Artificial Life (A-
Life). Outro jogo famoso da Maxis, The Sims (2000), conta com personalidades
profundas em seus agentes inteligentes. Tal jogo exemplo do potencial uso de
mquinas de estado fuzzy (fuzzy-state machines ou FuSM) e A-Life. Outro
exemplo do uso de A-Life em jogos o ttulo Creatures ,criado pela CyberLife em
1996, que simula a psicologia e fisiologia dos personagens do jogo, incluindo um
DNA digital nico de cada personagem.
Em jogos de tiro de primeira pessoa (first-person shooter ou FPS),
como Half- Life (Valve) e Unreal: Tournament (lanado em 1999 pela
EpicMegaGames), a IA ficou conhecida pelo excelente nvel ttico dos inimigos,
desenvolvida atravs do uso de mquinas de estado finito e scripts que
determinam como um agente inteligente deve agir em vrias situaes.
40
4.1TCNICAS E ALGORITMOS DE IA IMPLEMENTADAS EM JOGOS
Existem diversas tcnicas e algoritmos utilizados pelos
desenvolvedores de jogos para dar aos personagens certa inteligncia, ou ao
menos fazer com que os personagens paream ser inteligentes, e tenham uma
personalidade. Um dos princpios bsicos de IA para jogos so os algoritmos
determinsticos e padres de movimento, onde os comportamentos so pr-
programados ou pr-processados. Sero discutidos quatro tipos mais utilizados de
IA que so implementadas em jogos: mquinas de estado finito, sistemas
baseados em regras, algoritmos de busca e algoritmos genticos.
4.1.1 MQUINAS DE ESTADO
Uma mquina de estado finita uma mquina abstrata que define os
estados em que um personagem pode se encontrar e quando o mesmo muda de
estado. O estado atual da mquina determina como o personagem deve atuar no
jogo. Mquinas de estado foram usadas no inicio da criao de jogos com IA e so
usadas at hoje por serem de fcil entendimento, implementao e depurao de
erros.
No jogo Pac-man, por exemplo, uma mquina de estado
implementada para cada fantasma do jogo. Um fantasma pode estar nos
seguintes estados: procurando jogador, perseguindo jogador e fugindo do
jogador. Quando o fantasma est procurando o jogador, ele apenas se
movimenta pelo labirinto at encontrar o jogador. Quando ele se depara com o
jogador, verifica se ele pode perseguir o jogador ou se precisa fugir. Se o
fantasma pode seguir o jogador, ele muda seu estado para perseguindo jogador
41
e tenta alcanar o jogador. Se durante esse tempo o jogador ganha a habilidade
de engolir o fantasma, o fantasma muda seu estado para fugindo do jogador.
As mquinas de estado finito tm sido h muito tempo a principal
escolha na hora de implementar a IA de agentes para jogos. Existem vrios
motivos pelos quais o uso de mquinas de estado tenha sobrevivido at hoje,
entre eles podemos citar:
1. Facilidade de compreenso pois natural para ns humanos pensarmos
nos objetos como estando em um estado ou outro.
2. So fceis de serem implementados.
3. Facilidade de teste como possuem um nmero finito de estados,
possvel traar a rota de eventos que causaram o mal-funcionamento do
agente defeituoso.
4. So rpidos h pouca sobrecarga de processamento, pois todas as
regras so implementadas via programao e so da forma se-ento.
5. So flexveis estados e regras adicionais podem ser implementados
rapidamente. Alm disso, podem ser combinadas com tcnicas no-
determinsticas da IA, como redes neurais e lgica nebulosa.
Os elementos bsicos que constituem uma FSM so:
Estados : representam uma posio no tempo que, consequentemente ir
influir no comportamento do agente.
Transies : so ligaes entre os estados. Podem ser uni ou bidirecionais.
42
Eventos: so aes que ocorrem externamente ao agente.
Condies: so regras que devem ser preenchidas para que ocorra a
mudana de estado.
Para implementar uma FSM, necessrio ter uma varivel de controle,
que indicar o estado atual do agente. O valor inicial desta varivel ir determinar
o estado inicial. A partir disso, a cada interao do agente com seu ambiente seu
estado atual verificado, e, a partir deste, verificado se alguma condio de
transio satisfeita. Caso isto ocorra, a mudana do valor da varivel de controle
indica a mudana de estado. Isto pode ser feito atravs do uso de condies se-
ento.
A adio de estados adicionais pode resultar na dificuldade do
entendimento do cdigo. Uma soluo para o problema est na utilizao de
tabelas de transio de estados. Tais tabelas so divididas em colunas, que
contm a condio o novo estado (transio), caso a condio seja satisfeita.
Uma grande desvantagem no uso de FSMs o fator previsibilidade,
que acaba tornando o jogo muito fcil para o jogador humano aps algum tempo
de jogo. Uma maneira de tornar as aes, praticadas pelo agente, mais difceis de
se prever misturar esta com uma outra tcnica como a lgica fuzzy (nebulosa),
que possvel mapear problemas discretos ou booleanos da mesma maneira
como seres humanos o fazem. Por exemplo, ao invs de dizermos que um objeto
est uma distncia de 0,5, 1 ou 10 metros, podemos dizer que o mesmo est
muito perto, perto ou longe.
Deste modo, podemos tornar a FSM menos determinstica, utilizando as
tcnicas como:
Fuzzificar as condies de transio de estados. Quando for encontrado
um conflito, escolher a transio de maior valor fuzzy.
43
Fuzzificar os valores de entrada, representando a fora (peso) com que
determinado evento tenha ocorrido. O sistema ento utilizaria esses dados
numricos, disparando apenas as transies de estado cujos pesos
estiverem acima de um limiar.
Outra maneira de tornar o sistema menos determinstico selecionar os
estados de transio aleatoriamente dentro de uma grande gama de estados,
criando uma sensao de imprevisibilidade.
4.1.2 SISTEMAS BASEADOS EM REGRAS
Alguns fenmenos no so fceis de serem modelados em termos de
estados e transies. Considere, por exemplo, os seguintes fenmenos de um
cachorro virtual:
Se h um osso por perto e o cachorro est com fome, ele ir com-lo.
Se o cachorro est com fome, mas no h nenhum osso por perto, ele procura por
um.
Se o cachorro no est com fome, mas est com sono, ele ir dormir.
Se o cachorro no est com fome e no est com sono, o cachorro ir andar e
latir.
Essas quatro sentenas so difceis de serem representadas atravs de
uma mquina de estados, pois cada sentena leva a um estado da mquina e
44
cada estado pode transitar para qualquer um dos outros estados. Esse tipo de
problema conhecido por comportamento global.
Mquinas de estado so teis para situaes locais, onde dado um
estado, apenas algumas condies podem ser aplicadas como sada. Nesse
exemplo, o cachorro se comporta de acordo com um conjunto de prioridades ou
regras.
Um sistema baseado em regras tem a forma Condio => Ao. No
exemplo citado, as regras teriam a seguinte forma:
- Fome & osso por perto = comer.
- Fome & no osso por perto = procurar.
- No fome & com sono = dormir.
- No fome & sem sono = andar e latir.
Dessa maneira, so especificadas as condies que ativam as regras
assim como quais aes devem ser tomadas caso a regra seja ativada. Sistemas
baseados em regras so muito utilizados, tanto para aplicaes da vida real
quanto para jogos. So sistemas que consistem de inmeras regras do tipo se-
ento, que sero aplicadas a um conjunto de entradas. De acordo com o conjunto
de entrada, a parte ento da regra define qual ao ser tomada.
Em IA, estes sistemas tambm so chamados de Sistemas
Especialistas. Outra vantagem em usar sistemas especialistas se deve sua
natureza modular, sua fcil implementao, e o conjunto de regras pode ser
disposto em qualquer ordem. Todo Sistema Especialista ou baseado em regras
deve possuir os seguintes elementos:
45
Memria de Trabalho ( working memory ): armazena os fatos j sabidos e tambm
as asseres feitas pela aplicao das regras.
Regras: conjunto de regras no estilo se-ento que operam sobre os fatos gravados na memria de trabalho. Quando uma regra aplicada, ela dispara a
ao vinculada sua parte ento, ou faz com que o sistema mude de estado,
como numa mquina de estado finito.
Interpretador: tambm conhecido como motor de inferncias, a parte do sistema responsvel pela escolha e aplicao de determinada regra a partir de
seu estado atual. O interpretador utiliza duas maneiras para fazer inferncias: o
forward e o backward chaining.
O sistema forward chaining ou encadeamento progressivo o mais
comum dos sistemas de inferncia. Nele, o sistema inicia com um conjunto de
fatos, e a partir destes, aplica as regras repetidamente at que o resultado
desejado seja alcanado. O mtodo dividido em trs etapas:
1. Matching: nesta fase, o sistema procura identificar todas as regras que se
aplicam ao conjunto de entrada, de acordo com seu estado atual.
2. Resoluo de conflitos: na primeira etapa, mais de uma regra pode
satisfazer o conjunto de entrada atual. Para resolver este conflito, existem
vrias abordagens, como por exemplo:
a. Escolher sempre a primeira regra aplicvel.
b. Escolher uma das regras aleatoriamente.
46
c. Atribuir pesos para as regras e escolher a de maior peso.Tais pesos
podem ser atualizados de acordo com a frequncia com que cada regra
escolhida.
3. Execuo: depois de eliminadas as ambiguidades, a regra escolhida
executada, ou seja, a sua parte ento.
O backward chaining ou encadeamento regressivo basicamente o
contrrio do forward chaining. A partir de um objetivo, o sistema verifica quais
regras poderiam ser aplicadas para que o mesmo seja atingido. por este motivo
que o backward chaining dito ser um algoritmo dirigido ao objetivo (goal driven).
Devido sua natureza recursiva, o backward chaining no amplamente utilizado,
por questes computacionais.
4.1.3 ALGORITMOS DE BUSCA
Busca um dos problemas mais bsicos de IA para jogos. Quando um
jogo implementa uma busca pobre, o resultado so personagens que parecem
totalmente artificiais e sem inteligncia de navegar entre locais e desviar de
obstculos, o que acaba com a imerso do jogo e a diverso.
Para solucionar o problema de busca, diversos algoritmos podem ser
utilizados, sendo o algoritmo A* o mais famoso e implementado em jogos, embora
solues como o algoritmo de Dijkstra e Waypoints tambm sejam utilizados.
Em muitos jogos, os desenvolvedores representam o mundo virtual por
onde um personagem caminha atravs de grades, onde cada clula pode
representar um n de um grafo. Um custo associado para cada clula da grade,
utilizado pela heurstica do A*. Como o uso de busca pode consumir muito tempo
do processador, possvel contornar esse problema atravs de caminhos pr-
47
calculados, chamados de Waypoints, quando o jogo permite esse tipo de soluo.
Os Waypoints so ns em locais do mundo virtual que auxiliam no deslocamento
de um lugar para outro atravs de caminhos pr-calculados ou mtodos de busca
de baixo custo.
4.1.3.1 ALGORITMO A*
O A* (pronuncia-se A estrela) um algoritmo para busca que surgiu
da variao do algoritmo guloso e o da busca uniforme.
O funcionamento do algoritmo guloso se faz utilizando uma heurstica
h(n), visando minimizar a estimativa do custo at meta, ocasionando diminuio
no tempo de busca consideravelmente. Porem no timo nem completo. (A
caracterstica de um algoritmo completo achar a soluo de um problema se ela
existir. Um algoritmo dito como timo, se o mesmo apresenta a menor
complexidade dentre todos os possveis algoritmos que poderiam resolver aquele
problema, e sua complexidade de pior caso igual ao limite inferior do problema).
O algoritmo da busca uniforme, por outro lado, prioriza o custo do
menor caminho percorrido do n inicial ao n avaliado, isto garantido pela
funo G(n). Apesar de timo e completo pode ser ineficiente.
Logo, da combinao destes dois algoritmos, surge o A*, que garante
para qualquer grafo, encontrar um caminho timo entre os estados inicial e final,
caso exista um caminho entre esses estados.
O ponto crucial aqui escolher qual dos ns far parte do caminho a
ser percorrido. Isto feito utilizando uma funo de avaliao F(n). Esta funo
o resultado da soma da distncia percorrida do n inicial ao n avaliado, G(n), com
48
uma funo heurstica, H(n), onde n representa o n avaliado representando o
custo estimado do movimento para mover daquele ponto determinado at o
destino final, ponto B.
Figura 23: Ilustrao do Funcionamento do A*
Pode-se ento, provar, que o A* completo e timo apenas aplicando
uma restrio a funo H. Essa restrio simplesmente escolher uma funo H
que nunca sobre-estime o custo de chegar meta. Ento H chamada de
heurstica admissvel e por ser admissvel tambm considerada tima, pois leva
em considerao que o trabalho para resolver o problema menor do que
realmente.
Logo, a funo para avaliao do melhor caminho dada por F(n)=
G(n)+ H(n) pois todo o otimismo da heurstica H transferido para F, tornando-se
admissvel, nunca sobre-estimando o custo da melhor soluo no caminho de A
at B.
4.1.4 ALGORITMOS GENTICOS
A pesquisa em Algoritmos Genticos (AGs), assim como as redes
neurais, outra rea da IA influenciada pela biologia. Ela baseada nos estudos
sobre a evoluo das espcies, de Charles Darwin, moldando a populao de
indivduos atravs da sobrevivncia dos membros mais aptos a viver naquele
ambiente.
49
No desenvolvimento de jogos, os AGs visam a busca de uma soluo
tima para um determinado problema. Geralmente, eles so utilizados quando se
deseja uma IA que atue mesmo em situaes no previstas pelo desenvolvedor,
como em tomadas de deciso de acordo com o comportamento do jogador.
Para problemas como o do pathfinding, (nos quais j existem algoritmos
slidos para sua resoluo) no recomendado o uso dos AGs, pois estes so
mais custosos computacionalmente.
A implementao dos AGs, de forma geral, em jogos pode ser dividida
em quatro etapas, a saber: inicializao da populao, clculo da aptido, seleo
e evoluo.
Inicializao: Primeiramente, preciso definir um modo de codificar os cromossomos da populao de criaturas de IA que iremos criar. Esta codificao
pode ser feita de maneira simples, utilizando um vetor de caracteres, assim, cada
ndice do vetor pode representar uma caracterstica do ambiente externo e o valor
contido nesta posio representa a ao que a criatura dever executar.
A ttulo de ilustrao, considere o seguinte exemplo: Suponha que a
populao de criaturas controladas pelo computador tenha que responder de
acordo com a arma em uso pelo jogador (espada, arco, lana e machado), e as
respostas possveis so: (1) usarEscudo, (2) ataqueComEspada, (3) fugir, (4)
esconder, e (5) ataqueComArco. Dessa forma, os cromossomos destas criaturas
sero representados por um vetor de quatro posies, onde a posio 1 contm o
identificador da ao a ser executada caso o jogador tenha uma espada, a
posio 2 ser executada caso o jogador tenha um arco, e assim por diante. Cada
posio do vetor assume um valor de 1 a 5.
Na etapa de inicializao, espera-se obter uma populao com alto
grau de variabilidade gentica, portanto atribuem-se valores aleatrios para os
cromossomos. Numa aplicao real poderamos ter um nmero muito maior de
situaes a considerar.
50
Clculo da Aptido: Nesta etapa do processo evolucionrio, devem-se avaliar quais indivduos da populao so os mais aptos a resolver o problema em
questo. Para isto, utiliza-se uma funo de avaliao de aptido, tambm
denominada funo fitness.
Para o exemplo acima, uma boa funo avaliao contabilizar a
diferena entre o dano que a criatura causou ao jogador e o dano recebido. As
criaturas com a maior aptido segundo esta funo tero a maior probabilidade de
passar seus genes gerao seguinte.
Seleo: Nesta etapa utilizada a funo calculada na etapa anterior para que sejam escolhidos os indivduos que participaro do processo evolucionrio. Na
vida real, geralmente dois pais contribuem com seus cromossomos para a
gerao seguinte. J no mundo dos jogos, podemos escolher qualquer nmero
dentre os melhores indivduos, segundo a funo de aptido.
Evoluo: Nesta ltima etapa, sero criados os novos indivduos que sero introduzidos no ambiente do jogo. So selecionados os melhores indivduos e
combinados seus genes no processo de recombinao (crossover). Aqui tambm
so introduzidas mutaes aleatrias.
Aps esta etapa, o algoritmo retornar etapa dois, e a cada iterao,
sero criados indivduos mais aptos a enfrentar o jogador em diferentes situaes.
4.2PROBLEMAS ENVOLVENDO IA E JOGOS
Embora os desenvolvedores tenham encontrado muitas solues
atravs da implementao de IA nos jogos, muitos problemas tambm aparecem
pelo uso de
51
IA em jogos. Quatro fatores podem ser citados como principais
problemas da IA para jogos:
1. Perodo de Desenvolvimento: o curto perodo de desenvolvimento dos jogos
dificulta o aprendizado dos desenvolvedores para tecnologias de ponta sobre
IA e suas aplicaes em um jogo comercial.
2. Algoritmos de Aprendizado: os resultados produzidos por algoritmos de
aprendizado so difceis de serem testados e depurados contra erros, visto
que os resultados no so previsveis. Por essa razo, muitos
desenvolvedores tm preferncia por tcnicas de IA determinsticas, e
tambm por serem mais conhecidas pelos mesmos e de fcil implementao e
depurao.
3. Poder de Processamento: jogos so softwares com execuo em tempo real,
onde informaes so processadas e atualizadas a cada ciclo de mquina.
Algoritmos com alto custo de processamento ainda no podem ser
implementados em jogos que necessitam de respostas em tempo real.
4. Jogos so baseados em G ame Design : durante o desenvolvimento de um
jogo, toda equipe baseia-se no documento de Game Design do jogo. No
entanto, existe um confronto entre game designers e game AI, pois os game
designers constroem a narrativa do jogo e definem a jogabilidade e eventos do
jogo, tendo um controle explcito do jogo e dos NPCs. Surge ento o seguinte
conflito: os designers controlam o comportamento dos NPCs. preciso ento
o uso de IA? Em contrapartida, se a IA estiver presente (NPCs inteligentes
podem se comportar com autonomia), preciso ter designers? A soluo para
esse caso os game designers e programadores de IA entrarem em um
acordo sobre o controle sobre os NPCs do jogo.
52
5 O PROJETO DESENVOLVIDO
O projeto foi desenvolvido utilizando uma ferramenta dedicada criao
de jogos desenvolvido pela Conitec com a cooperao da Atari. Trata-se do
3dGameStudio, uma IDE (Integrated Development Environment) composta de
uma srie de aplicativos necessrios para a criao de jogos 3D ou 2D ou
aplicativos grficos em tempo real.
A linguagem baseada em C, logo, o foco deste tpico no ser em
descrever esta ferramenta. Dessa forma, parte-se direto para o funcionamento de
um jogo.
O projeto teve incio com a escolha do tema do jogo: um jogo de luta de
rua onde possvel interagir com diversos objetos e realizar uma vasta gama de
movimentos. Essa escolha foi um pouco ambiciosa devido a grande riqueza da
caracterstica deste estilo. Superado esta e outras dificuldades, ser apresentado
o cdigo base da origem do projeto e as tcnicas de IA e SE utilizados no decorrer
do desenvolvimento do jogo.
53
5.1B A BASE DO PROJETO
Figura 24:Simples jogo 2D
A figura 24 a base do jogo desenvolvido. Ela faz parte de um
workshop10 que ensina a criar jogos 2d side scrolling (direo aos lados), embora
o principal foco ensinar como fazer a passagem de um cenrio no final de uma
rea previamente de demarcada.
Para isso algumas ferramentas so necessrias, tais como ponteiros
para carregar as imagens em painis, e funes para gerenciamento de rolagem
de tela e controle para movimentao do personagem.
A tcnica utilizada consiste em carregar um cenrio de fundo e o
personagem que se deseja manipular. A seguir aplica-se uma acelerao ao
personagem ao pressionar uma tecla. Essa acelerao obtida atravs de
operaes matemticas da linguagem, que mistura o ciclo gerado ao pressionar a
tecla com outros fatores numricos que representam outras grandezas fsicas
10 uma reunio de grupos de trabalho interessados em determinado projeto ou atividade para discusso e/ou apresentao prtica do referido projeto
54
como atrito, e outros fatores multiplicativos determinando o aumento ou diminuio
da velocidade.
A movimentao faz parte do processo de animao. Em dado
momento o cenrio est parado e o personagem realmente se movimenta. No
outro, o personagem est parado e o cenrio se movimenta, causando o efeito de
rolagem de tela.
O funcionamento da movimentao ocorre demarcando uma rea da
qual o personagem pode mover- se livremente, para frente e para trs. Quando o
limite demarcado ultrapassado ou alcanado o personagem para de receber a
velocidade e o cenrio passa a receber a velocidade contrria do personagem,
acarretando na passagem do cenrio atentando que o personagem no recebe
nenhuma velocidade nesse momento, porm continua recebendo a animao de
movimento de pernas causando a impresso de ele estar caminhando.
Aps o entendimento da sintaxe e o funcionamento das funes, o
desenvolvimento do projeto no apresentou tantos problemas. Porm, os
problemas comearam a surgir aps a introduo do NPC e o tratamento das
interaes. Com objetivo de sanar estas questes, entraram em cena as tcnicas
de IA e SE aplicadas ao projeto (consulte o ANEXO A para ver o cdigo do jogo).
55
5.2TECNICAS DE IA APLICADAS AO PROJETO
5.2.1 COLISES
Figura 25: Colises
Colises em jogos so os resultados das aes tomadas pelo jogador
ou a resposta da IA programada. O projeto apresenta dois tipos de coliso, uma
para objetos no cenrio e outra entre os personagens controlveis e no
controlveis. Basicamente, as colises so tratadas por uma funo, contando
apenas com a ajuda de variveis globais para verificar se uma condio de coliso
verdadeira. Outro fator relevante a demarcao de uma rea para que as
condies de coliso sejam possveis.
56
Uma coliso bsica realizada escolhendo um objeto e demarcando
sua rea, em seguida define-se para qualquer outro objeto que se aproxime que
perca a velocidade, implicando no efeito de impenetrabilidade. Em jogos 2D, em
que possvel andar em todas as direes, h a necessidade de definir tambm a
direo do movimento (consulte o ANEXO B para ver o pseudo-cdigo de uma
coliso).
5.2.2 BUSCA
Figura 26:Busca utilizando uma variao do algoritmo A*
A busca aplicada ao projeto faz uso de um conjunto de tcnicas, sendo
o A* a principal delas. A maneira de se percorrer a tela buscando pela meta teve
57
auxilio de uma grade de ns. O objetivo do uso da grade diminuir os pontos de
busca, visto que apenas uma parte da rea da tela utilizada na movimentao,
aumentando assim a eficincia da aplicao.
Figura 27:Grade
A heurstica utilizada em H(n) a Heurstica Linear Exata que utiliza
uma reta entre um par de waypoints (pontos de percurso ou n) sendo um deles a
meta e o outro o ponto que se deseja seguir partindo de um n origem n. Esta
heurstica foi escolhida devido a praticidade e facilidade de ser implementada na
estrutura sinttica da linguagem Lite-C, embora outras heursticas tambm
possam ser utilizadas.
A funo A* para busca do melhor caminho comea com uma matriz
onde os ns so definidos. O mecanismo o mesmo de uma matriz de linhas e
colunas, ou seja, para cada ponto x temos um ponto y ambos na tela. Logo um par
(x,y) caracteriza-se um n.
A seguir, a heurstica de A* utilizada e so guardados os custos F de
todos os ns em um vetor. Em seguida, uma verificao, utilizando um algoritmo
de busca, realizada para obter o n mais prximo do n origem e que possua o
menor custo F. Feito isso, esse valor adicionado a lista dos ns do melhor
58
percurso e repetimos esse mecanismo at o destino (consulte o ANEXO C para
ver o pseudo-cdigo da Busca).
5.2.3 O SISTEMA ESPECIALISTA NA TOMADA DE DECISES
O controle do NPC feito atravs de Maquinas de Estado, que utiliza
uma srie de estados a qual o NPC pode se encontrar, como: correr, atacar,
andar, procurar e etc
Aplicando Sistemas Baseados em Regras juntamente a estes estados,
podemos estipular regras que causam diversificadas variaes no comportamento
do NPC. A idia que o NPC seja capaz de variar suas aes quando as
condies para uma determinada regra sejam verdadeiras, acionando assim uma
ao ou uma srie de eventos, o que muito interessante, em determinadas
situaes, como por exemplo em uma busca. Seria agradvel se ele pudesse
combinar busca uma corrida ou parar, demonstrando que no alcanou a meta
(fim do tempo de Busca), acarretando na diminuio do padro determinstico do
movimento.
59
Figura 28:Uso de Mquinas de Estado
A imagem acima mostra o uso de Mquinas de Estado. O Estado inicial
encontrava-se como busca, e ao encontrar o alvo, o estado do NPC passa a ser
ataque.
Ao combinar algumas regras, pode-se obter mais resultados. O NPC se
encontra andando, realizando a busca, e ao perceber a posio de costas do
personagem controlado pelo jogador (neste caso a regra determina essa
condio) e sua energia encontra-se acima da metade (outra condio estipulada
pela regra) ele corre e tenta surpreender com um ataque pelas costas
demonstrando a vulnerabilidade do personagem (esse o resultado das
condies da regra serem verdadeiras acionando outro evento). Somado a estes
dois, podemos inserir uma funo probabilstica gerando nmeros aleatrios
causando ainda mais imprevisibilidade nas aes do NPC (consulte o anexo D
para ver o pseudo-cdigo do SE).
60
Figura 29: Uso de Sistemas de Regras
61
6 CONCLUSO
Durante o desenvolvimento do trabalho percebeu-se que o principal
problema da IA no est na limitao da mquina em alcanar a capacidade de
conscincia humana, mas sim em como criar regras ou mecanismos inteligentes
baseados em matemtica ou outras disciplinas utilizadas na rea, que sejam
realmente convincentes em demonstrar inteligncia.
Nos ltimos anos, as empresas desenvolvedoras de jogos estavam
preocupadas com a corrida tecnolgica, tentando criar jogos com os mais belos
e realistas grficos; porm, a qualidade de um jogo determinada atravs de quo
boa est a inteligncia e interatividade (fator imerso) dos personagens com o
jogador. De fato, a incluso de agentes inteligentes em um mundo virtual fornece
aos jogadores uma experincia muito diferente em relao aos antigos jogos
eletrnicos.
Num futuro prximo, interagiremos com agentes inteligentes que
aprendero nosso modo de jogar e criaro tticas durante uma partida, que
podero ser utilizadas em nosso benefcio para atingir o objetivo do jogo, ou
contra ns, como uma forma de aumentar o desafio inicial proposto pelo jogo.
Falta agora os computadores ganharem uma maior capacidade de
processamento de dados, para que os algoritmos com alto custo de
processamento sejam viveis em tempo real, dessa forma, a IA ser mais bem
utilizada nos jogos, possibilitando uma melhor experincia e jogabilidade para os
jogadores.
62
REFERNCIAS BIBLIOGRFICAS
1. A HISTRIA DOS CONSOLES DE VIDEOGAME. Wikipdia, a enciclopdia
livre. , Acesso em 10/06/2010.
2. 3D GAME STUDIO. Acesso em 28/05/2010.
3. ACKNEX USER MAGAZINE. 2D Game Workshop. Acesso em 10/06/2010.
4. ACKNEX USER MAGAZINE. Perfect AI. Acesso em 10/06/2010.
5. RUSSELL, S. & NORVIG, P. Artificial Intelligence - A Modern Approach, Prentice-Hall, 1995.
6. SZWARCFITER, Jayme Luiz & MARKENZON, Lilian, Estrutura de dados e seus
Algoritmos, Rio de Janeiro, RJ: LTC, 1995.
7. MCGRAW,Hill. The C Primer, Rio de Janeiro, RJ: Campus, 1986.
8. KUROSE, James F., ROSS, Keith W. Redes de Computadores e a Internet
Uma Nova Abordagem, Addison Wesley 1 Edio.
9. JAMSA, Kris & KLANDER, Lars, Programando Em C/C++ A Biblia So Paulo,
SP: Makron,1999.
10. RAMOS, Jos A. S. & CLUA, Esteban W. G. Artigo, Desenvolvimento de modelo computacional para locomoo de NPCs em terrenos tridimensionais com elementos de resistncia a locomoo. Universidade Federal Fluminense do Rio de Janeiro, Instituto de Computao, Brasil
Acesso em
10/06/2010.
63
http://pt.wikipedia.org/wiki/Hist%C3%B3ria_dos_consoles_de_videogame
11. LESTER, P., 2005. Pathfind for Beginners [online] Almanac of Policy Issues. Acesso em 10/06/2010.
12. UNIDEV, Inteligncia artificial. Acesso em 10/06/2010.
13. STOUT, B.. The Basics of A* for Path Planning. In: DELOURA, M., 2000. Game Programem Gems 1. Charles River Media INC, 254-263.
14.Barreto, J. M. Inteligncia Artificial no Limiar do Sculo XXI - AbordagemHbrida, Simblica, Conexionista e Evolucionria, UFSC, 2001.15. SILVA, Flvio Soares Corra da. MAC5701 - Tpicos em Cincia da
Computao Agentes Inteligentes em Jogos de Computador. Faculdad