universidade federal fluminense - ic.uff.br · área de inteligência artificial (ia) em um...

71
UNIVERSIDADE FEDERAL FLUMINENSE ARTUR FIGUEIREDO DA COSTA JOGOS E SISTEMAS ESPECIALISTAS Niterói 2010

Upload: lamdung

Post on 12-Jan-2019

212 views

Category:

Documents


0 download

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