You are on page 1of 162

FACULDADE DE TECNOLOGIA DE PRAIA GRANDE

I.A. EM JOGOS
A BUSCA COMPETITIVA ENTRE O HOMEM E A MQUINA

AUTOR: ROBERTO TENGAN DE SANTANA

ORIENTADORA: PROFa FERNANDA SCHMITZ LEITO ALMEIDA

Praia Grande 2006

I.A. EM JOGOS
A BUSCA COMPETITIVA ENTRE O HOMEM E A MQUINA

ROBERTO TENGAN DE SANTANA

Monografia apresentada Faculdade de Tecnologia de Praia Grande, como parte dos requisitos para a obteno do ttulo de Tecnlogo em Informtica com nfase em Gesto de Negcios. Orientador: Prof. (a) Fernanda Schmitz Leito Almeida

Praia Grande 2006

Do or not Do. There is no try Master Jedi - Yoda

Dedico A todos que ainda no conheci.

AGRADECIMENTOS
A realizao deste trabalho teve o apoio de muitas pessoas: professores, amigos, colegas, familiares. Cada um contribuiu do seu modo, para a realizao desse trabalho e para que eu pudesse encontrar a fora e o incentivo necessrios para transpor os obstculos e as dificuldades encontradas no desenvolvimento de um trabalho como este. Por isso, aqui vai meu sincero agradecimento a todos que, de alguma forma, contriburam para a realizao deste trabalho. Algumas pessoas, porm, foram fundamentais: Fernanda Schmitz Almeida Leito, minha orientadora, fornecendo o estmulo inicial e os subsdios necessrios para uma primeira reflexo sobre o tema. Obrigado pela sua ajuda, interesse, dedicao e contribuio. Cybelle Croce Rocha pelas aulas e orientao que ajudaram a tornar a pesquisa realizada em algo formatado para toda a comunidade acadmica. Aos meus professores que me transmitiram conhecimentos valiosos, sempre me dando apoio e motivao. Pessoal da UNIDEV que me ajudou a compreender alguns pontos importantes ao trabalho. Aos amigos Domingos, Cibele e Vivian que sem eles eu no entregaria a parte burocrtica do trabalho. As bandas System of a Down e Rammstein, pois fizeram a trilha sonora para a confeco deste trabalho. Finalmente, a minha familia, que proporcionaram o apoio moral para o trmino do trabalho.

SUMRIO
LISTA DE FIGURAS ........................................................................................................ x LISTA DE TABELAS .......................................................................................................xi LISTA DE SIMBOLOS .....................................................................................................xii RESUMO ...........................................................................................................................xiii ABSTRACT .......................................................................................................................xiv INTRODUO..................................................................................................................15 1. HISTRIA DA INTELIGNCIA ARTIFICIAL ..........................................................17 1.1. O nascimento ...................................................................................................17 1.2. Era Clssica .....................................................................................................18 1.3. Era Romntica .................................................................................................20 1.4. Era Moderna ....................................................................................................21 2. INTELIGNCIA ARTIFICIAL.....................................................................................27 2.1. Filosofia ...........................................................................................................27 2.1.1. IA Fraca ............................................................................................27 2.1.1.1 Argumento da Inaptido......................................................28 2.1.1.2 Argumento da Objeo Matemtica....................................29 2.1.1.3 Argumento da Informalidade ..............................................29 2.1.2 IA Forte..............................................................................................30 2.1.2.1 O Problema de mente/corpo................................................32 2.1.2.1.1 Crebro em uma cuba ......................................32 2.1.2.1.2 Prtese Cerebral ...................................................33 2.1.2.1.3 O quarto chins.....................................................35 2.2 Abordagens .......................................................................................................36 2.2.1 Abordagem Simbolista.......................................................................37 2.2.1.1 Metodologia Simbolista ......................................................38 2.2.1.2 Hipteses Simbolistas .........................................................40 2.2.2 Abordagem Conexionista...................................................................41 2.3 Ramificaes.....................................................................................................41 2.3.1 Sistemas Especialistas........................................................................42 2.3.1.1 Estrutura de um Sistema Especialista .................................42 2.3.1.2 Aquisio do conhecimento ................................................43 2.3.1.3 Sistemas Especialistas Conhecidos .....................................44

vi

2.3.2 Robtica .............................................................................................45 2.3.2.1 Hardware .............................................................................46 2.3.2.2 Robs conhecidos ............................................................... 48 2.3.3 Sistemas Visuais ................................................................................48 2.3.4 Processamento de Linguagem Natural ..............................................49 2.3.5 Sistemas de Aprendizado...................................................................50 2.3.6 Redes Neurais Artificiais ..................................................................51 2.3.6.1 Neurnio Artificial ..............................................................51 2.3.6.2 Arquitetura ..........................................................................52 2.3.6.3 Aprendizagem .....................................................................53 2.3.6.4 Topologia ............................................................................54 2.3.6.5 Etapas para Desenvolvimento .............................................54 2.3.6.6 Aplicao.............................................................................56 3. HISTRIA DOS JOGOS ELETRNICOS...................................................................57 3.1 A Primeira Era ..................................................................................................57 3.2 A Segunda Era ..................................................................................................59 3.3 A Terceira Era...................................................................................................61 4. JOGOS ELETRNICOS ...............................................................................................65 4.1 Desenvolvimento de Jogos Eletrnicos ............................................................65 4.1.1 Equipe de Desenvolvimento ..............................................................66 4.1.2 Ciclo de Desenvolvimento.................................................................67 4.1.3 Game Design......................................................................................69 4.1.4 Regras bsicas para um bom jogo......................................................70 4.1.5 O que os jogadores querem e esperam...............................................72 4.1.6 Puzzles ...............................................................................................73 4.2 Arquitetura de um Jogo ....................................................................................74 4.2.1 Reusabilidade.....................................................................................74 4.2.1.1 Engines................................................................................74 4.2.2 Arquitetando o Jogo...........................................................................75 4.2.2.1 Abstrao de Hardware .......................................................75 4.2.2.2 Abstrao do jogo ...............................................................76 4.2.3 Mquinas de Estados Finitos (FSM) ......................................78 4.3 Programao de um Jogo..................................................................................79 4.3.1 Grficos..............................................................................................79

vii

4.3.1.1 Superfcies...........................................................................80 4.3.1.2 Funo Blit ..........................................................................82 4.3.1.3 Transparncia ......................................................................83 4.3.1.4 Espelhamento ......................................................................84 4.3.1.5 Tcnicas de Animao ........................................................84 4.3.1.5.1 Efeito flicker.........................................................85 4.3.1.5.2 Page Flipping........................................................86 4.3.1.5.3 Double Buffering..................................................87 4.3.1.6 Paleta ...................................................................................87 4.3.1.7 Formato de pixel (pixel format) ..........................................88 4.3.2. Tiles, Bricks e Layers .......................................................................88 4.3.2.1 Tiles.....................................................................................88 4.3.2.2 Bricks ..................................................................................88 4.3.2.3 Layers..................................................................................89 4.3.3 Sprites ................................................................................................90 4.3.3.1 Animao de um Sprite.......................................................90 4.3.4 Dispositivos de Entrada .....................................................................91 4.3.5 Som ....................................................................................................92 4.3.5.1 Buffers de Som....................................................................93 4.3.5.1.1 Buffer secundrio .................................................93 4.3.5.1.2 Buffer primrio.....................................................94 4.3.6 Tratamento de tempo .........................................................................94 4.3.6.1 Gerenciador de Tempo........................................................94 4.3.6.2 Taxa de Quadros .................................................................95 4.3.6.3 Acumuladores de Tempo ....................................................95 4.3.7 Fsica ..................................................................................................95 4.3.7.1 Coliso ................................................................................96 4.3.7.1.1 Deteco de Coliso .............................................96 4.3.7.1.2 Tratamento de Colises........................................97 4.3.7.2 Gravidade ............................................................................98 4.3.8 Visualizaes de Jogos ......................................................................99 4.4 Gneros de Jogos ..............................................................................................99 4.5 Mercado dos Jogos Eletrnicos ........................................................................102 4.5.1 Mercado Brasileiro.............................................................................103

viii

4.5.2 Indstria de desenvolvimento de jogos eletrnicos no Brasil............104 5. BUSCA COMPETITIVA...............................................................................................107 5.1. Histrico ..........................................................................................................107 5.2 Definio...........................................................................................................108 5.3 IA tradicional X IA em Jogos ...........................................................................119 5.4 Motores de IA ...................................................................................................110 5.4.1 Unreal Engine 3 .................................................................................110 5.4.2 Source Engine ....................................................................................111 5.4.3 Reality Engine....................................................................................112 5.5 IA em jogos.......................................................................................................113 5.5.1 Agentes Inteligentes...........................................................................114 5.5.1.1 Tipos de Agentes.................................................................115 5.5.1.1.1 Agentes Reativos..................................................115 5.5.1.1.2 Agentes Cognitivos ..............................................116 5.5.1.1.3 Agentes Hbridos..................................................117 5.5.1.2 Agentes Inteligentes em Jogos ............................................117 5.5.2 Mquinas de Estados Finitos .............................................................118 5.5.2.1 Mquinas de Estados Finitos como IA em jogos ................118 5.5.3 Conjuntos e lgica Fuzzy (Difusa).....................................................123 5.5.3.1 Desfuzzificao ...................................................................125 5.5.3.2 Center of Gravity.................................................................125 5.5.3.3 Mean of Maximum..............................................................126 5.5.3.4 Mquina de Estados Finitos Fuzzy (FuSM)........................129 5.5.4 Algoritmos de Busca..........................................................................130 5.5.4.1 Algoritmo MiniMax ............................................................131 5.5.4.1.1 Poda alfa-beta.......................................................134 5.5.4.2 Algoritmo A* (A-Star) pathfinding ....................................137 5.5.4.2.1 Algoritmo A* (A-Star) pathfinding nos jogos .....143 5.5.4.3 Algoritmos Genticos .........................................................147 5.5.4.3.1 Codificao..........................................................148 5.5.4.3.1.1 Cruzamento..............................................148 5.5.4.3.1.2 Mutao ...................................................149 5.5.4.3.2 Funo Objetivo ..................................................149 5.5.4.3.3 Algoritmo Gentico Simples ...............................150

ix

5.5.4.3.4 Algoritmos Genticos em Jogos ..........................151 5.5.5 IA Hierrquico...................................................................................152 5.5.6 Linguagens de Script .........................................................................153 5.5.6.1 Classificao...........................................................154 5.5.6.2 Scripts em Jogos .....................................................155 5.5.6.3 Linguagem Lua.......................................................156 CONCLUSO....................................................................................................................158 ANEXOS ...........................................................................................................................159 REFERNCIAS BIBLIOGRFICAS ...............................................................................177

LISTA DE FIGURAS
Figura 1: Arquitetura bsica de um jogo .............................................................................77 Figura 2: Exemplo de uma Mquina de Estados Finitos .....................................................78 Figura 3: Exemplo de superfcie offscreen..........................................................................81 Figura 4: Exemplo da funo Blit .......................................................................................82 Figura 5: Exemplo de Transparncia...................................................................................83 Figura 6: Exemplo de Mirroring..........................................................................................84 Figura 7: Exemplo do efeito flicker.....................................................................................85 Figura 8: Esquema do Page Flipping...................................................................................86 Figura 9: Esquema do Double buffering .............................................................................87 Figura 10: Exemplo de Tiles ...............................................................................................88 Figura 11: Exemplo da utilizao de bricks ........................................................................89 Figura 12: Exemplo de Layer ..............................................................................................89 Figura 13: Exemplo de Sprites ............................................................................................90 Figura 14: Animao Contnua e Finita ..............................................................................91 Figura 15: Escolha da forma geomtrica.............................................................................97 Figura 16: fsm do guarda.....................................................................................................119 Figura 17: Mtodo Center of Gravity ..................................................................................126 Figura 18: Funes do Mtodo Mean of Maximum............................................................127 Figura 19: Exemplo da Aplicao de MiniMax ..................................................................132 Figura 20: Algoritmo MiniMax com poda alfa-beta ...........................................................134 Figura 21: Mapa rodovirio simplificado da Romnia........................................................139 Figura 22: Algoritmo A* (A-Star) em ao ........................................................................140 Figura 23: Mapa escaneado em quadrados..........................................................................143 Figura 24: Obteno dos primeiros valores f(n), g(n), h(n).................................................144 Figura 25: Quadrado abaixo da parede sendo ignorado ......................................................145 Figura 26: Caminho completo .............................................................................................146 Figura 27: IA Hierrquico ...................................................................................................153

xi

LISTA DE TABELAS
Tabela 1: Histrico da utilizao da IA em Jogos ...............................................................108 Tabela 2: Funes de Transio de uma FSM.....................................................................120 Tabela 3: Ao de Cada Estado...........................................................................................120 Tabela 4: Distncias hDLR das cidades da Romnia ...........................................................139

xii

LISTA DE SIMBOLOS
- E lgico - OU lgico - NO lgico

xiii

RESUMO

O presente trabalho trata da utilizao de algoritmos de Inteligncia Artificial para o desenvolvimento de jogos, devido ao fato de esta rea est em grande ascenso no mercado. O maior desafio agora para os desenvolvedores de jogos a criao de um jogo com um bom desafio para o jogador, j que os jogos esto num nvel grfico e sonoro prximo da realidade. Diversos algoritmos j esto sendo usados pelas produtoras de jogos para a simulao de uma inteligncia humana convincente. Este trabalho demonstra exemplos de lgica para o desenvolvimento da inteligncia artificial, demonstrando a aplicabilidade dos mesmos para o atual mercado de desenvolvimento de jogos.

xiv

ABSTRACT

The present work deals with the use of algorithms of Artificial Intelligence for the development of games, due to the fact that area is in great ascension in the market. The biggest challenge now for the developers of games is the creation of a game with a good challenge for the player, since the games are in a graphical and sonorous level next to the reality. Several algorithms are already being used for the producers of games for the simulation of an intelligence convincing human being. This work demonstrates examples of logic for the development of artificial intelligence, demonstrating the applicability of the same ones for the current market of development of games.

IA em Jogos A busca competitiva entre o homem e a mquina

- 15

INTRODUO

justificado que com o crescimento do mercado de jogos eletrnicos utilizando a tecnologia de Inteligncia Artificial. Verificou-se a escassez de coletneas de matria sobre o assunto. Diante desta realidade a elaborao de uma pesquisa completa sobre o tema torna-se imprescindvel. O objetivo do trabalho adquirir conhecimentos sobre essa nova rea em crescimento no mercado. A metodologia utilizada foi a pesquisa em livros do assunto, alm de artigos publicados em revistas e sites especializados no assunto. O Trabalho foi dividido em cinco captulos e esses captulos foram divididos em trs partes. A primeira parte constando os captulos um e dois aborda a inteligncia artificial de forma geral. O primeiro capitulo trata da histria da Inteligncia Artificial, como ela foi criada e sua evoluo at os dias de hoje. O segundo capitulo apresenta a Inteligncia Artificial como um todo seus aspectos filosficos, suas metodologias e demonstra suas principais reas de destaque. A segunda parte, constando os captulos trs e quatro, apresenta uma viso geral sobre jogos eletrnicos. O terceiro capitulo trata da histria dos jogos eletrnicos comeando do Odissey chegando at o Nintendo Wii. O quarto capitulo fala sobre os jogos eletrnicos e seu desenvolvimento, com as tcnicas utilizadas atualmente para projetos de jogos e programao de um jogo. A terceira e ltima parte contendo o quinto capitulo fala da utilizao da inteligncia artificial para o desenvolvimento de jogos.

IA em Jogos A busca competitiva entre o homem e a mquina

- 16

O quinto capitulo demonstra os algoritmos mais utilizados para a criao de uma inteligncia artificial para os jogos.

IA em Jogos A busca competitiva entre o homem e a mquina

- 17

1 Histria da Inteligncia Artificial


A Definio de Inteligncia Artificial ou IA, vem de muito tempo atrs e a cada gerao ela muda um pouco, a cada algoritmo1 desenvolvido e testado uma nova rea aberta no campo da IA. O objetivo principal da IA descobrir o funcionamento do raciocnio humano e vrias foram as tentativas de simulao durante o seu incio at os dias atuais. Diversos filmes abordam este tema, como: The Matrix (WACHOWSKI, 1998), BladeRunner (SCOTT,1982), 2001 Uma odissia no espao (KUBRICK, 1968), A.I. - Inteligncia Artificial (SPIELBERG, 2001), todos demonstram um futuro prximo em que mquinas podem pensar e tambm ter emoes como ns, alm de poderem competir conosco no mesmo nvel ou um nvel acima.

Com bastante rapidez, eles poderiam nos exterminar. No estou to alarmado quanto muitos outros por essa ltima possibilidade, pois considero essas mquinas do futuro nossa prognie, filhos da mente construdos a nossa imagem e semelhana, ns mesmos em uma forma mais poderosa. Como crianas biolgicas de geraes anteriores, eles encarnaro melhor a esperana da humanidade de um futuro em longo prazo. nossa responsabilidade lhes dar toda vantagem, e nos retirarmos calmamente quando no pudermos mais colaborar.(MORAVEC, 2000 apud RUSSEL & NORVIG, 2004:931)

Para definir o nvel em que a IA est e quanto falta para chegar neste futuro prximo preciso conhecer toda sua evoluo histrica.

1.1 O nascimento
Segundo RUSSEL & NORVIG (2004: 18) o primeiro trabalho a respeito de IA foi realizado por Warren McCulloch e Walter Pitts em 1943, em que demonstrava um modelo de neurnios2 artificiais, em que cada neurnio poderia estar ligado ou desligado, isso dependeria dos estados em que os neurnios vizinhos estariam.
1 2

Seqncia de instrues executadas at que determinada condio seja alcanada clula do sistema nervoso responsvel pela conduo do impulso nervoso.

IA em Jogos A busca competitiva entre o homem e a mquina

- 18

Donald Hebb demonstrou em 1949 uma regra de atualizao simples para definir a intensidade de conexo entre neurnios, essa regra influente ainda nos dias de hoje (RUSSEL & NORVIG, 2004: 18). Em 1950 Alan Turing demonstrou a IA em seu artigo Computing Machinery and Intelligency. Neste artigo ele apresentou diversos algoritmos de IA e seu teste, o Teste de Turing. (Idem, 18). Para CARVALHO (2002:45) o teste de Turing elaborado da seguinte forma, em uma sala ficaria a mquina a ser testada, enquanto em outra sala ficaria uma pessoa, as duas entidades conversariam entre si, a mquina passaria no teste se a pessoa no percebesse que estaria conversando com uma mquina. Em 1951, no departamento de matemtica de Princeton, Marvin Minsk e Dean Edmound apresentam o primeiro computador de rede neural, o SNARC era composto por 3000 vlvulas e simulava uma rede de 40 neurnios. (Op. Cit.,18) Segundo RUSSEL & NORVIG (2004: 18-19), cinco anos aps o SNARC John McCarthy realiza um seminrio em Dartmouth, reunindo todos os grandes pesquisadores do conhecimento. Nesse seminrio Allen Newell e Herbert Simon do Carnegie Tech3 apresentam o Logic Theorist o primeiro programa de raciocnio, podendo resolver todos os teoremas de matemtica ou at a escrever um artigo cientifico. Nesse seminrio John McCarthy juntamente com os outros seminaristas percebeu que a IA devia ser um campo em separado e no uma ramificao da matemtica ou estar sob o nome de pesquisa operacional ou teoria de controle, ento eles definiram o nome de Inteligncia Artificial e aps este seminrio a IA definida como o campo em que tenta construir mquinas que funcionem de forma autnoma e em ambientes mutveis. Este o incio da Inteligncia Artificial, os pesquisadores ainda estavam tmidos com seus trabalhos, mas todos conseguiam xito em usas demonstraes, dentro dos padres daquela poca.

1.2 Era Clssica


Os primeiros anos da nova cincia foram repletos de sucessos, considerando ainda as configuraes dos computadores serem bem baixas, em geral, a classe intelectual acreditava que um computador nunca conseguiria realizar uma determinada ao. Os pesquisadores de
3

Agora conhecida como Carnegie Mellon University (CMU)

IA em Jogos A busca competitiva entre o homem e a mquina

- 19

IA demonstrava uma ao aps a outra, por exemplo os crticos da IA dizia que uma mquina no pode jogar xadrez os pesquisadores de IA mostrava que as mquinas podem jogar xadrez. (RUSSEL & NORIVG, 2004:19) Newell e Simon continuaram a terem sucesso desenvolvendo o GPS General Problem Solver (Solucionador de problemas gerais). Diferente do Logic Theorist o GPS foi projetado para resolues de problemas de uma forma humana, observou que a forma que ele encarava os problemas era realmente semelhante de um humano, com isso ele pode ser considerado o primeiro programa a pensar de forma humana, com este sucesso Newell e Simon em 1976 formularam a hiptese de sistemas de smbolos fsicos em que afirma um sistema de smbolos fsicos tem os meios necessrios e suficientes para uma ao inteligente geral, ou seja, qualquer sistema seja humano ou mquina que exiba algum nvel de inteligncia deve operar manipulando dados com smbolos em suas estruturas. (Idem, 20) Na IBM o pesquisador Rochester e seus colegas desenvolveram vrios softwares de IA, entre eles o Geometry Theorem Prover, podendo demonstrar a resoluo de vrios Teoremas matemticos. Arthur Samuel desenvolveu vrios jogos de damas com a capacidade de aprender, nessa poca ele contestou que uma mquina s pode executar as tarefas que lhe foram programados, seu programa conseguiu atingir um nvel de jogador amador melhor que o de seu criador. (Ibidem, 20) Em 1958, McCarthy foi para o MIT, l ele desenvolveu a linguagem de programao Lisp , e escreveu o artigo Programs with common sense, descrevendo o programa Advice Tacker, como o Logic Theorist e o Geometry Theorem Prover, ele foi projetado para usar o conhecimento para buscar solues para os problemas encontrados, porm com a capacidade de adquirir novas competncias em diversas reas sem a necessidade de reprogramao. (RUSSEL & NORVIG, 2004:20) Minsky foi para o MIT e no colaborou muito com McCarthy, pois McCarthy dava valor a representao e raciocnio, enquanto Minsky se interessava em fazer os programas funcionarem, em 1963, McCarthy funda o laboratrio de IA de Stanford, para desenvolver seu Advice Tacker, McCarthy pensava em usar a lgica, porm A. J. Robinson desenvolve o mtodo de resoluo. O trabalho em Stanford se apoiou no raciocnio, tendo vrios sistemas desenvolvidos, tendo como destaque o projeto Shakey de robtica em que foi o primeiro a demonstrar a integrao de raciocnio lgico e atividade fsica. (Idem, 20-21)
4

List Processing (Processamento de lista)

IA em Jogos A busca competitiva entre o homem e a mquina

- 20

Minsky orientou diversos alunos que escolhiam problemas limitados cuja soluo poderia exigir inteligncia. Esses problemas limitados se tornaram conhecidos como micromundos, o mais famoso foi o mundo dos blocos em que diversos blocos so colocados sobre uma mesa e passada uma tarefa ao computador, geralmente a tarefa organizar de uma forma lgica todos os blocos, utilizando uma mo robtica podendo erguer somente um bloco por vez. Este mundo foi a base para diversos pesquisadores em seus projetos como David Huffman (projeto de viso, 1971), David Waltz (projeto de restries, 1975), Patrick Winston (teoria do aprendizado, 1970), Terry Winograd (processamento de linguagem natural, 1972) e Scott Fahlman (agenda eletrnica, 1974). (RUSSEL & NORVIG, 21-22) O trabalho pioneiro com redes neurais de McCulloch e Litts prosperou nessa poca como o trabalho de Winograd e Cowan que demonstrava que com um grande nmero de elementos podia representar um conceito individual. Os mtodos de Hebb foram melhorados por Bernie Widrow, denominando suas redes adalines5, e por Frank Rosenblat com os perceptrons6. Rosenblatt provou o teorema de convergncia de perceptron, demonstrando que seu algoritmo poderia ajustar os valores de cada peso para a entrada de qualquer dado em seu sistema. (Idem, 22) Como uma rea distinta, a IA comeou a crescer e mais pesquisadores colaboraram com suas teorias e projetos nas diversas ramificaes que ela tinha abrangncia, diversas dessas teorias ainda so usadas nos dias de hoje.

1.3 Era Romntica


Segundo RUSSEL & NORVIG (2004, 22), aps essa primeira fase da IA, vrios pesquisadores estavam entusiasmados com a evoluo tecnolgica proporcionada pela IA, nos anos 60 Herbert Simon fez a previso de que dentro de dez anos uma mquina venceria um campeo de xadrez, errou por 40 anos. Este excesso de confiana demonstrado por Simon devido ao grande sucesso que os sistemas de IA faziam, resolvendo os problemas que lhe eram passados. Porm isso era porque os problemas eram de complexidade menor se lhe forem passados problemas de uma complexidade bem superior eles falhariam. Isso era devido a duas dificuldades. Inicialmente, os programas de IA manipulavam as informaes sintaticamente sem conhecimento de seu significado ou contexto em que estava inserido, outra dificuldade foi que os programas resolviam os diversos pequenos problemas
5 6

Adaptive Linear Neuron ou Adaptive Linear Element Rede Neural Artificial criada em 1957

IA em Jogos A busca competitiva entre o homem e a mquina

- 21

testando diferentes combinaes at encontrar a soluo. Como os problemas eram pequenos eles conseguiam resolver rapidamente, para esses dois problemas era necessria uma configurao de hardware bem superior nas mquinas existentes na poca. (RUSSEL & NORVIG, 22-23). Uma terceira dificuldade para os sistemas de IA foi a de representar seu conhecimento, o livro Perceptrons (MINSKY & PAPERT, 1969), provou que os perceptrons no conseguiriam representar tudo que aprendiam isso fez as pesquisas de redes neurais acabarem na poca. A iluso de poder computacional ilimitado tambm afetou a rea de evoluo de mquina, no demonstrando nenhum avano naquela poca (Idem, 23). Segundo RUSSEL & NORVIG (2004: 23) a incapacidade da IA conviver com a exploso combinatria foi a principal crtica que a IA recebeu do relatrio de Lighthill (1973), com base nesse relatrio vrios governos pararam a investir em projetos envolvendo a IA. Entre os anos 70 e 80 a IA reduz seu crescimento devido a grande limitao de hardware, isto influenciou todas as reas da IA, isto fez com que parassem os investimentos em pesquisas de IA realizados pelos governos.

1.4 Era Moderna


As tcnicas para resoluo de problemas apresentadas inicialmente, eram de busca geral, em que procurava reunir passos elementares para solucionar o problema, esses mtodos eram considerados de mtodos fracos, pois cada vez mais complexo o problema mais difcil era encontrar a soluo, para isso precisava ter um conhecimento do prprio problema antes de comear a solucion-lo, para resolver um problema grande era necessrio saber a soluo antes. (Op. Cit, 2004: 23) Para RUSSEL & NORVIG (2004:23) o programa DENDRAL (Buchanan et. Al., 1969), foi um exemplo inicial dessa abordagem. Desenvolvido em Stanford com a finalidade de descobrir a estrutura molecular a partir de informaes coletadas por um espectrmetro7 de massa, com base do conhecimento de qumicos de Stanford o programa gerava todas as possveis estruturas moleculares e depois comparava as estruturas formadas com a estrutura dada no inicio.

Instrumento ptico utilizado para medir as propriedades da luz em uma determinada faixa do espectro eletromagntico

IA em Jogos A busca competitiva entre o homem e a mquina

- 22

O DENDRAL era eficiente, pois tinha um conhecimento tcnico de uma rea especfica em formas de regra, para depois aplicar o raciocnio para a resoluo do problema, ou seja, os desenvolvedores do sistema separaram o conhecimento tcnico da base de raciocnio, sendo esta uma abordagem gerada por McCarthy em seu Advice Taker. (RUSSEL & NORVIG. 2004:24) Com o sucesso do DENDRAL seus desenvolvedores iniciaram o projeto HPP (Heuristic Programming Project) com o intuito de enxergar at que ponto os sistemas especialistas poderiam ser aplicados em outras reas, com isso eles criaram o projeto denominado MYCIN em que realizava diagnsticos para infeco sangunea. A abordagem dele de resoluo de problemas era baseado em cerca de 450 regras, e diferente do DENDRAL ele no se baseava de um modelo geral para trazer a soluo e sim com base no conhecimento adquirido de entrevistas com os especialistas do ramo, alm de experincia a cada consulta realizada, outra diferena era que ele utilizava de um algoritmo de incerteza associada ao conhecimento mdico, simulando assim a forma como os mdicos da poca faziam seus diagnsticos. O MYCIN gerou diagnsticos at melhores que os prprios especialistas. (Idem, 24) Os sistemas especialistas comeam a ganhar espao, tendo agora ajuda dos especialistas humanos para preencherem as bases de dados com os seus conhecimentos, alguns sistemas conseguiam ser melhores que diversos especialistas do ramo. O conhecimento especfico de uma determinada rea tambm foi utilizado no campo de processamento de linguagem natural, o sistema SHRDLU (Winograd) de reconhecimento de linguagem natural, despertou muito interesse, apesar disso ele ainda possua as mesmas falhas que seus antecessores, alm de conseguir reconhecer ambigidades e referencias pronominal, mas isso era por causa dele ser desenvolvido para uma nica rea. Diversos pesquisadores sugeriram que para se ter um sistema para compreenso de linguagem era necessrio conhecimento geral sobre o ambiente e um mtodo genrico para a utilizao destes conhecimentos. (Op Cit, 24-25) Para RUSSEL & NORVIG (2004:25) em Yale o lingista e pesquisador de IA Roger Schank afirmou o seguinte: No existe essa coisa de sintaxe.. Isso irritou vrios lingistas e criou uma grande discusso nos anos seguintes, Schank e seus alunos desenvolveram diversos sistemas de reconhecimento de linguagem, com grande nfase nos problemas de representao do raciocnio para a compreenso da linguagem, esses problemas incluam

IA em Jogos A busca competitiva entre o homem e a mquina

- 23

representaes de situaes estereotpicas8, descrio da organizao da memria humana e compreenso de planos e metas. O grande crescimento dos sistemas de resoluo de problemas reais causou um aumento na demanda de esquemas de representao do conhecimento. Foram desenvolvidas diversas linguagens para representao de raciocnio, como por exemplo, a linguagem Prolog9 muito popular na Europa, e a famlia PLANNER nos Estados Unidos. Outras linguagens seguiram o padro de frames de Minsky, adotando uma abordagem estruturada, reunindo fatos e organizando-os em uma hierarquia taxonmica10. (RUSSEL & NORVIG, 2004:25) Para suprir a demanda, houve um grande investimento na rea de sistemas especialistas, onde foram desenvolvidas novas linguagens para a demonstrao e processamento do conhecimento adquirido nos sistemas. Segundo RUSSEL & NORVIG (2004:25) o primeiro sistema especialista bemsucedido foi o R1, utilizado pela DEC (Digital Equipment Corporation) em 1982. Este sistema ajudou a empresa economizar cerca de 40 milhes de dlares por ano, em 1986 a DEC tinha 40 sistemas especialistas em funcionamento e outros a serem produzidos, a Du Pont tinha 100 sistemas especialistas em uso e 400 em desenvolvimento economizando cerca de 10 milhes de dlares, maioria das grandes empresas americanas comearam a investir em IA. Em 1981, os japoneses anunciam o Fifth Generation, um plano para que em 10 anos fossem construdos computadores inteligentes, os Estados Unidos responderam criando o MCC (Microelectronics and Computer Technology Corporation) sendo um consrcio para pesquisas assegurando a competitividade. Porm os dois projetos no alcanaram as metas estabelecidas. Na Inglaterra, o relatrio Alvey retira as crticas geradas pelo Lighthill. (Idem, 25) De algum modo, a IA expandiu de milhes de dlares em 1980 para bilhes de dlares em 1988, aps essa exploso as empresas sofreram medida que deixaram de atingir suas metas extravagantes. (RUSSEL & NORVIG, 2004:26) Para RUSSEL & NORVIG (2004:26) o campo de redes neurais estava abandonado pela rea da computao, porm outras reas investiram nas redes neurais, como a Fsica em que foi desenvolvido um estudo para tcnicas de mecnica estatstica e de otimizao das redes, os psiclogos deram continuidade ao estudo de modelos de memria de redes neurais,

8 9

Imagem preconcebida para a situao Acrnimo do francs Programmation en Logique (Programao em Lgica) 10 Forma de classificar os seres vivos

IA em Jogos A busca competitiva entre o homem e a mquina

- 24

mas a grande evoluo foi na metade dos anos 80, quando quatro grupos de pesquisadores recriaram o algoritmo de aprendizado por retropropagao desenvolvido inicialmente por Bryson e Ho em 1962, o algoritmo foi utilizado em vrios problemas e seus resultados apresentados na coletnea Parallel Distributed Processing (Rumlhart & McClelland, 1986) causou grande excitao. Os modelos conexionistas eram vistos por todos como concorrentes dos modelos simblicos idealizados por Simon e Newell e da abordagem logicista desenvolvido por McCarthy. O livro The Symbolic Species (1997) afirma que os seres humanos podem ser manipuladores de smbolos, mas os conexionistas mais fervorosos ainda questionam a abordagem simbolista. Pela viso atual as abordagens conexionista e simblica so complementares e no concorrentes. (RUSSEL & NORVIG, 2004:26) O campo da IA encantou os empresrios, fazendo empresas economizarem milhes, os investimentos retornaram e a IA voltou a ter um crescimento significativo, reas como redes neurais que estava abandonada voltam a crescer. Para RUSSEL & NORVIG (2004:26) nesses ltimos anos a IA teve um grande crescimento tanto no contedo e na metodologia, pois agora bem comum usar teorias j existentes como base, em vez de criar novas teorias, fundamentar as afirmaes em teoremas rigorosos e em evidncias experimentais rgidas, em vez de utilizar como base a intuio e destacar a relevncia de aplicaes em vez de exemplos de brinquedos. A IA adota o mtodo cientfico, para a aceitao das hipteses, cada hiptese agora devia passar por testes empricos11 e seus resultados avaliados de acordo com a sua importncia (COHEN, 1995 apud RUSSEL & NORVIG, 2004:27), repositrios na Internet e compartilhamento de cdigos, ajudam a realizao de experimentos. A rea de reconhecimento de linguagem natural ilustra essa mudana em toda a IA, inicialmente diversos algoritmos eram utilizados at o aparecimento dos Modelos ocultos de Markov (MOMs) que dominaram a rea, por dois motivos primeiro o modelo baseado totalmente em expresses matemticas e utilizado uma grande base de dados reais em fala, a rea do reconhecimento de linguagem natural est fazendo a transio para aplicaes industriais e de consumo a larga escala. As Redes Neurais tambm seguem essa tendncia, com grande parte do trabalho realizado nos anos 80 ajudou a descobrir o nvel de abrangncia e a capacidade da rea, agora ela comparada com tcnicas de estatsticas, reconhecimento de padres e aprendizado de

11

Conhecimento o resultado de nossas experincias

IA em Jogos A busca competitiva entre o homem e a mquina

- 25

mquina, o resultado do desenvolvimento das redes neurais cria a indstria de DataMining. (RUSSEL & NORVIG, 2004:27) Jude Pearl com sua obra, Probabilistic Reasoning in Intelligent Systems (1988), leva a uma diferente aceitao da probabilidade e da teoria da deciso na IA, criando as redes bayesianas, criadas para permitir a representao de conhecimento incerto e raciocnio rigoroso, esse tipo de abordagem supera todos os problemas encontrados nas dcadas de 60 e 70 na rea de sistemas probabilsticos, e agora domina as pesquisas de raciocnio incerto e sistemas especialistas. A idia permite o aprendizado a partir da experincia e combina o melhor da IA clssica e das redes neurais. Isso promoveu as idias de sistemas normativos (sistemas que agem racionalmente de acordo com as leis da teoria da deciso e no procuram imitar especialistas humanos), o sistema operacional Windows possui diversos desses sistemas para diagnsticos de problemas. (Idem, 27) Nos campos da robtica, da viso computacional e da representao de conhecimento tambm ocorreram revolues semelhantes as que ocorreram em toda a cincia da IA, compreenso melhor dos problemas e de suas propriedades de complexidade aliada a sofisticao matemtica, resultou em mtodos robustos. Essas revolues separaram as reas do foco principal da IA e esto cada vez mais isoladas. (Ibidem, 2004:27) Agora a IA est mais madura e no possui mais aquele ar de pioneirismo do inicio, o pesquisador de IA deve provar suas teorias com diversos experimentos empricos e a demonstrao dos resultados, a rede da Internet fez com que os pesquisadores compartilhassem as evolues de suas pesquisas. Encorajados pela resoluo dos subproblemas da IA, os pesquisadores comearam a examinar o problema do agente como um todo. O trabalho de Allen Newell, Jhon Laird e Paul Rosenbloom no SOAR, o exemplo mais conhecido que represente uma arquitetura completa de um agente inteligente. O movimento estabelecido tem como objetivo entender o funcionamento interno de agentes incorporados a ambientes reais com entradas sensoriais continuas. Um dos ambientes mais importantes para os agentes inteligentes a Internet, os sistemas de IA se tornaram to comuns na web que o sufixo -bot j est no cotidiano dos usurios da Internet, alm disso, diversas ferramentas utilizam a Inteligncia Artificial na Internet como mecanismo de pesquisa, sistemas de recomendao e sistemas de construo de web sites. (RUSSEL & NORVIG, 2004:27-28) Na tentativa de construrem agentes percebeu-se que os subcampos que anteriormente isolados da IA, precisam de uma reorganizao para o melhor aproveitamento de seus resultados, agora sistemas sensoriais no podem oferecer informaes confiveis sobre o

IA em Jogos A busca competitiva entre o homem e a mquina

- 26

ambiente, e os sistemas de raciocnio e planejamento devem trabalhar com a incerteza. Outra conseqncia foi que a IA se aproximou de outras reas, como as teoria de controle e a economia, reas que tambm lidam com agentes. (RUSSEL & NORVIG, 2004:28) No sculo XXI h um grande interesse em Agentes Inteligentes uma nova ramificao que pretende reunir todas as subreas da IA, pois se percebeu que todas juntas poderiam criar um Agente perfeito realizando o principal objetivo da IA, entender o pensamento humano.

IA em Jogos A busca competitiva entre o homem e a mquina

- 27

2 Inteligncia Artificial
Como visto anteriormente, a IA tem uma grande histria e abrange diversas reas, para um entendimento melhor do funcionamento da IA, preciso ter conhecimento de seu objetivo, contexto e suas principais ramificaes como Sistemas Especialistas, Robtica, Sistemas Visuais, Processamento de Linguagem Natural, Sistemas de Aprendizado e Redes Neurais Artificiais.

2.1 Filosofia
Para RUSSEL & NORVIG (2004: 915) os filsofos j muito antes dos computadores procuravam a resposta para o funcionamento da mente humana, o mesmo objetivo da IA. Os filsofos definiram que se as mquinas talvez pudessem simular uma inteligncia so consideradas detentoras de uma IA Fraca, ou se as mquinas talvez pudessem realmente pensar seriam consideradas detentoras de IA Forte. (Idem, 915) Grande parte dos pesquisadores de IA desenvolvem para atender o modelo de IA Fraca esquecendo a IA Forte. (Ibidem, 915) A seguir ser definido um pouco mais a fundo os dois modelos.

2.1.1 IA Fraca
Segundo RUSSEL & NORVIG (2004:915-916), vrios filsofos tentaram provar que mquinas no tm possibilidades de agir de forma inteligente. Porm o fato de provar que a IA impossvel depende de como ela definida. Em termos gerais a IA a busca pelo melhor agente inteligente em uma dada arquitetura. Com essa definio a IA possvel: para qualquer arquitetura digital de k bits12 de espao, existem 2 k programas de agentes, e o que precisa ser feito testar todos eles para descobrir o melhor programa que se encaixe na arquitetura.

12

Simplificao de dgito binrio BInary digiT em ingls

IA em Jogos A busca competitiva entre o homem e a mquina

- 28

Essa definio funciona para problemas de engenharia, Porm os filsofos querem comparar as duas arquiteturas a humana e a mquina, formulando a questo Mquinas podem pensar?. (RUSSEL & NORVIG, 2004:916) Alan Turing, em 1950, sugeriu que ao invs de perguntar se as mquinas podem pensar, devemos perguntar se elas podem passar por um teste de inteligncia comportamental, sendo chamado de Teste de Turing. O teste consiste em fazer uma mquina pensante desenvolver uma conversao via on-line com um interrogador por 5 minutos. O interrogador deve adivinhar se teve uma conversa com uma mquina ou com um humano, o programa passar no teste se enganar o interrogador durante 30% de seu tempo. Turing previu que em 2000 uma mquina devidamente programada passaria no teste, at os dias de hoje diversos programas conseguiram enganar pessoas, como o programa ELIZA e o chatbot13 da Internet MGONZ. Porm, at agora nenhum programa conseguiu os 30% contra julgadores treinados e a IA dedicou-se muito pouco para o desenvolvimento de mquinas para passarem no Teste de Turing. (Idem, 916) Turing examinou trs maneiras de negar a possibilidade que mquinas poderiam ser inteligentes.

2.1.1.1 Argumento da Inaptido


Conforme RUSSEL & NORVIG (2004:917) Turing definiu aes que mquinas no conseguiriam executar como exemplo dessas aes Turing lista algumas: Ser amvel; Senso de humor; Apaixonar-se; Aprender a partir de experincias; Distinguir o certo e o errado; E mais outras, no sculo XXI ns sabemos que mquinas podem fazer aes que antes s humanos poderiam executar como jogar xadrez e outros jogos, reconhecimento de peas em linha de montagem, dirigir automveis, fazer diagnsticos mdicos, alm de outras tarefas que so executadas to bem ou at melhores do que os humanos. Computadores podem realizar tarefas humanas at as que exigem perspiccia e compreenso humana, porm isso no prova que mquinas possuem esses dois atributos
13

Pequeno programa capaz de manter uma conversa com uma pessoa

IA em Jogos A busca competitiva entre o homem e a mquina

- 29

humanos, mas quebra a suposio sobre os processos mentais exigidos para formar um comportamento inteligente, h tarefas em que computadores no executam to bem, como uma conversao ilimitada com um ser humano. (RUSSEL & NORVIG, 2004:917)

2.1.1.2 Argumento da objeo matemtica


Segundo RUSSEL & NORVIG (2004: 917) certas questes matemticas so insolveis para sistemas formais especficos, o teorema da incompleteza de Gdel o exemplo mais famoso, no geral, qualquer sistema denominado F que consiga efetuar operaes aritmticas possvel desenvolver a sentena de Gdel G(F) com as propriedades: G (F) uma sentena de F, mas no pode ser provada dentro de F. Se F consciente, ento G(F) verdadeira. Esse teorema demonstra que mquinas so inferiores aos humanos mentalmente, pois mquinas so sistemas formais limitados pelo teorema da incompleteza, enquanto um humano no possui essa limitao. (LUCAS, 1961 apud RUSSEL & NORVIG, 2004:918) essas afirmaes geraram discusses em diversos pontos. Um dos pontos que um agente inteligente no deve ficar envergonhado se no conseguir afirmar a verdade em uma sentena em que outros agentes conseguem fazer. Um agente no pode afirmar que uma sentena vlida se essa mesma sentena se contradiz, pois se ele afirmar ele estaria contradizendo ele mesmo, com isso foi encontrado uma sentena em que esse determinado agente no possa afirm-lo, mas outros agentes podem. Outro exemplo que os humanos demorariam a vida inteira para calcular 10 bilhes de nmeros de 10 dgitos, enquanto um computador demoraria segundos, isso no uma limitao da habilidade matemtica humana, pois os seres humanos se comportaram de forma inteligente durante milhares de anos antes da criao da matemtica, isso prova que a matemtica s possui um papel no muito vital para definio de um ser inteligente. (RUSSEL & NORVIG, 2004:918)

2.1.1.2 Argumento da informalidade


Para RUSSEL & NORVIG (2004, 919), Turing definiu que o comportamento humano muito complexo para ser capturado e representado por sistemas de regras simples e como os

IA em Jogos A busca competitiva entre o homem e a mquina

- 30

computadores seguem um conjunto de regras bsicas, eles no conseguiriam ter um comportamento igualmente ao dos seres humanos. O filsofo Hubert Dreyfus apoiava essa viso. Ele e seu irmo criticavam a seguinte posio, que todo comportamento inteligente poderia ser absorvido por um sistema que raciocine a partir de regras bsicas, isso era denominado de GOFAI (Good Old-Fashioned AI). Dreyfus criticava o modo como o computador era programado para desenvolver um comportamento humano. (RUSSEL & NORVIG, 919) Dreyfus dava como exemplo o jogo de xadrez em que um mestre de xadrez no precisaria pensar muito para desenvolver uma jogada, essa jogada sairia pelo motivo de o mestre de xadrez ter total domnio das regras do xadrez, que foi aprendido durante toda a sua carreira como enxadrista. (Idem, 919) Dreyfus prope um sistema de aquisio de experincias, uma rede neural com uma vasta biblioteca de regras. Agora essas idias esto sendo incorporadas a projetos de agentes inteligentes, demonstrando que a IA est progredindo e no prova sua impossibilidade de acontecer. (Ibidem, 919) Os filsofos comparavam homens com as mquinas, perguntando se mquinas pensam, enquanto Alan Turing levanta a questo se as mquinas podem passar em um teste comportamental, com esse teste Turing levanta trs argumentos para a negao de inteligncia, ou seja, se a mquina no atingir esses trs argumentos ela no ser considerada inteligente.

2.1.2 IA Forte
Alguns filsofos afirmam que mesmo que uma mquina passasse no Teste de Turing ela ainda no estaria realmente pensando, mas sim simulando um pensamento.

Somente quando uma mquina conseguir escrever um soneto ou compor um concerto em conseqncia de ter pensado e sentido emoes, e no pela disposio aleatria de smbolos, poderamos concordar que a mquina ir se equiparar ao crebro isto , se ela no apenas escrever, mas souber o que escreveu (GEOFFREY JEFFERSON, 1949 apud RUSSEL & NORVIG, 2004:920)

Turing chama esse argumento de conscincia, ou seja, a mquina deve estar ciente de seus atos e de seus estados mentais, apesar da conscincia ser um assunto importante Jefferson se relaciona na verdade fenomenologia, que o estudo da experincia direta, a

IA em Jogos A busca competitiva entre o homem e a mquina

- 31

mquina precisa realmente sentir emoes, outros se concentram na intencionalidade, as mquinas crem em algo existente no mundo real. (RUSSEL & NORVIG, 2004:920) Turing responde os filsofos com a seguinte idia de que no devemos utilizar um padro de inteligncia para mquinas mais alto que ns seres humanos, pois ns no sabemos os estados mentais de outro ser humano. (Idem, 921) Turing admite que aplicar a conscincia em mquinas difcil mas isso no significa que a IA seja impossvel ele se importa em fazer programas que simulem o pensamento humano e no em saber se pessoas consideram esses programas como seres pensantes, mas alguns filsofos esto interessados em considerar se um programa pensa ou no. (Ibidem, 921) Segundo RUSSEL & NORVIG (2004:921) h reas em que elementos produzidos artificialmente so considerados iguais a elementos naturais, e outras em que os elementos artificiais no so considerados naturais. Tudo depende da forma como feita anlise, em alguns casos o comportamento do artefato em si influencia se ele artificial ou natural j em outros a forma de ser produzida. Como por exemplo, um adoante artificial considerado um adoante, pois ele tem o mesmo comportamento de um adoante normal, j uma pintura de Picasso artificial no considerada real, pois no foi Picasso que produziu, porm no caso de mentes artificiais, no h uma regra de como avaliarmos se uma mente artificial seja considerada natural, ento preciso se basear em intuies. O filsofo John Searle (1980) afirma que, ningum supe que uma simulao de computador de uma tempestade ir molhar as pessoas, ento como simulaes de processos mentais, podem ser considerados reais. (Idem, 921) Em Hollywood uma simulao de uma tempestade, com certeza molha os atores. Grande parte das pessoas confirma que a simulao de um jogo de xadrez realizada por um computador considerada um jogo de xadrez real. Os processos mentais podem ser semelhantes a um jogo de xadrez ou a uma simulao de tempestade. A definio da semelhana depende da teoria utilizada por ns. (Ibidem, 922) Para RUSSEL & NORVIG (2004:922) a teoria do funcionalismo representa que o estado mental uma condio causal intermediria entre entrada e sada. Sob isso dois sistemas que possuem a mesma condio teriam os mesmos estados mentais. Um computador poderia ter os mesmos estados mentais de uma pessoa. Contra essa teoria, h a teoria do naturalismo biolgico, que afirma que os estados mentais so resultados de manifestaes neurolgicas de baixo nvel realizadas pelos neurnios. Por isso os estados mentais produzidos por um programa com a mesma estrutura

IA em Jogos A busca competitiva entre o homem e a mquina

- 32

de outro programa sero diferentes, para serem iguais eles devem estar tambm em um mesmo ambiente. (RUSSEL & NORVIG, 2004:922) Para a avaliao dos dois pontos de vista examinado um dos mais antigos problemas da filosofia mental o problema de mente e corpo.

2.1.2.1 O Problema de mente/corpo


Conforme RUSSEL & NORVIG (2004:922) o problema de mente e corpo como esto relacionados os processos mentais a processos fsicos. Ren Descartes considerou que a alma um ser imortal que interage com um corpo fsico concluindo que alma e corpo so coisas distintas teoria dualista. Contra essa idia h a teoria de que no existe alma imaterial, s objetos fsicos, os estados mentais so considerados estados do crebro, teoria materialista. Grande problema para o materialismo seria o conceito de livre-arbtrio, pois um objeto fsico tem suas aes regidas pelas leis da fsica, no tendo mais nenhuma liberdade de escolha. Outro problema a questo de conscincia, pois possvel experimentar certos estados mentais e no experimentar certos estados fsicos. (Idem, 922) Para resolver contornar esses problemas preciso examinar os estados cerebrais em nveis mais abstratos do que apresentados at agora. Por exemplo, quando um ser humano pensa em algo seu crebro sofre certas mudanas, porm nenhuma qualitativa para o estado mental. Para resolver isso preciso definir os tipos dos estados cerebrais para podermos julgar se dois estados so diferentes. (Ibidem, 923) Considerando o tipo de estado mental: os estados intencionais, so estados relacionados a algum aspecto do mundo exterior como acreditar, conhecer, desejar e assim por diante, ou seja, estados intencionais devem possuir uma ligao com objetos do mundo exterior, porm a identificao de estados mentais deve ser gerada dentro da cabea, para examinar esse dilema ser apresentado um experimento que tenta separar estados intencionais e seus objetos externos. (RUSSEL & NORVIG, 2004:924)

2.1.2.1.1 Crebro em uma cuba


O experimento do Crebro em uma cuba demonstra o seguinte cenrio: seu crebro retirado aps o seu nascimento e colocado em uma cuba especialmente projetada para o seu desenvolvimento, sinais eletrnico gerados por uma simulao de computador so enviados

IA em Jogos A busca competitiva entre o homem e a mquina

- 33

ao seu crebro, e seus sinais de resposta so capturados para modificar a simulao da maneira apropriada. Nesse caso, o estado mental MorrendoDeVontade(Eu,Hambrguer) seria o mesmo estado mental de um crebro em um corpo. (RUSSEL & NORVIG, 2004:923) O contedo de um estado mental pode ser interpretado de dois pontos de vista diferentes contedo largo e contedo estreito. A viso de contedo largo interpreta em que h um observador externo onisciente com acesso a toda a situao, capaz de distinguir diferenas nos estados mentais, sob essa viso os estados mentais gerados dentro de uma cuba so diferentes dos estados gerados por uma pessoa normal. A viso de contedo estreito considera o ponto de vista subjetivo interno, sob essa viso todos os estados mentais so idnticos. (Idem, 923) A crena que um hambrguer delicioso tem uma natureza intrnseca, do mesmo a ter essa crena. Esse o domnio da qualia14, por exemplo, existem duas pessoas daltnicas uma v verde na cor vermelha e a outra vice-versa, quando ambas virem o mesmo semforo, elas agiro do mesmo modo, mas a experincia ser diferente em algum aspecto. As duas pessoas podem concordar que tiveram a mesma experincia. Isso no define se as duas pessoas estariam no mesmo estado mental ou em estados diferentes. (Ibidem, 924) Para se ter uma outra idia ser apresentada outra experincia que levar a pensarmos se s humanos podem ter estados mentais.

2.1.2.1.2 Prtese Cerebral


Conforme RUSSEL & NORVIG (2004, 924), o experimento de Prtese Cerebral foi introduzido na dcada de 70 por Clark Glymour e foi estudado por Jhon Searle. O experimento demonstra a seguinte situao: A neurofisiologia se desenvolveu at um ponto em que o crebro humano est perfeitamente compreendido. E ainda possamos construir dispositivos que reproduzem um neurnio perfeitamente, por fim desenvolvida uma tcnica cirrgica em que possvel a substituio de neurnios individuais pelos neurnios artificiais, sem interromper a atividade cerebral. O experimento tem por objetivo substituir todos os neurnios naturais pelos neurnios artificiais e depois inverter o processo devolvendo os neurnios naturais pessoa e seu estado biolgico normal. O experimento visa analisar o comportamento externo e a experincia interna da pessoa durante e aps a operao, segundo o experimento o comportamento externo deve
Qualidades ou sentimentos, como a vermelhido, quando consideradas independentemente de seus efeitos no comportamento
14

IA em Jogos A busca competitiva entre o homem e a mquina

- 34

permanecer inalterado, embora a presena da conscincia durante a operao no seja assegurada, dever ter a possibilidade da pessoa registrar as mudanas de sua experincia consciente. Isso gera um choque de intuies sobre o que aconteceria, Moravec pesquisador de robtica afirma que a conscincia permaneceria intacta, j o filsofo Searle defende que perderamos pouco a pouco a nossa conscincia. (RUSSEL & NORVIG, 2004:924) Para o comportamento exterior permanecer o mesmo enquanto feita a operao necessrio reduzir por completo a vontade do indivduo. Essa remoo das vontades do individuo uma hiptese improvvel. (Idem, 924) Para RUSSEL & NORVIG (2004, 925) se fizermos perguntas ao indivduo relativas sua experincia consciente durante a operao obteremos respostas consistentes, ou se cutucarmos o individuo com um basto pontudo ele nos daria uma resposta que o basto machuca, os cticos podem dizer que programamos regras para obtermos essas respostas. Porm conseguimos reproduzir as propriedades funcionais de um crebro humano, supomos que um crebro eletrnico no possui essas propriedades, ento devemos achar uma explicao das manifestaes realizadas pelo crebro eletrnico que apelem para as propriedades dos neurnios, chegamos a duas concluses: Os mecanismos causais de conscincia que geram esses tipos de sada em crebros normais ainda esto operando na verso eletrnica, que portanto consciente. Os eventos mentais conscientes no crebro normal no tm nenhuma conexo causal com o comportamento, e foram omitidos do crebro eletrnico, que portanto no consciente. Considere agora que a operao seja desfeita e o indivduo volte a ter um crebro normal. Seu comportamento deve ser igual se a operao no fosse realizada. Porm o individuo dever possuir na memria a exata conscincia de suas experincias at aquele momento. (Idem, 925) Porm o experimento no foi realizado da maneira apropriada se os neurnios retirados fossem colocados em animao suspensa do momento em que foram retirados at o momento em que so recolocados no crebro, eles no lembraro da operao, preciso ter certeza de que os estados dos neurnios artificiais sejam atualizados aos neurnios naturais, se os neurnios naturais causarem um comportamento diferente ao que os neurnios artificiais provocaram, significaria que os neurnios artificiais no so equivalentes aos naturais. (Ibidem, 925) Patricia Churchland afirma que a operao tambm pode ser realizada com qualquer unidade funcional maior que um neurnio como um mdulo mental, um hemisfrio ou at um

IA em Jogos A busca competitiva entre o homem e a mquina

- 35

crebro inteiro. Isso significa que se aceitarmos o experimento de prtese cerebral, aceitaramos que a conscincia se mantm mesmo quando o crebro trocado por um circuito que faz mapeamento de entrada/sada em uma tabela de busca, isso vai contra a idia de Turing, de que as tabelas de buscas no so conscientes. Isso sugere que o experimento de prtese cerebral no pode substituir um crebro inteiro, porm no significa que se deve usar a substituio de um tomo de cada vez. (RUSSEL & NORVIG, 2004:925-926)

2.1.2.1.3 O quarto chins


O ltimo experimento e o mais famoso entre eles, o do quarto chins desenvolvido inteiramente por Jhon Searle, ele descreve um sistema que passa pelo Teste de Turing, porm esclarece que o programa no compreende suas entradas e sadas, concluindo que a execuo de um programa apropriado no suficiente para ser uma mente. (RUSSEL & NORVIG, 2004:926) O sistema consiste em um ser humano que s compreenda ingls, equipado com um livro de regras folhas de papel algumas em branco e outras com smbolos indecifrveis. Ele est em um quarto com uma pequena abertura e de l passam folhas de papel com smbolos. O ser humano encontra esses smbolos no livro de regras e executa os procedimentos descritos neles, esses procedimentos podem ser desenhar smbolos em outras folhas e repassar para o mundo exterior. (Idem, 926) Do exterior do quarto percebe-se que o sistema est recebendo dados sob a forma de sentenas em chins e gera respostas em chins inteligentes. A pessoa no quarto no compreende chins, o livro de regras e os papis tambm no. Ento no est sendo compreendido o dialeto chins. (Ibidem, 926) Como Turing, Searle recebeu vrias crticas uma delas que, embora se possa perguntar se o ser humano no quarto entende chins, isso o mesmo que perguntar se a CPU pode efetuar razes cbicas. Ambos os casos as respostas seriam negativas, e em ambos os casos os sistemas tem a capacidade em questo. Caso se pergunte ao quarto se ele sabe chins, a resposta seria positiva em chins fluente. Isso o suficiente para Turing. Searle quer afirmar que a compreenso no est no ser humano nem no papel, no podendo haver qualquer compreenso. Mesmo se o ser humano decorasse o livro de regras e o contedo dos papis se fosse perguntado para ele em ingls a resposta ser negativa. (RUSSEL & NORVIG, 2004:926)

IA em Jogos A busca competitiva entre o homem e a mquina

- 36

Essa afirmao levanta quatro axiomas15: Os programas de computador so entidades sintticas formais; Mentes tm contedo mental, ou semntica; Sozinha, a sintaxe no suficiente para a semntica; Crebros causam mentes; Com os trs primeiros axiomas conclui-se que os programas no so suficientes para mentes. Ou seja, um Agente que executa um programa pode no ser uma mente e no precisa ser uma mente para executar o programa. A partir do quarto axioma ele conclui que qualquer outro sistema capaz de causar mentes deve possuir poderes causais equivalente aos do crebro. A partir da ele deduz que qualquer crebro artificial teria de reproduzir os poderes causais do crebro, e no apenas executar um s programa especifico, e que os crebros humanos no produzem fenmenos em virtude de um programa. (RUSSEL & NORVIG, 2004:927) A finalidade do argumento do quarto chins fornecer intuies para o terceiro axioma, porm a reao desse argumento mostra que ele fornece intuies para aqueles que j esto inclinados a aceitar a idia de que programas no geram compreenso verdadeira. (Idem, 927) Searle admite a possibilidade de que o crebro realmente esteja implementando um programa de IA tradicional. Ele nega a crena de que mquinas no podem ter mentes, porm afirma que algumas mquinas tm mentes. Somos mquinas biolgicas com mentes. (Ibidem, 927) Para termos a IA Forte preciso discutir o problema de mente/corpo que est muito longe de acabar, tendo duas correntes filosficas discutindo isso a materialista e a dualista. Tendo como demonstrao trs experimentos percebe-se a dificuldade de diferenciao de um estado mental de um estado fsico, para depois iniciar uma implementao de uma IA Forte.

2.2 Abordagens
Com base nos diversos campos que a IA rege existem duas abordagens (SIMON 1988 apud FERNANDES, 2005:3). A Abordagem cognitiva ou conhecida como Simbolista, d nfase em como o ser humano raciocina. Ela tem por objetivo encontrar uma explicao para comportamentos
15

Reivindicao que pode ser vista como verdadeira sem nenhuma prova

IA em Jogos A busca competitiva entre o homem e a mquina

- 37

inteligentes baseados em aspectos psicolgicos e processos algortmicos, tem como pioneiros Jhon McCarthy, Marvin Minsky, Newell e Simon. (FERNANDES, 2005:3) A Abordagem Conexionista ou conhecida como biolgica, d nfase no funcionamento do crebro, dos neurnios, e das conexes neurais, tendo como pioneiros McCulloch, Pitts, Heldo, RosenBlatt e Widrow. (Idem, 3)

2.2.1 Abordagem Simbolista


A Inteligncia Artificial Simbolista surgiu da unio da Psicologia comportamentalista dos anos 50 e do recente computador digital dos anos 60. Sendo a cincia que busca os meios necessrios imitao da inteligncia humana. (Carvalho 2002:61) A inteligncia humana possui muitas facetas. Sendo impossvel ter a exata definio do que a inteligncia humana. (Idem, 61) Como no conseguimos ter uma definio da inteligncia humana ento descreveremos algumas de suas caractersticas: Capacidade de comunicao; Conhecimento prprio; Conhecer o mundo; Traado de planos ou metas; Criatividade; Capacidade de comunicao: quanto mais verstil o uso das linguagens para expressar as suas idias e sentimentos, mais inteligente parece o ser humano, porm existem seres humanos com um grande nvel de inteligncia e uma pequena capacidade de comunicao com seus semelhantes. (CARVALHO, 2002:62) Conhecimento prprio ou a conscincia: diferem-nos dos seres irracionais, sabemos o que somos quem somos o que sabemos e o que no sabemos, o grau de inteligncia dependente desta capacidade, que talvez seja a maior expresso de inteligncia. (Idem, 62) Conhecer o mundo: Mquinas que executam tarefas complexas, mas no tem conhecimento do que est fazendo (o problema do quarto chins), no parecem ser inteligentes. Quanto mais o conhecimento das relaes do ser com o seu mundo, mais ele ser eficiente na manipulao do mundo exterior. Isto requer vrias formas de memrias para que o mundo daquele ser seja armazenado para uso futuro, mquinas sem memria no podem seguramente demonstrar inteligncia. (Ibidem, 62)

IA em Jogos A busca competitiva entre o homem e a mquina

- 38

Traados de planos ou metas: Todo movimento do ser humano inteligente uma meta, seja um plano de casamento ou at o de atravessar uma rua. O ser inteligente capaz de encontrar a soluo, subdividir a meta, vencer etapas intermedirias, at a concluso de seu objetivo. A definio de planos tambm mostra que o ser tem autonomia, desejos, idias e conscincia. (CARVALHO, 2002:62) Criatividade: A mais inexplicvel das propriedades da inteligncia, o poder criativo que retira do nada de idias antigas um conceito novo que resulta em um salto qualitativo que acrescenta conhecimento. (Idem, 62) Definidas estas propriedades, conclui-se que a Inteligncia Artificial Simbolista assim como a biologia estuda algo que no sabe exatamente, em outras palavras a Inteligncia Artificial Simbolista seria o estudo de como criar mquinas que realizam tarefas em que, no momento, as pessoas so melhores. Portanto se no existir uma mquina que consiga reconhecer pessoas numa foto como um ser humano, este ser o objetivo da IA Simbolista. (Ibidem, 63) Com esta definio a IA Simbolista entra num paradoxo insolvel: pois se gerarmos uma mquina que consiga realizar uma tarefa semelhante ao ser humano, essa mquina j no ser alvo do estudo da IA Simbolista, pois a tarefa foi mecanizada. Ou seja, a IA Simbolista considera que uma tarefa mecanizada, no ser mais inteligente pelo fato de ter sido mecanizada. Se a realizao de grandes clculos com ajuda da tbua de logaritmos h sculos atrs, era sinal de inteligncia, hoje fazemos isso com nossas pequenas calculadoras, fazendo com que isto seja uma tarefa mecnica deslocando a inteligncia para outros processos ainda no mecanizados. (CARVALHO, 2002:63)

2.2.1.1 Metodologia Simbolista


Conforme CARVALHO (2002, 63) devido s influncias da Psicologia e da estrutura dos novos computadores a IA Simbolista, assume que os processos inteligentes sempre so uma seqncia de operaes controladas por um supervisor. As operaes devem ser representadas por smbolos. A prpria inteligncia estaria guardada em smbolos especiais de alto nvel, denominados de heursticas. A metodologia da IA Simbolista pode ser descrita em trs fases: Escolher ema atividade inteligente para estudo; Desenvolver uma estrutura lgico-simblica capaz de imit-la;

IA em Jogos A busca competitiva entre o homem e a mquina

- 39

Comparar a eficincia dessa estrutura com a atividade inteligente real; Devido ao fato de que a metodologia Simbolista tem fundamentos na escolha de uma

atividade inteligente, surgem diversas subreas especificas: Processamento de Linguagem Natural Sistemas Especialistas Planejamento Soluo de Problemas Reconhecimento de Padres Aprendizado de mquina Sistemas de Processamento de Linguagem Natural: Trata de criar algoritmos para o entendimento da linguagem humana escrita e falada. A linguagem envolve mecanismos complexos ainda no entendidos at hoje. Esses sistemas devem possuir um conhecimento grande embutido e de fcil acesso. Alguns sistemas conseguem dialogar dentro de certos temas, resumirem textos ou at mesmo responderem perguntas feitas para consultas a banco de dados. (CARVALHO, 2002:64) Sistemas Especialistas: Imitam o raciocnio de um especialista em certo ramo do conhecimento. Vrios especialistas so consultados e suas aes frente a certas situaes so representados e programados no sistema. O sistema passa ento a agir como se fosse um especialista. J foram desenvolvidos diversos sistemas especialistas nas reas da medicina, financeira e gerencial. (Idem, 64) Sistemas de Planejamento: So capazes de traar estratgias na rea administrativa, outros podem gerar planos de como ligar e desligar redes de equipamentos sem causar danos. Dentro desta subrea h a programao automtica que estuda como criar programas capazes de programar quase sem nenhuma interferncia humana. (Ibidem, 64) Sistemas de Soluo de Problemas: Desenvolve novas metodologias para resolver problemas matemticos. Muitos problemas so complexos que no so resolvidos em um tempo considervel, ento passa ser objetivo encontrar solues aproximadas em menor tempo. (CARVALHO, 2002:65) Sistemas de Reconhecimento de Padres: Reconhece qualquer tipo de padro, padres auditivos podem ser reconhecidos para que a mquina execute um comando de voz. Tambm reconhecem padres visuais para perceberem peas defeituosas na linha de montagem ou uma falha na chapa de um raio-X. Padres econmicos parta falncia de bancos ou empresas tambm so detectados por tcnicas de reconhecimento de padres. (Idem, 65)

IA em Jogos A busca competitiva entre o homem e a mquina

- 40

Sistema de Aprendizado de Mquina: Preocupa com a criao de algoritmos que permitam mquina aprender com o ambiente ao redor dela. Se um algoritmo de aprendizado receber uma grande massa de dados ele poder tirar concluses das relaes dos dados e transformar esses dados em regras para ele. (CARVALHO, 2002:65) A metodologia Simbolista est preocupada em imitar a inteligncia. Essa preocupao em excesso a distanciou das cincias do crebro.

2.2.1.2 Hipteses Simbolistas


A IA Simbolista possui duas hipteses que a definem: Hiptese do Sistema de Smbolos; Hiptese da Busca Heurstica16; Hiptese do Sistema de Smbolos: Afirma que um sistema simblico possui meios necessrios para a ao inteligente, afirmando que sistemas simblicos so necessrios expresso inteligente cabvel, pois ns realmente processamos smbolos a todo o momento, porm dizer que eles so suficientes para qualquer ao inteligente vai contra a abordagem Simbolista. (CARVALHO, 2002:66) Hiptese da Busca Heurstica: Afirma que um sistema de smbolos demonstra a inteligncia na soluo de problemas por meio de uma busca guiada por heursticas, ou seja, ele gera novas formas simblicas com base em experincias j vividas at que seja encontrada a soluo. (Idem, 66) Sistema de smbolos um conjunto de entidades padronizadas que podem ser componentes de outras entidades simblicas maiores. A sintaxe do sistema estabelece como os smbolos sero definidos e quais expresses possveis. Deve possuir operadores capazes de criar, modificar, reproduzir e destruir seus smbolos. Possui dois processos para a semntica dos smbolos o de designao onde procedimentos computacionais so designados para cada smbolo e interpretao onde os procedimentos computacionais relacionados a cada smbolo so executados pelo computador. (Ibidem, 66) A abordagem Simbolista a mais ampla da IA, nela est quase todas as subreas da IA, tendo como base o processamento de smbolos e regras de heursticas, ela esquece a compreenso da mente humana, e busca a sua simulao.

Srie de conhecimentos que proporcionam uma rpida soluo para algum problema ou dificuldade, com o menor gasto de energia ou esforo

16

IA em Jogos A busca competitiva entre o homem e a mquina

- 41

2.2.2 Abordagem Conexionista


A abordagem Simbolista dominou a IA entre os anos 60 a 80, quando John Hopfield bilogo e fsico construiu uma rede de neurnios com a capacidade de simular a memria humana. Sua rede neural, junto com os novos computadores paralelos, levantou questes importantes contra a abordagem simbolista, pois em 20 anos eles no conseguiram resultados relevantes de emulao da inteligncia. (CARVALHO, 2002 99) O maior questionamento abordagem Simbolista foi a hiptese da suficincia de estruturas lgicas para o entendimento da mente humana, desprezando totalmente o maquinrio cerebral. (Idem, 100) A abordagem Conexionista, afirma que a estrutura do crebro fundamental para a compreenso da mente. Para os conexionistas os processos mentais surgem do comportamento de uma populao de elementos simples, que se conectam e trocam sinais entre si. (Ibidem, 101) A maneira com que esses elementos se comunicam fundamental para o surgimento do processo mental, da o nome conexionista adotado por esta comunidade de cientistas. Assim o processamento da informao no seria mais centralizado e seqencial, mas, sim paralelo e distribudo no espao, pois cada neurnio executar suas aes em diferentes locais e sem sincronia com os demais. A inteligncia para os conexionistas no vem em regras de heursticas e sim nas conexes entre os neurnios. (CARVALHO, 2002:101) A mais nova das abordagens tem como objetivo o estudo do crebro humano, para isso utilizam-se da construo de neurnios artificiais e das interaes de suas conexes para a gerao da inteligncia.

2.3 Ramificaes
A IA abrange atualmente diversos sub-campos desde reas de uso geral como aprendizado e percepo, at tarefas especificas como jogar xadrez, demonstraes de teoremas matemticos, ela sistematiza e automatiza tarefas intelectuais, portanto sendo importante em qualquer rea da atividade intelectual humana, sendo um campo universal. Alguns desses sub-campos sero apresentados mais adiante.

IA em Jogos A busca competitiva entre o homem e a mquina

- 42

2.3.1 Sistemas Especialistas


So sistemas que solucionam problemas que podem ser resolvidos por pessoas especialistas. Tambm conhecidos como sistemas baseados em conhecimento.

(FERNANDES, 2005:13) O processo para a construo de um sistema especialista chamado de Engenharia do Conhecimento, onde envolve a interao entre o desenvolvedor do sistema conhecido como Engenheiro do Conhecimento, e um ou mais especialistas. O Engenheiro do Conhecimento extrai do especialista seus procedimentos, estratgias e regras para a soluo de problemas e constri seu conhecimento dentro do sistema. (WATTERMAN, 1986 apud FERNANDES, 2005:13-14) Para tomar uma deciso sobre um determinado assunto, um especialista consulta em sua memria um conhecimento, armazenado no perodo de sua formao e no decorrer de sua vida profissional sobre esse assunto, e toma a sua deciso de acordo com a sua experincia. (SCHWABE & CARVALHO, 1987 apud FERNANDES 2005:14) Durante esse processo o especialista verifica a importncia dos fatos levantados, faz uma comparao entre eles e seu conhecimento acumulado. Formula novas hipteses e verifica novos fatos, esses fatos podem influenciar a deciso. Com esse processo o especialista pode no chegar a uma concluso se seu conhecimento prvio for muito baixo. Podendo chegar a uma concluso errada, sendo justificado pelos fatos apurados e conhecimento prvio. (FERNANDES, 2005:14) O Sistema especialista deve ter a capacidade de aprender novos conhecimentos, melhorando o desempenho de raciocnio e a qualidade das decises. (Idem, 14)

2.3.1.1 Estrutura de um Sistema Especialista


Segundo FERNANDES (2005:16) um sistema especialista apresenta cinco componente bsicos: Base de conhecimento; Mquina de inferncia; Subsistema de aquisio de conhecimento; Subsistema de explicaes; Interface do usurio;

IA em Jogos A busca competitiva entre o homem e a mquina

- 43

Base de Conhecimento: Local onde os fatos e regras que representam o conhecimento do especialista residem. Muitos sistemas utilizam regras como a base de conhecimento sendo considerados sistemas baseados em regras. Outros sistemas utilizam de outras tcnicas para a representao do conhecimento, como redes semnticas e frames. Pelo fato da base de conhecimento ser separada da mquina de inferncia o conhecimento contido na base fcil de ser modificado. Podendo adicionar regras novas, remover ou modificar as regras antigas. (FERNANDES, 2005:17) Mquina de inferncia: Mecanismo que procura as respostas na base de conhecimento. Encontra regras necessrias para o problema e ordena-as de uma forma lgica. Funciona como um supervisor, que dirige a operao sobre toda a base de conhecimento do sistema. Toma decises e julgamentos baseados em dados simblicos existentes na base de conhecimento. (Idem, 17-18) Subsistema de aquisio de conhecimento: Utilizado para alimentar a base de conhecimento. Meio por onde so adicionadas novas regras e modificam ou eliminam regras antigas. (Ibidem, 18) Subsistema de explicaes: Designado para explicar ao usurio a linha de raciocnio que o sistema utilizou para encontrar a soluo. Usurios dos sistemas podem perguntar Por qu? ou Como? e o sistema apresentar uma resposta. Este subsistema timo para usar em situaes instrutoriais e para debugging17 durante o desenvolvimento do sistema. (FERNANDES, 2005:18) Interface do usurio: Utilizada para estabelecer um meio de comunicao entre o usurio e o sistema, podendo ser na forma de menus, perguntas e representao grficas exibidas na tela do computador. Tambm exibe todas as perguntas, repostas e resultados de consultas. (Idem, 18)

2.3.1.2 Aquisio do conhecimento


Cada vez mais usados nas organizaes, os sistemas especialistas auxiliam na tomada de decises, porm o processo de aquisio de conhecimento passa despercebido e tida como um gargalo no desenvolvimento do sistema, o responsvel por essa aquisio o Engenheiro do conhecimento. (ROOK & CROGHAN, 1989 Apud FERNANDES 2005:1819)

17

Identificao e correo de erros no software

IA em Jogos A busca competitiva entre o homem e a mquina

- 44

O engenheiro do conhecimento a figura central tanto na aquisio de conhecimento, como no desenvolvimento. Por isso a pessoa deve ter um preparo especial e algumas qualidades inatas. (ROLANDI 1986 apud FERNANDES 2005:19) Esse processo compreende a aquisio, anlise e representao do conhecimento, representado hoje o principal gargalo para o desenvolvimento de sistemas especialistas. (FERNANDES, 2005:19) Conforme GONALVES (1986) apud FERNANDES (2005:19) Existem duas abordagens para a engenharia do conhecimento: Abordagem psicolgica; Abordagem baseada em modelos. Abordagem psicolgica: Procura obter sistemas especialistas que imitam o especialista. O conhecimento modelado resultante do processo mental interno do especialista. Abordagem baseada em modelos: Parte de modelos de tarefas bsicas como diagnsticos. Abordagem a mais recente tendo suas ferramentas de implantao ainda em processo de desenvolvimento. (GONALVES apud FERNANDES 2005:19)

2.3.1.3 Sistemas Especialistas Conhecidos


Sero apresentados a seguir os sistemas especialistas mais conhecidos: MYCIN; Prospector. MYCIN: Um dos primeiros Sistemas Especialistas, com o objetivo de diagnosticar doenas infecciosas. Muito til, pois nem sempre o mdico responsvel especialista em infeces principalmente num ambiente hospitalar. O sistema coleta informaes do paciente como nome, idade, sexo, tempo de manifestao dos sintomas e resultados de exames. A partir dessas informaes e de suas base de regras o sistema capaz de definir um diagnstico e encontrar o melhor tratamento. A base de regras possui cerca de 450 regras para diagnosticar e determinar tratamentos para doenas infecciosas. A aquisio do conhecimento facilitada pelo fato do sistema explicar o seu raciocnio. (BITTENCOURT, UFSC/GIA, 2005) Prospector: Desenvolvido na SRI International com o objetivo de auxiliar geologistas em prospeco mineral. A Principal funo do sistema determinar correspondncia entre

IA em Jogos A busca competitiva entre o homem e a mquina

- 45

dados com modelos de descrio de classes disjuntas de situaes possveis. O sistema possui cinco modelos montados com ajuda de cinco gelogos. O sistema funciona em duas etapas: inicialmente o usurio fornece dados do local para a prospeco, esses dados so comparados com os modelos j existentes e depois de definido um modelo juntamente com as informaes fornecidas feita uma refinao da anlise. (BITTENCOURT, UFSC/GIA, 2005) Sistemas Especialistas a subrea de IA de mais fcil implementao, pois o engenheiro do conhecimento precisa transformar todo o conhecimento do especialista em regras de negcio do sistema. Na forma de um banco de dados em que so colocadas todas as alternativas para certas situaes. Em que o sistema ir consultar para tomar a melhor deciso.

2.3.2 Robtica
Os robs so agentes fsicos que executam tarefas manipulando o mundo fsico. Para isso so equipados com atuadores como braos, pernas, rodas, garras e articulaes. Esses atuadores tm o propsito de exercer fora fsica sobre o ambiente. Os robs tambm possuem sensores que permitem perceber o mundo ao redor dele. Entre os sensores esto cmeras, ultra-som, giroscpios18 e acelermetros19. (RUSSEL & NORVIG, 2005:870) Os robs so divididos em trs categorias diferentes: Manipuladores; Rob Mvel; Rob Humanide. Manipuladores: Tambm conhecidos como braos robs, ficam fisicamente ancorados no local de trabalho como em uma linha de montagem ou na estao espacial internacional. Seus movimentos so causados por diversas articulaes controlveis, permitindo que o rob alcance qualquer posio dentro do local de trabalho. o tipo mais comum de robs com cerca de um milho de unidades em todo o mundo. Alguns so usados em hospitais para auxiliar os cirurgies, poucas fbricas de carro sobreviveriam sem eles. (Idem, 870) Rob Mvel: Se deslocam pelo ambiente atravs de rodas, pernas ou mecanismos semelhantes. Foram projetados para uso na entrega de alimentos em hospitais, movimento de containeres nos portos e tarefas similares. Porm h trs diferentes tipos entre os robs mveis o ULV (unmanned land vehicle) capaz de navegar de forma autnoma em altas estradas. UAV (unmanned air vehicle) usados para vigilncia, pulverizao e operaes militares.
18 19

Dispositivo usado para orientao de navios, avies e espaonaves Dispositivo usado para medir a acelerao

IA em Jogos A busca competitiva entre o homem e a mquina

- 46

AUV (autonomous underwater vehicle) usados em exploraes submarinas. Tambm os viajantes exploratrios como o Sojourner. (RUSSEL & NORVIG, 2005:870-871) Rob Humanide: So robs hbridos, um, rob mvel equipado com manipuladores, cuja estrutura imita o torso humano. Eles podem aplicar seus efetuadores em um campo mais amplo, porm pelo fato de no possurem uma rigidez fsica do ponto de fixao, as tarefas se tornam mais difceis. (Idem, 871) A robtica tambm inclui dispositivos protticos como membros artificiais, olhos e orelhas para seres humanos, ambientes inteligentes como casas equipadas com sensores e efetuadores e sistemas com vrios corpos, onde a ao robtica ocorre por enxames de pequenos robs. (Ibidem, 871) Para RUSSEL & NORVIG (2004, 871) os robs devem lidar com ambientes parcialmente observveis, dinmicos e contnuos. Nem todos os ambientes de robs so seqenciais ou de multiagentes. O rob no pode ver em torno de obstculos, e os comandos esto sujeitos incerteza, devido ao deslizamento de engrenagens, frico. Os sistemas robticos precisam incorporar o conhecimento anterior sobre o rob, seu ambiente fsico e suas tarefas a serem executadas, de forma que o rob possa aprender com rapidez e executar as tarefas de segurana.

2.3.2.1 Hardware
O grande sucesso dos robs depende do projeto de sensores e efetuadores para a execuo da tarefa. (RUSSEL & NORVIG, 2004:872) Segundo RUSSEL & NORVIG (2004:872) o sensor a interface perceptiva entre robs e seus ambientes. Existem os sensores passivos e os sensores ativos. Os sensores passivos so observadores do ambiente, eles captam sinais gerados por fontes do ambiente. Sensores ativos enviam energia ao ambiente e aguarda a reflexo do sinal, como um sonar20. Os sensores ativos coletam mais informaes que os sensores passivos, porm possuem um custo maior e podem sofrer com interferncia. Independente disso existe trs tipos de sensores:
20

Telmetros; Sensores de tratamento de imagem; Sensores Proprioceptivos.

Aparato capaz de emitir ondas de som em objetos para captar seus ecos

IA em Jogos A busca competitiva entre o homem e a mquina

- 47

Telmetros: So Sensores que medem a distncia de objetos que esto ao seu redor. O tipo comum o sensor de sonar. Emitem ondas sonoras direcionais que sero refletidas pelos objetos e capturadas novamente pelo sonar, esse sinal retornado traz as informaes necessrias para encontrar a distncia de objetos prximos. Os sonares subaquticos a tecnologia utilizada pelos AUVs, em terra os sonares so utilizados para evitarem colises com objetos prximos. (RUSSEL & NORVIG, 2004:872) Sensores de tratamento de imagens: As cmeras fornecem imagens do ambiente e utilizando de tcnicas de viso computacional podem-se tirar modelos e caractersticas do ambiente. A viso estereoscpica importante na robtica, pois com ela so obtidos dados sobre a profundidade e entre outros. Porm com as novas tecnologias de reconhecimento de imagem que esto dando certo podem deix-las obsoletas. (Idem, 873) Sensores Proprioceptivos: Informam ao rob sobre seus prprios estados. Para medir a configurao de uma articulao o rob utiliza de decodificador de eixos que contam a revoluo de motores. Em robs mveis os decodificadores de eixos so utilizados para a odometria em que mede a distncia percorrida, funcionando somente para distncias curtas. (Ibidem, 873) Conforme RUSSEL & NORVIG (2004, 873) os efetuadores so os meios pelos quais os robs se movem e alteram seu corpo no ambiente. Os robs mveis possuem diversas formas de se locomoverem como rodas, esteiras e pernas. H robs mveis de trao diferencial em que possuem duas rodas ou esteiras uma de cada lado do rob que so acionadas independentemente uma da outra. Se as duas estiverem na mesma velocidade e mesma direo o rob ir pra frente se estiverem em sentido oposto o rob girar em torno do prprio eixo. Uma alternativa utilizar a trao sincronizada, no qual cada roda age independente em torno de seu prprio eixo, porm precisa-se de restries como as rodas devem apontar para a mesma direo e velocidades para evitar o caos. As pernas, diferente das rodas, conseguem andar em terrenos acidentados, porm em terrenos planos as pernas so mais lentas. J foram realizadas pesquisas com robs de uma, dez pernas, sendo construdos para caminhar, correr e at mesmo saltar. Outros robs mveis utilizam de diferentes mecanismos para se locomoverem com turbinas, propulsores e os dirigveis robticos utiliza-se de efeitos trmicos para se manterem no ar. (Idem, 874) Um rob, alm de usar sensores e efetuadores necessita tambm de um motor eltrico para fornecer energia para locomoo. Eles tambm precisam de um meio de comunicao, como rede sem fio. Alm de ter uma estrutura corporal para as peas serem encaixadas. (Ibidem, 875)

IA em Jogos A busca competitiva entre o homem e a mquina

- 48

2.3.2.2 Robs conhecidos


Sero apresentados a seguir alguns dos robs mais conhecidos: Spirit; Aibo. Spirit: Veculo que a NASA utiliza para a explorao juntamente com o Opportunity explora o terreno de marte analisando rochas e terreno e enviando imagens e vdeos de suas exploraes para a NASA (PIRES,Universidade de Coimbra, 2004) Aibo: Rob da Sony, no s interage com o dono como aprende com ele desenvolvendo uma personalidade nica, as aes podem mudar conforme o tempo como os ouros animais, esto disponveis para a venda somente no Japo e Estados Unidos.(MESSA & PAIM, 1999) Robtica a rea em que se desenvolve agentes autmatos fsicos utilizados para explorao espacial e locais onde o homem no conseguiria alcanar ou ficar como vulces e geleiras, na linha de montagem de carros, alm da rea domstica como guias de deficientes fsicos, babs e animais de estimao.

2.3.3 Sistemas Visuais


Segundo STAIRS & REYNOLDS (2006:424), sistemas de viso envolvem hardware e software que permitem os computadores capturar e armazenar e manipular imagens visuais. O departamento de justia dos Estados Unidos usa sistemas de viso para identificao de impresses digitais. A velocidade que o sistema percorre a base de dados para encontrar impresses digitais trouxe solues rpidas para casos antigos. (Idem, 424) Sistemas de viso so capazes tambm de reconhecer caractersticas faciais, Canesta uma empresa da Califrnia, usa raios infravermelhos para que seus computadores captem imagens tridimensionais de objetos. Os raios so direcionados ao objeto e refletidos de volta, a diferena no tempo da luz retornar d ao sistema a imagem do objeto tridimensional. (Ibidem, 424) Tambm podem ser usados juntamente com a robtica para dar viso aos robs. A viso aumenta a capacidade dos robs deixando tomar decises com base na entrada visual.

IA em Jogos A busca competitiva entre o homem e a mquina

- 49

Os robs com sistema visual podem reconhecer nas cores pretas, brancas e alguns tons de cinza, sem uma boa viso colorida ou tridimensional. (STAIRS & REYNOLDS, 2006:424) Outros sistemas se concentram apenas em algumas caractersticas de uma imagem ignorando o resto, vai demorar que um sistema possa ver e tirar concluses do modo de um humano. (STAIRS & REYNOLDS, 2006:424) rea de sistemas de viso a que d viso s mquinas, muito usada em robs para a tomada de deciso, alm de ser utilizada em sistemas biomtricos para reconhecimento de ris, e de peas defeituosas em linha de montagens.

2.3.4 Processamento de Linguagem Natural


Conforme STAIRS & REYNOLDS (2006:424), processamento de linguagem natural permite ao computador reconhecer comandos de voz em uma linguagem natural. Existem trs nveis para o reconhecimento: comandos (reconhece de dezenas a centenas de palavras), discreto (reconhece fala ditada e com pausas entre as palavras) e contnuo (reconhece a fala natural). Processamento de linguagem natural pode ser usado para recuperar informaes sem digitar comandos ou procurar palavras-chave. Pode-se falar em um microfone conectado ao computador e o computador converte a fala em arquivos de textos ou comandos. Sistemas simples conseguem associar uma palavra digitada a uma palavra falada pelo microfone, sistemas mais avanados no precisam gravar as palavras. A empresa Upstart Natural Machine est desenvolvendo um sistema em Java o IA verbal universal. Ela espera o beneficiamento de todos por tornar o cdigo aberto e disponvel. As corretoras de aes utilizam bastante os sistemas de linguagem natural. A Schwab usa uma mquina de linguagem natural para ajudar os seus clientes a navegar em seu site. A T. Rower Price usa reconhecimento de voz para que seus clientes obtenham dados de penses, aes, saldos de conta-corrente pelo telefone utilizando de comandos de voz simples, ela espera ainda que possa ser realizadas transaes pelo telefone futuramente. A TDWaterhouse usa uma mquina de linguagem natural para responder as dvidas dos clientes, isso fez cair a demanda de chamadas ao departamento de servios a clientes. (Idem, 424-425) A Hewlett-Packard usa um programa da SpechWorks em suas centrais de atendimento para a assistncia e reduo de custos. Uma pessoa em geral possui um vocabulrio de 20 mil palavras o sistema que a Hewlett-Packard usa possui um vocabulrio de 85 mil palavras. A SpeechWorks tem como clientes a FedEx e Continental Airlines. A empresa alega que seu

IA em Jogos A busca competitiva entre o homem e a mquina

- 50

software to bom que alguns usurios esquecem que esto falando com um computador e comeam a discutir sobre o clima ou resultados esportivos. (STAIRS & REYNOLDS, 2006:425) Processamento de Linguagem Natural muito usado para a rea de biometria como os sistemas visuais, para o reconhecimento de voz, diversas corretoras de aes utilizam para o reconhecimento de seu cliente e outras funcionalidades, os sistemas podem chegar a interpretar comandos de voz at falas naturalmente.

2.3.5 Sistemas de Aprendizado


rea da IA, onde h uma combinao de hardware e software permitindo que o computador reaja a situaes com base em seu feedback21, ou seja, extrair regras heursticas em grande massas de dados. Os algoritmos de aprendizado so interessantes, pois alm de modelarem os dados bem, fornecem regras de heursticas que explicam os padres existentes. Um dos algoritmos mais usados so os chamados algoritmos de particionamento sucessivo. Em que particionam a massa de dados vrias vezes formando subgrupos at o momento em que chegue ao ponto em que se consegue extrair regras heursticas sobre os padres encontrados. (CARVALHO, 2002:165) Normalmente, esses subgrupos so gerados atravs de uma regra heurstica aplicada em um grupo. Sendo assim a melhor forma de representar o particionamento sucessivo uma rvore binria chamada de rvore de deciso, pois em cada um de seus ns preciso tomar uma deciso para onde os dados vo. Com a rvore j totalmente definida qualquer dado novo pode ser classificado em algum subgrupo desde que ele seja inserido a partir do n raiz da rvore, ele vai passando pelas regras heursticas decidindo seu caminho at chegar ao n terminal conhecido de folha da rvore. (Idem, 165) As rvores de decises mais usadas so ID3 (ou C4.5) e CART, ambas buscam tornar os subgrupos cada vez mais homogneos com o objetivo de atingir classes de dados bem definidas e organizadas. O segredo est em como o algoritmo escolhe a regra para definir os subgrupos mais homogneos possvel. (Ibidem, 166) Tcnica muito utilizada na rea de redes neurais em que passa por um treinamento e em jogos eletrnicos como futebol e principalmente de estratgia em que o computador registra suas jogadas e resultados para que no futuro no cometa o mesmo erro.
Resposta, retorno de uma ao para que seja feita uma correo que futuramente reduz ou aumenta a reposta do sistema
21

IA em Jogos A busca competitiva entre o homem e a mquina

- 51

2.3.6 Redes Neurais Artificiais


Para FERNANDES (2005:57) as redes neurais artificiais podem ter vrias definies, porm as trs palavras-chave: neurnio, arquitetura e aprendizagem, requerem um entendimento, mais concentrado. Em qualquer definio de rede neural, o neurnio a unidade bsica da rede, a arquitetura a estrutura de como os neurnios so conectados e a aprendizagem um processo que adapta a rede de modo a realizar uma tarefa.

As Redes Neurais Artificiais so sistemas fsicos que podem adquirir, armazenar e utilizar conhecimentos experimentais, que podem alcanar uma boa performance, devido sua densa interconexo entre os ns da rede. Elas tambm so conhecidas por: modelos conexionistas, modelos de processamento paralelo distribudo e sistemas neuromorfolgicos (LIPPMANN 1997 apud FERNANDES 2005:57).

Atualmente, h um grande interesse em Redes Neurais Artificiais, psiclogos se interessam pelas semelhanas com a mente humana. Os pesquisadores de IA buscam nas redes neurais solues para o aprendizado de mquina. (FERNANDES, 2005:57)

2.3.6.1 Neurnio Artificial


Uma rede neural composta por vrias unidades de processamento (neurnios artificiais) conectadas por canais de comunicao que possuem um determinado peso. As unidades fazem operaes somente com os seus prprios dados recebidos pelos canais. A inteligncia da Rede Neural vem das interaes entre as unidades de processamento. (FERNANDES, 2005:59-60) Conforme FERNANDES (2005:60) McCulloch e Pitts em 1943 levantaram uma proposta sobre o funcionamento de um neurnio com os seguintes passos: Dados so entregues entrada; Cada dado multiplicado por um nmero, ou peso, que indica a sua influncia na sada da unidade; feita a soma ponderada dos produtos, resultando em um nvel de atividade; Se este nvel de atividade exceder certo limite (threshold22) a unidade produz uma determinada resposta de sada;
22

Valor mnimo de alguma quantidade

IA em Jogos A busca competitiva entre o homem e a mquina

- 52

Suponha que temos os seguintes valores de entrada X1,X2,...,Xp e com os seguintes pesos w1,w2,...,wp e um limitador t, que define valores booleanos23. Portanto, o neurnio ter a sada da seguinte forma. (FERNANDES, 2005:60) Ser feito a soma dos produtos obtidos entre os valores de entrada e os seus pesos correspondentes aps isso ser feito um teste junto ao limitador em que ser definido o nvel de atividade, ou seja o resultado da soma seja maior que o limitador o neurnio ser ativado com valor 1, seno ele ficar desativado com o valor de 0. (Idem, 60) Cada Neurnio capaz de processar um sinal de entrada e transform-lo em um sinal de sada.

2.3.6.2 Arquitetura
Segundo FERNANDES (2005:61) a Arquitetura de uma rede neural organizada em formas de camada em que o neurnio possa estar conectado com, outros neurnios. Existem trs camadas: Camada de Entrada; Camadas Intermedirias ou Escondidas Camada de Sada; Camada de Entrada: por onde obtm os dados. (Idem, 61) Camadas Intermedirias ou Escondidas: Onde realizada quase toda a regra de negcio, podem ser consideradas como extratoras de caractersticas. (Ibidem, 61) Camada de Sada: onde o resultado concludo e apresentado. (FERNANDES, 2005:61) As redes neurais podem ser identificadas pela direo pelo qual o valor do dado flui, sendo existente somente dois tipos. feedforward, e feedback. (Idem, 61) Nas redes feedforward os valores s seguem um caminho, comeando pela camada de entrada, passando pela camada intermediria at a camada de sada. Nas redes feedback , os sinais de entrada podem propagar de qualquer neurnio para qualquer outro neurnio. (Ibidem, 61) A Rede Neural especificada pela sua topologia, caractersticas dos ns e pelas regras de treinamento. Para ANDERSON (1972) um modelo de redes neurais dever constituir-se de

23

Valores verdadeiro ou falso

IA em Jogos A busca competitiva entre o homem e a mquina

- 53

uma rede de neurnios, relativamente autnomos, com capacidade de processamento. (FERNANDES, 2005:62) Os neurnios so ligados por conexes com pesos, que demonstra o grau de importncia conexo tem. Pontos positivos correspondem a um reforo do sinal, e pontos negativos corresponde ao fator inibio. (ANDERSON, 1972 apud FERNANDES, 2005:62)

2.3.6.3 Aprendizagem
A propriedade mais importante das Redes Neurais a habilidade de aprender seu ambiente e melhorar ainda o ambiente. (FERNANDES, 2005:62) A habilidade de aprender ocorre atravs de um processo de ajustes aplicados a seus pesos. O aprendizado chega ao fim quando a rede neural atinge uma soluo generalizada para o problema. (ACKLEY, 1985 apud FERNANDES, 2005:62) O algoritmo de aprendizado um conjunto de regras para a soluo de um problema de aprendizado. H muitos algoritmos especficos para determinados modelos de redes neurais que diferem entre si. (Op. Cit., 63) Uma rede Neural tem as seguintes formas de aprendizado: Aprendizado Supervisionado; Aprendizado No-Supervisionado; Reforo. Aprendizado Supervisionado: utilizado um agente externo exibindo a resposta para o padro de entrada. (FERNANDES, 2005:63) Aprendizado No-Supervisionado: quando no existe um agente externo apontando para as respostas correspondentes aos padres de entrada. (Idem, 63) Reforo: um crtico avalia a resposta fornecida pela rede. (Ibidem, 63) O algoritmo de aprendizado ocorre num ciclo onde todos os pares de entrada e sada so verificados um a um. (FERNANDES, 2005:63) Aps a execuo do algoritmo de aprendizado a rede neural deve corrigir os pesos de suas entradas, para isso existem dois modos: Modo Padro; Modo Batch.

IA em Jogos A busca competitiva entre o homem e a mquina

- 54

Modo Padro: A correo realizada aps cada apresentao do resultado de treinamento. Cada correo baseada somente no erro apresentado, podendo ter vrias correes em cada ciclo. (FERNANDES, 2005:63) Modo Batch: feita uma correo por ciclo. Os erros so apresentados para a rede, o erro mdio escolhido e usado para a realizao das correes. (Idem, 64) As redes neurais podem ser classificadas de acordo com o tipo de aprendizado que utiliza supervisionado, no-supervisionado. (HAYKIN, 1994 apud FERNANDES 2005:64)

2.3.6.4 Topologia
Uma rede neural deve possuir pelo menos duas camadas de neurnios a de entrada e a de sada, somente com isso a rede apresenta um desempenho limitado, portanto precisa-se de uma camada adicional (intermediria) onde todos os neurnios estejam ligados com todos os outros neurnios da camada vizinha, fazendo a comunicao unidirecional apresentando um comportamento esttico. (RUMMELHART, 1986 apud FERNANDES, 2005:72) Para Hecht-Nielsen (1987) com apenas uma camada intermediria a rede consegue extrair resultados a partir dos dados fornecidos. (FERNANDES, 2005:72) Segundo Cybenko (1989) so necessrias duas camadas intermedirias para obteno de resultados. Com a seguinte condio que a cada trs neurnios da primeira camada intermediaria, preciso um neurnio na segunda camada. (Idem, 72) A RNA de Hopfield (1982) apresenta comportamento dinmico e fluxo multidirecional, devido integrao total de seus neurnios, evitando a idia de camadas. Isso torna seu funcionamento complexo, tendo complicaes na fase de aprendizado ou de testes, seu uso para problemas de minimizao e otimizao de percursos. (Ibidem, 72) Independente da forma em que a Rede construda, quanto mais camadas de neurnios, melhor seu desempenho, pois a capacidade de aprendizado aumentada. Melhorando a preciso da rede de definir uma resposta (FERNANDES, 2005:73)

2.3.6.5 Etapas para Desenvolvimento


Segundo Gourney (1997), as etapas de desenvolvimento de uma aplicao de redes neurais so:

IA em Jogos A busca competitiva entre o homem e a mquina

- 55

Coleta de dados e separao em conjuntos; Configurao da rede; Treinamento; Teste; Integrao. Coleta de dados e separao em conjuntos: Esses dois primeiros passos requerem uma

anlise bem cuidadosa para reduzir erros e minimizar ambigidades nos dados. Alm disso os dados devem ser significativos englobando totalmente o problema, cobrindo tambm as excees. Esses dados so separados em dois tipos: dados de treinamento utilizados para o treinamento da rede e dados de teste utilizados para testarem o desempenho da rede. Podem ser feitas subdivises dentro desses grupos, para melhor classificar os dados. Determinados esses conjuntos, eles so colocados em ordem aleatria para evitar tendncias associativas quanto apresentao dos dados, alm de poderem ser pr-processados para uma melhor utilizao na rede. (FERNANDES, 2005:81) Configurao da rede: dividida em trs etapas: (i) Seleo do paradigma neural apropriado aplicao; (ii) Determinao da topologia da rede ser utilizada; (iii) Determinao de parmetros do algoritmo de treinamento; A realizao dessas etapas possui dicas e truques, normalmente a escolha entre quais usarem feita de forma emprica. A configurao de uma rede requer bastante experincia dos projetistas. (Idem, 81) Treinamento: Ser ajustado o peso das conexes. Sendo importante considerar aspectos como inicializao de uma rede, a escolha de certos valores iniciais dos pesos pode diminuir o tempo de treinamento; o modo, o mais usado o padro, pois tem um menor armazenamento de dados e pouco suscetvel a problemas; e o tempo de treinamento, vrios fatores influenciam, a sua durao, preciso ter algum critrio de parada. O treinamento deve ser parado no momento em que a rede ter uma capacidade boa de generalizao e os erros forem bem menores. (Ibidem, 82) Teste: Utilizado para determinar a performance da rede, podendo ser estendido para testes de comportamento quanto a entrada de dados em que pode-se ter um dado muito pequeno sendo ignorado ou dados maiores causando um over-training24 na rede. (FERNANDES, 2005:82-83) Integrao: A Rede Neural se integra com um sistema depois de treinada e avaliada. O sistema deve ter facilidades na aquisio de dados para um melhor funcionamento da rede
24

Excesso de treinamento

IA em Jogos A busca competitiva entre o homem e a mquina

- 56

neural, alm de periodicamente monitorar o seu desempenho para realizar manutenes da rede ou indicar aos projetistas a necessidade de um re-treinamento. (FERNANDES, 2005:83)

2.3.6.6 Aplicao
Conforme (TATIBANA & KAETSU, GSI UEM, 2005) redes neurais podem ser aplicadas em diversas reas, Grupos de investimentos utilizam redes neurais para previses de mercado. Outra aplicao o de reconhecimento tico de caracteres, alm de controles de processos industriais, aplicaes climticas, identificao de fraude de carto de crdito. (Idem, 2005) O Banco Mellon Bank dos EUA utilizou um sistema de redes neurais que diminuram os prejuzos, conseguindo cobrir o investimento do banco em seis meses. (Ibidem, 2005) Redes Neurais utilizada para grandes aplicaes com vrias finalidades, como Minerao de Dados, em que busca um perfil em uma grande massa de dados, vrios cientistas contriburam para a construo de redes neurais apresentando modelos de neurnios e de redes neurais.

IA em Jogos A busca competitiva entre o homem e a mquina

- 57

3 Histria dos Jogos Eletrnicos


Para a melhor compreenso do que um jogo precisamos saber de onde eles surgiram e com que propsito, fazendo um levantamento histrico dos jogos. Vrias pessoas com mais de 20 anos j tiveram seus olhos lacrimejando ao jogar Super Mario World (Nintendo, 1991), Donkey Kong Country (Rareware, 1994) e Sonic (SEGA, 1990) e para os mais velhos, jogos como Enduro (Activision, 1983), Pac-Man (Midway, 1980) e Pong (Atari, 1972). Agora em pleno incio do sculo XXI o mercado de jogos tem um grande interesse em um grfico perfeito, efeitos sonoros quase que prximo da realidade. Esquecendo a jogabilidade e o desafio, somente em alguns jogos estas caractersticas aparecem com certo destaque.

Ns precisamos de grficos. Ns precisamos de uma boa interface, limpeza visual para as informaes que constaro no jogo, e de grficos que faam isso. Mas quando um projetista de jogo questionado como o jogo dele far a diferena, espero que ele fale de jogabilidade, diverso e criatividade em oposio a uma idia de que simplesmente foca em como ele bom visualmente (Sid Meyer, Edge Magazine, 1997 apud PERUCIA e.t al., 2005:34).

Para compreender como os Jogos chegaram a esse ponto de tecnologia e o que eles contriburam para a sociedade necessrio conhecer sua histria e evoluo.

3.1 A Primeira Era


Segundo Merkel (2005:21,22), em 1952, A. S. Davis escreveu seu PhD (Doutorado) na universidade de Cambridge demonstrando um jogo da velha, rodando no mainframe EDSAC (Eletronic Delay System Automatic Computer).

IA em Jogos A busca competitiva entre o homem e a mquina

- 58

Segundo Normand (RetroSpace, 2001), em 1958 o fsico Willy Higinbotham desenvolveu em suas horas vagas o primeiro jogo, no osciloscpio25 do observatrio de BrokHaven EUA. No MIT, em 1961, um grupo de pesquisadores chefiados por Stephen Russel desenvolve o Spacewar, ele era executado no mainframe26 PDP-1 (MERKEL, 2005:22). Para Cunha (2001) Os primeiros jogos foram desenvolvidos para mainframes com o objetivo de testarem algoritmos de busca, como clssicos de xadrez e damas, a preocupao dos desenvolvedores era mais o visual e descartava as tcnicas de IA e a jogabilidade. No incio os idealizadores dos primeiros jogos, criavam com o intuito de testar lgica de programao ou de aumentar a popularidade do local onde trabalhavam at o momento os jogos no tinham fundamento comercial. Para Duarte (1998:34) o primeiro console da histria foi o Odissey 100 da empresa Magnavox. Em 1971, Nolan Bushnell desenvolveu uma verso arcade de Spacewar chamada de Computer Space, no ano seguinte ele funda a Atari, principal empresa de entretenimento da histria, seu primeiro jogo foi o Pong que foi uma mania na poca. (NORMAND, RetroSpace:2001). Em 1976, a Farchild lanou o Channel F, primeiro console a comear a utilizar cartuchos, essa tendncia seguida at hoje. (Idem, RetroSpace:2001) Em 1977, a RCA lanou o Studio II que vinha com quatro jogos na memria principal, alm dos jogos extras vendido em cartuchos. (Ibidem, RetroSpace:2001) Aps a Atari fazer sucesso com o Pong, diversas empresas comearam a investir em projetos para o mercado de jogos, a principal novidade foi o cartucho trazido pela Farchild em que continha o jogo, isso facilitava ao usurio que poderia trocar o jogo no console sem muita complicao. Em 1976, a Warner Communications comprou a Atari. Ao final do ano seguinte lanado o Atari 2600, Nolan Bushnell comea a lanar diversos jogos, pela primeira vez na histria lanado um jogo porn. (Op. Cit, RetroSpace:2001) Em desenvolvimento na mesma poca do Atari 2600, a Bally lanou o Professional Arcade, nessa mesma poca a Magnavox lana uma verso melhorada do Odissey denominada Odissey 2. (NORMAND, RetroSpace:2001)

25 26

Instrumento de medida eletrnica, usado para identificar comprimento de onda eletromagntica. Computador de grande porte

IA em Jogos A busca competitiva entre o homem e a mquina

- 59

O nome do primeiro game porttil da histria foi Microvision, desenvolvido pela Milton Bradley no final dos anos 70 sendo o pioneiro dos games portteis27. (NORMAND, RetroSpace:2001) Em 1980 a Mattel, lana o Intellivision (Intelligent Television), grande inimigo do Atari 2600, dois anos depois a Emerson lana o Arcdia 2001. (Idem, RetroSpace:2001) Em 1982 a Conneticut Leather Company (Companhia de Couro de Conneticut), lana o ColecoVision considerado o melhor console de todos os tempos. No mesmo ano a Milton Bradley lana o Vectrex, projetado para mostrar imagens vetoriais ao invs de pixels28 como a maioria dos consoles da poca. (Ibidem, Retrospace:2001) Ameaada pelo IntelliVision e com o lanamento do ColecoVision a Atari desenvolve uma atualizao do Atari 2600 denominada de Atari 5200. (NORMAND, RetroSpace:2001) Em 1983 o grande nmero de jogos ruins no mercado, trazida pela Atari, espantou os consumidores e no ano seguinte aconteceu o crash dos Jogos, quebrando todas as empresas do ramo. (Idem, Retrospace:2001) Para FERRARI (N-Planet, 2006) o crash dos Jogos aconteceu por dois fatores importantes, a Atari lanou diversos jogos ruins para o mercado concorrendo com a nova empresa Activision e os computadores pessoais estavam em alta sendo melhor comprar um computador que entreteria as crianas e ajudaria nas pesquisas de trabalho, alm os pais no trabalho de casa. Ao final da primeira era o mercado americano comeava a ficar saturado com os diversos jogos lanados pela Atari dando um efeito repulsivo aos consumidores. Os computadores tambm estavam comeando a se popularizarem sendo barateados. Esses dois fatores acabaram quebrando todas as empresas do ramo. Este fato ficou conhecido como o crash dos Jogos fazendo aluso quebra da bolsa de Nova Iorque em 1922.

3.2 A Segunda Era


Enquanto acontecia o crash dos Jogos no Japo a Microsoft juntamente com a Ascii lana o computador MSX considerado mais um vdeo game do que um computador normal. (NORMAND, Retrospace:2001) Nessa mesma poca no Japo a Nintendo lana o Nintendo Famicom (Family Computer) conhecido como NES (Nintendo Entertainment System). A partir desse momento
27 28

Game porttil todo game que pode ser facilmente utilizado em qualquer lugar e a qualquer momento. O menor elemento em um dispositivo de imagem, em que pode ser atribuda uma cor.

IA em Jogos A busca competitiva entre o homem e a mquina

- 60

as empresas japonesas comeam a dominar o mercado de games. (NORMAND, RetroSpace:2001) Com o fracasso do Atari 5200 e o grande sucesso que a Nintendo estava fazendo com o NES a Atari ficou desesperada e iniciou uma pesquisa intensiva sobre o que os usurios queriam em um console. Resultando no Atari 7800 em 1986. (Idem, RetroSpace:2001) Embalada pelo sucesso do NES, a Nintendo resolve investir seus lucros na rea de portteis, ento surge o Game Boy. (Ibidem, Retrospace:2001) Com o grande sucesso da Nintendo nesse novo mercado de jogos domsticos, a SEGA (Service Games) gigante japonesa de fliperamas, lana o Master System, tendo a finalidade de competir com o NES. (NORMAND, RetroSpace:2001) Em 1987, a empresa NEC lana o PC Engine um dos consoles mais amados de todos os tempos, foi lanado com a difcil tarefa de superar Nintendo Famicom (NES), fazendo sucesso somente no Japo. (Idem, RetroSpace:2001) Em 1989, a inexperiente SNK, resolve entrar no mercado de games e lana uma poderosa placa para arcade chamada MVS, permitindo a troca dos jogos atravs de cartuchos. A placa tinha o poder de produzir grficos 2D muito bonitos para a poca, fazendo muito sucesso, permitindo que a SNK lance seu primeiro console o Neo Geo, fazendo sucesso somente no Japo. (Ibidem, RetroSpace:2001) Aps esses fatos o mercado de Jogos comea a se erguer novamente e cada vez mais as grandes empresas de eletrnicos, principalmente as Japonesas comeam a investir no segmento. A Sega vendo o Master System perder para o NES e tambm para o PC Engine, resolve contra atacar lanando o Mega Drive primeiro console de 16 bits. (Op. Cit, RetroSpace:2001) A Nintendo Alarmada com a popularidade do PC Engine e com o novssimo console da SEGA, lana o sucessor do NES o Super Famicom mais conhecido como SNES (Super Nintendo Entertainment System). (NORMAND, RetroSpace:2001) Nessa mesma poca a Atari sempre atrs da Nintendo, lanou o porttil Lynx, baseado no Handy, era o melhor da poca com uma capacidade equiparada ao SNES, com isso a Atari conseguiu uma grande margem de lucro. (Idem, RetroSpace:2001) Embalada com o sucesso do PC Engine no Japo e a popularizao do Game Boy da Nintendo, a NEC lanou o porttil PC Engine GT em 1990. Uma verso compacta do PC Engine. (Ibidem, RetroSpace:2001)

IA em Jogos A busca competitiva entre o homem e a mquina

- 61

Em 1991 a Sega lanou o Game Gear, uma cpia descarada do Game Boy, porm sendo superior ao Game Boy. (NORMAND, RetroSpace:2001) No final de 1991 a Philips lanou o CD-I, um padro de CD onde os usurios poderiam ter vdeos, imagens e sons em um disco de 8 cm. (Idem, RetroSpace:2001) Nesse momento a Nintendo e a SEGA se tornam lideres do mercado e comeam uma competio entre si lanando diversos perifricos para os seus consoles. A fabricante de computadores canadense Commodore, vendo seu grande sucesso na Europa com computadores especializados para contedo multimdia e principalmente para jogos, lana em 1993 o AMIGA CD32 baseado no computador AMIGA 1200. (NORMAND, RetroSpace:2001) Em setembro de 1993, surgiu a 3DO Company idia de Trip Hawkins, fundador da Eletronic Arts, criou um padro de hardware nico para jogos. (Idem, RetroSpace:2001) Em outubro de 1993, surgiu o LaserActive, mais uma tentativa de definir um padro para jogos. Formato desenvolvido em conjunto entre a NEC, Sega e Pioneer. (Ibidem, RetroSpace:2001) Muito atrs no mercado, a Atari lana em 1993, o console chamado Jaguar. (Normand, RetroSpace:2001) O incio dos anos 90 foi a poca de ouro dos Jogos Eletrnicos, os consumidores esqueceram o crash dos Jogos que aconteceu no incio dos anos 80, e as empresas cada vez mais zelavam pela qualidade dos jogos que eram oferecidos.

3.3 A Terceira Era


Em 1994 a SEGA lanou o SEGA Saturn em substituio ao Mega Drive, foi o primeiro a utilizar ambientes 3D. (Op. Cit., RetroSpace:2001) Em Novembro de 1994 a Nintendo apresentou um novo porttil para revolucionar a forma de Jogar, embalado pela realidade virtual, o Virtual Boy novo porttil da Nintendo podia exibir grficos 3D. (NORMAND, RetroSpace: 2001) O Virtual Boy no fez sucesso, pois era preciso de uma rea plana para se jogar, cansava a vista e no houve suporte por parte da Nintendo. (Idem, RetroSpace:2001) Em dezembro de 1994 a Sony lanou o Playstation, fazendo uma parceria com a LSI para o desenvolvimento dos chips para o novo console, para que ele pudesse competir com os consoles da poca como 3DO, Jaguar e Saturn. (Ibidem, RetroSpace:2001)

IA em Jogos A busca competitiva entre o homem e a mquina

- 62

O Playstation impressionou o mundo com grficos superiores e a tima jogabilidade, tendo um grande suporte das softhouses devido facilidade de desenvolvimento. (NORMAND, RetroSpace:2001) Em 1995 a Sega lana o Nomad outro porttil, seu objetivo era ganhar do Game Boy, seu hardware era um clone do Mega Drive, possua seis botes, uma tela matriz e um cabo para ligar em outro Nomad, era compatvel com 99% dos jogos do Mega Drive. (Idem, RetroSpace:2001) A Nintendo lana em 1996 o Nintendo 64 console com 64 bits fazendo sucesso com as diversas Franquias criadas at o momento como Mario (Shigeru Miyamoto,1981), Donkey Kong (Shigeru Miyamoto,1981) e Zelda (Shigeru Miyamoto,1986). (Ibidem,

RetroSpace:2001) A Nintendo, a SEGA e a Sony lanam diversos perifricos alguns inovadores, encabeada pela Sony. Foram lanados perifricos de armazenamento, dispositivos de vibrao no controle entre outros. (NORMAND, RetroSpace:2001) Em 1996 a Sega j percebia que o Playstation iria dominar o mercado e vendo que a Nintendo estava lanando o N64, bem mais poderoso e com franquias de renome como Mario, Zelda e Pokmon (Satoshi Tajiri, 1996), inicia o desenvolvimento de seu prximo console, ento em Maio 1998 foi lanado o DreamCast, com o perifrico VMU uma mistura de carto de memria e um mini-videogame. (Idem, RetroSpace:2001) Embalada com o sucesso do Game Boy, a Tiger, entra no mercado de portteis lanando o Game.com em 1997. Possua tela sensvel ao toque, calendrio, agenda e calculadora, acesso com Internet e envio de e-mails. (Ibidem, RetroSpace:2001) A SNK vendo a Nintendo dominar o mercado de portteis, lana o Neo Geo Pocket em 1998, utilizando o seu charme de jogos 2D e do velho Neo Geo, o porttil possua 16 bits. (NORMAND, RetroSpace:2001) No final de 1999 a Sony j soltava detalhes do sucessor do Playstation, o nome ficou sendo Playstation 2 e prometia uma revoluo no entretenimento domstico. Ento em 4 de mao de 2000 ele lanado no Japo, o console aceitava dois formatos de mdia CD e DVD.(Villiegas, 2000:14-15) Na poca a Nintendo lanava o Game Boy Color compatvel com o Game Boy, e a SNK lana logo em seguida o Neo Geo Pocket Color, tambm compatvel com o modelo anterior. (Op. Cit , RetroSpace:2001) Em 2000 a Nintendo na feira de games Nintendo SpaceWorld, exibe o GameCube. As grandes franquias da Nintendo como Zelda, Super Metroid e Mario ajudam o GameCube a

IA em Jogos A busca competitiva entre o homem e a mquina

- 63

crescer nas vendas. Utilizando uma mdia menor que o DVD denominado de miniDVD feito exclusivamente para o console. (PANCHERI & MORATO, UOL jogos: 2005) Nos Estados Unidos a Microsoft lana o XBOX, sendo esgotado em poucas semanas. (Idem, UOL Jogos: 2005) Em 2003 a Nintendo lana o Game Boy Advance SP, uma nova verso do Game Boy, o lanamento foi um sucesso, no conseguindo a atender a demanda a Nintendo em nota a Imprensa pediu desculpas para os consumidores. A Nokia lana no mesmo ano o N-Gage um celular-videogame, alm de ser celular possvel escutar MP3 e jogar, em Novembro a Sony mostra imagens de seu porttil o PSP (PlayStation Portable) com a capacidade de rodar MP3, vdeos alm dos jogos. (Ibidem, UOL jogos: 2005) Em 2004 a Nintendo mostra novidades de seu novo porttil Nintendo DS, possuindo duas telas, as softhouses demonstraram interesse em desenvolver jogos para o porttil. No final do mesmo ano a Sony lana o PSP. (PANCHERI & MORATO, UOL jogos: 2005) Na poca atual os consoles que dominam o mercado so pertencentes a essas trs empresas Sony, Nintendo e Microsoft depois do lanamento de seus consoles cada inovao que uma empresa lanava as outras duas lanavam seguidamente. A prxima gerao de games j comeou com a Microsoft lanando em 2005 o XBOX 360, sucessor do XBOX, com grandes inovaes como um disco rgido. A Nintendo anuncia o desenvolvimento do novo console com o nome de Wii e a Sony comea a mostrar demos de seu Playstation 3. (Op. Cit, UOL Jogos: 2005) O Playstation 3 foi lanado em 13 de novembro de 2006, nesse primeiro lote saram alguns com defeito no Japo de no conseguirem ler os jogos de seus antecessores PS2 e PSone, alm de ser um dos mais caros. Um dos maiores medos da empresa que a reserva de um milho de consoles j produzidas sejam esgotadas rapidamente nos Estados Unidos. (Martin, YahooNoticias, 2006) O Nintendo Wii foi lanado em 19 de novembro de 2006, trazendo como novidade o Wiimote controle remoto sensvel ao movimento. As trs grandes empresas do mercado esto com estratgias de Marketing distintas. A Nintendo est vendendo o seu console com um preo bem baixo sendo um dos mais baratos custando US$250,00. A multinacional acredita que o novo controle sensvel ao movimento gera uma interao com o jogo bem maior que existe at agora. O controle fora a pessoa a jogar com o corpo e usa-lo como um taco de golfe. (MARTIN, YahooNoticias, 2006)

IA em Jogos A busca competitiva entre o homem e a mquina

- 64

A Sony investe num poder de computao muito superior trazendo grficos realistas e efeitos sonoros avanados, afirma-se que o processador far a cabea de todos. (MARTIN, YahooNoticias, 2006) J a Microsoft investe que o XBOX 360 um potente centro de lazer e entretenimento da casa podendo reproduzir vdeos, msicas, alm de ter a capacidade de se integrar com a cmera digital, computadores e a prpria Internet. A Microsoft ainda aposta na tecnologia do XBOX live, onde pode-se baixar filmes, msicas, ou jogar via rede on-line. (Idem, YahooNoticias, 2006) Essa nova gerao de videogames ser marcada pelo custo beneficio a empresa que conseguir vender por um preo baixo, mas que seja equivalente ao que se espera do console ir comear com o p direito.

IA em Jogos A busca competitiva entre o homem e a mquina

- 65

4. Jogos Eletrnicos
Visto a histria dos Jogos Eletrnicos e suas trajetrias, parece que fcil desenvolver um jogo e comear a vender, porm preciso ter uma grande base em conhecimentos especficos de multimdia e tambm de gesto de projetos, alm de conhecer seu pblico alvo e o andamento do mercado.

4.1 Desenvolvimento de Jogos Eletrnicos


Segundo PERCIA et. al. (2005:22-25), as empresas desenvolvedoras de jogos tm a imagem de um ambiente de trabalho desorganizado, em que cada um trabalha do jeito que bem entende. O negcio de desenvolvimento de jogos no levado a srio pelas pessoas e nem pelos prprios desenvolvedores, a imagem que se tem um grupo de desenvolvedores enfurnados em um ambiente passando horas programando sem planejamento ou objetivos claros, dando incio a um processo conhecido como code like hell29. Esse modelo no incio funcionava at o momento em que a indstria comeou a se profissionalizar, e esse paradigma teve que ser quebrado. Os publishers30 exigiam prazos cada vez menores e oramentos limitados. A competitividade comeou e as equipes mais organizadas comearam a se destacar. (Idem, 25) A melhor forma de se iniciar no desenvolvimento de um jogo executar essas duas aes pensar e planejar. Qualquer mudana no jogo durante a fase de produo do jogo pode ser fatal chegando a finalizar o projeto. No entanto quanto mais tempo usar na fase de planejamento menor sero as chances de isso acontecer. (Ibidem, 23)

29 30

Programar como no inferno ou programar que nem um doido Publicadores de jogos

IA em Jogos A busca competitiva entre o homem e a mquina

- 66

4.1.1 Equipe de Desenvolvimento


Para PERCIA et. al. (2005:26), atualmente os Jogos Eletrnicos so como grandes produes de cinema com oramentos de milhes de dlares. Para criar um jogo de ltima gerao e que faa sucesso preciso trs anos e uma equipe de cerca de 20 a 50 pessoas com os seguintes perfis: Programadores; Artistas; Projetistas de nveis/fases; Projetistas de Jogos; Planejador de software; Arquiteto Chefe; Gerente de Projeto; Msicos e sonoplastas; Testadores; Programadores: responsveis pelo desenvolvimento do jogo. Geralmente vindo de cursos de Informtica ou Cincia da Computao, eles implementam tcnicas de computao grfica, inteligncia artificial, efeitos sonoros e interao para implementar o jogo. (PERCIA et. al.,2005:26) Artistas: responsveis pelo Layout, so criadores dos objetos, personagens, ilustraes e animaes. (Idem, 26) Projetistas de nveis/fases: vindo das mais diversas reas, so responsveis pela estruturao dos nveis dos jogos estruturando seus desafios e surpresas. Dependendo do tamanho da empresa o projetista de nveis pode ficar responsvel pela fase de design ou atuar em todas as fases. (Ibidem, 27) Projetistas de Jogos: Conhecidos como Game Designers, por estarem envolvidos em quase todas as reas da produo de um jogo so fundamentais durante a construo dos projetos. Possui a responsabilidade da elaborao e cumprimento do design document, documento contendo caractersticas e especificaes do jogo, precisando manter a comunicao com todos os membros da equipe para o cumprimento do design document. (PERCIA et. al., 2005:27)

IA em Jogos A busca competitiva entre o homem e a mquina

- 67

Planejador de Software: conhecido como Software Planner, tem a tarefa de dividir o projeto desenvolvido pelo game designer em conjuntos de requisitos tcnicos e estimar o tempo e esforo para implementao das caractersticas. (PERCIA et. al., 2005:27) Arquiteto-chefe: Conhecido como Lead Architect: tem a tarefa de trabalhar em conjunto com o Software Planner para produzir mdulos especificados com base nos requisitos tcnicos levantados pelo Software Planner. O Lead Architect responsvel pela arquitetura geral do projeto. (Idem, 2005:27) Gerente de Projeto: Conhecido como Project Manager, possui a tarefa de balancear a carga de trabalho gerada pelo Software Planner e Lead Architect produzindo um cronograma com as tarefas de cada membro da equipe e aps monitorar, cobrar essas tarefas. Se possvel o Project Manager no deve estar envolvido com a parte operacional do desenvolvimento podendo ter uma ampla viso da situao. (Ibidem, 27) Msicos e sonoplastas: vindos das reas de arte e msica so responsveis pela trilha sonora, vozes e feitos sonoros. (PERCIA et. al., 2005:27) Testadores: incumbidos de testar o jogo, procurando falhas e erros (bugs), entram no processo de desenvolvimento quando o jogo est quase pronto na fase de Beta Testing, costuma-se usar pessoas que nunca jogaram o jogo ou que no participaram da fase de desenvolvimento. A equipe que est desenvolvendo o jogo fica viciada nos procedimentos corretos do jogo e no encontra erros importantes. (Idem, 27) A Equipe de desenvolvimento de um jogo grande, pois so diversas responsabilidades e o desenvolvimento de um jogo envolve vrias reas como audiovisuais e de informtica, alm de gesto para gerenciar o projeto.

4.1.2 Ciclo de Desenvolvimento


Conforme PERCIA et. al. (2005:28), o ciclo iniciado com uma reunio em que discutido todas as idias de jogos expostas por todos os participantes. Cada idia analisada em diversos aspectos como originalidade, pblico-alvo, inovao, plataforma e possibilidades de mercado. So necessrias diversas dessas reunies at que se defina um projeto de jogo para se investir. Escolhido o projeto inicia o processo de game design. O game design o processo onde as caractersticas principais do jogo como jogabilidade, controles, interfaces, personagens, armas, golpes, inimigos, fases so descritas. Durante essa fase elaborado o design document, um documento que descreve todas as

IA em Jogos A busca competitiva entre o homem e a mquina

- 68

caractersticas detalhadamente, funcionando como um roteiro de cinema. (PERCIA et. al., 2005:28) Durante a fase de game design os artistas comeam a trabalhar na concepo dos personagens e na aparncia visual do jogo. Nessa fase os programadores fazem a modelagem do software e implementam a estrutura bsica de classes do produto. (Idem, 28) Com o design document pronto o gerente de projeto tira uma idia do tamanho do projeto e tempo para o seu desenvolvimento. Os diretores de arte e programao definem suas metas as equipes e passam os cronogramas ao gerente de projeto para que ele organize um cronograma geral com as metas de cada equipe e para cada integrante da equipe. (Ibidem, 28) Em projetos pequenos, apenas o design document necessrio para os artistas e programadores a iniciarem desenvolver o projeto. Em projetos maiores e que possuem muitas fases e misses, necessrio que cada fase tenha um planejamento para que programadores e artistas tenham a clara idia de como iro trabalhar. (PERCIA et. al., 2005:28) O level design um mapa geral com os desafios que o jogador deve cumprir para completar a fase. Serve de referncia para que os artistas trabalhem na criao dos cenrios de cada fase. Enquanto no estiver pronto o documento os artistas e programadores trabalham em cima de caractersticas mais gerais do jogo. Com o documento concludo, eles comeam a dedicar na produo das fases. (Idem, 28) Dependendo do tamanho da empresa so geradas verses intermedirias a cada semana ou ms, permitindo ao gerente de projeto acompanhar a evoluo do jogo e possa cobrar as metas de cada um. Essas verses possibilitam a deteco de bugs que so corrigidos para a prxima verso, que acaba a aumentar a estabilidade do produto at a verso final. (Ibidem, 29) O projeto evolui a cada verso gerada, at chegar a verso Beta. A verso Beta contm todas as fases do jogo e toda a interatividade. Quando a verso Beta concluda inicia-se o ciclo de deteco de bugs e coleta de sugestes para melhora do produto (Beta Testing). Este processo gera refinamentos tanto na programao quanto na arte do jogo. Esses refinamentos continuam at a concluso da verso Gold o produto final. (PERCIA et. al., 2005:29) Para desenvolver um jogo a equipe deve estar em sintonia para cumprir o cronograma geral imposto pelo gerente de projeto, seguindo o cronograma e o game design document corretamente o jogo ser desenvolvido com perfeio.

IA em Jogos A busca competitiva entre o homem e a mquina

- 69

4.1.3 Game Design


Para PERCIA et. al. (2005:29), antes de iniciar o desenvolvimento do jogo, preciso que seu projeto esteja bem definido. Para isso existe o game design. Existem vrias definies para game design, a principal que o game design determina a jogabilidade, as escolhas que o jogador ter dentro do jogo e as variaes que suas escolhas podem fazer ao resto do jogo Inclui tambm o que faz o jogador perder ou ganhar, como ele vai controlar o jogo e quais informaes sero exibidas para ele, em geral o game design descreve cada detalhe de como funcionar o jogo. A seguir uma lista dos principais conceitos que o game design deve abordar: Idia; Rascunhos do jogo; Detalhamento do jogo; Game Design Document. Idia: A idia de um Jogo surge de um pequeno conceito que deve ser expandido com tcnicas de brainstorm31. Muitas vezes boas idias surgem de pensamentos que no momento parecem ridculos. Por esse motivo, deve-se evitar jogar fora uma idia antes de ela estiver bem madura. Questes como Qual o objetivo do Jogo?, O que o jogador ter de fazer,Como ele vai fazer?, O que tornar este jogo divertido? podem facilitar o processo de desenvolvimento das idias. (PERCIA et. al., 2005:29) Rascunhos do jogo: Criar desenhos que mostrem algumas fases, personagens e itens com pequenas descries para cada um. Faa alguns rascunhos de telas, menus, fluxo de telas. Nesta fase interessante realizar testes de jogabilidade, que podem ser feitos sem nenhuma linha de cdigo, dependendo do tipo do jogo, como um jogo de Puzzle32 por exemplo, o Tetris (1985), pode-se usar pedaos de papel que representam as peas do jogo. (Idem, 30) Detalhamento do jogo: Nesse momento o jogo fica mais detalhado e complexo. necessrio pensar em cada detalhe importante e escrever algo a esse respeito. O desenvolvedor soberano ao fazer um jogo, ou seja, se no programar um detalhe que foi definido pelo game design ele no acontecer e vice-versa. (Ibidem, 32) Game Design Document: Agora o prximo passo juntar todos os conceitos em um grande documento conhecido como design document, ele como um script de um filme, que informa todos os detalhes do jogo. Escrever um design document muito trabalhoso, pois se
31 32

tempestade de idias Quebra-cabea

IA em Jogos A busca competitiva entre o homem e a mquina

- 70

deve detalhar todo o jogo, porm, muito til para repensar decises j tomadas, validar alguns conceitos e suprimir ou adicionar regras. O jogo pode ser visualizado com antecedncia. Esse documento muito exigido pelos publishers para analisar um jogo demo. Assim eles podem ter idia de como ser o produto final. Normalmente estes documentos constam o cronograma, as metas e o oramento para o projeto. (PERCIA et. al., 2005:32-33) Game design a fase mais importante do desenvolvimento de um jogo nela cria-se o game design document, nessa fase discutido diversos pontos do projeto para ser posto em prtico logo aps.

4.1.4 Regras bsicas para um bom jogo


Para PERCIA et. al. (2005:34), bons grficos e sons no so suficientes para um jogo. Muitos jogos com recursos de ltima gerao no venderam bem. Outros no vendem por falta de marketing ou por no agradarem o pblico-alvo. Conhecer o jogador fundamental para o sucesso de um jogo. O segredo um bom game design e, acima de tudo, o jogo deve ser consistente e divertido. Para isso existem algumas regras bsicas para criar um bom jogo: Comece com uma boa idia; Escreva o design no papel; Comece pequeno; Cuidar do pblico; Use uma nova idia; Seja flexvel; Projete seu jogo; Pense em sries; Contedo tudo; D objetivo ao jogador. Comece com uma boa idia: Pensar no jogo, fazendo brainstorms com base nele, criando com coerncia e lgica. Mostram a idia para os jogadores. No desanimam com as criticas o objetivo coletar novas idias que podem ser aplicadas ao jogo caso necessrio. (PERCIA et. al., 2005:34)

IA em Jogos A busca competitiva entre o homem e a mquina

- 71

Escreva o design no papel: Colocar a idia no papel, descrevendo elementos, regras, alguns desenhos, fluxos de telas, storyboards33 etc. Fica mais fcil perceber se o jogo bom ou ruim se pode ser melhorado, se vivel. Muitos dos jogos no saram do papel. (PERCIA et. al., 2005:35) Comece pequeno: No criar o que no conhece, ou nem sabe se possvel fazer. Optar pelo simples Muitas empresas entram em falncia por terem problemas de concepo e desenvolvimento em projetos muito audaciosos. (Idem, 2005:36) Cuidar do pblico: Desenvolver o jogo para entreter o pblico-alvo. Fazendo o jogo encanta-los, invocando as emoes deles. No agradar a todos e sim o pblico-alvo. (Ibidem, 36) Use uma nova idia: Desenvolver uma idia prpria e criativa. Inspirar em outros jogos sem copi-los. Adicione ingredientes pessoais, ter idias mesmo que sejam ridculas num primeiro momento. (PERCIA et. al., 2005:36) Seja flexvel: Quando est desenvolvendo um jogo, pode ser que ele no funcione do jeito que foi planejado. Sistema grfico atual no suporta os efeitos ou falta de tempo ou recursos para implement-lo. Adaptar o jogo a realidade. (Idem, 36) Projete seu jogo: Pensar em que tipo de tecnologia estar disponvel no momento que o jogo seja lanado. No inserir recursos de ltima gerao, pois ningum ter acesso. Fazer o jogo para a plataforma padro de mercado quando o jogo for lanado. (Ibidem, 36) Pense em sries: Guardar idias para seqncias e expanses. Ter em mente outras verses dos jogos. Podendo reutilizar cdigo e arte para as prximas verses. Projete o jogo para ter expanses futuras. (PERCIA et. al., 2005:36) Contedo tudo: Oferecer grficos, sons, jogabilidade. Ter certeza que o jogo divertido. (Idem, 36) D objetivo ao jogador: Jogos sem objetivos so odiveis. Dando sentido ao jogo, para que o jogador saiba para onde est indo. Premiar o jogador para cada objetivo conquistado. (Ibidem, 36) Essas so regras bsicas para que qualquer jogo consiga sucesso, se seguidas a risca o jogos ser um grande sucesso entre o seu pblico chegando a se tornar mais tarde um clssico da rea.

33

Seqncias de cenas cinematogrficas

IA em Jogos A busca competitiva entre o homem e a mquina

- 72

4.1.5 O que os jogadores querem e esperam


Conforme PERCIA et. al. (2005:37), os desenvolvedores de jogos devem pensar no pblico-alvo para isso eles devem abordar uma lista atingindo os que os jogadores querem e esperam de um jogo: Desafio; Socializar; Respeito; Experincia emocional; Fantasia; Entender os limites do mundo; Direo; Imerso; Falha; No gostam de repetio; No deixar o jogador trancado; Querem fazer e no ver. Desafio: a verdadeira essncia do jogo. Os desafios geram experincias de aprendizado alm, de emoes ao serem superados. (PERCIA et. al., 2005:37) Socializar: jogos em geral geram experincias sociais com amigos ou famlia. Videogames oferecem singleplayer34 e multiplayer35 e ambos so sociveis. (Idem, 37) Respeito: jogadores querem ganhar e obter, com o resultado disso, respeito. Quando esto entre os melhores do ranking de um jogo, sentem-se orgulhosos. Isso gera disputas acirradas em torno dos jogos. (Ibidem, 37) Experincia emocional: Todos procuram um tipo de emoo. Adrenalina em Quake (Id Software,1996), Suspense e medo em Resident Evil (CAPCOM, 1996), Herosmo em Mario. (PERCIA et. al., 2005:38) Fantasia: Os jogadores querem escapar do mundo atual para uma realidade diferente. O jogador poder voar, atirar, mergulhar, matar aliengenas. Podendo praticar aes proibidas no nosso mundo, como em Grand Theft Auto (Rokstar North,1997), em que se pode ser um ladro de carro e assassino. (Ibidem, 38)
34 35

Somente uma pessoa joga at o final do jogo Vrios jogadores participam simultaneamente do jogo.

IA em Jogos A busca competitiva entre o homem e a mquina

- 73

Entender os limites do mundo: o que o jogador pode ou no pode fazer deve estar bem explicito. (PERCIA et. al., 2005:38) Direo: Sempre mostrar a direo ao jogador. Dando dicas para que ele saiba onde chegar. Dando objetivos e no deixando ele perdido. (Idem, 38) Imerso:Fazer o jogador entrar no mundo do jogo em todos os sentidos. (Ibidem, 38) Falha: Fazer os jogadores falharem algumas vezes. Usualmente quando o jogo fcil o jogador para. Porm no pode exagerar na dificuldade, pois o jogador pode desistir de jog-lo. (PERCIA et. al., 2005:38) No gostam de repetio: No oferecer desafios iguais ao jogador. Isso torna o jogo desagradvel e cansativo. No fazer o jogador retornar ao incio do jogo se ele falhar em um ponto adiante. (Idem, 38) No deixar o jogador trancado: No colocar um buraco em uma fase que impea o jogador de continuar. (Ibidem, 38) Querem fazer e no ver: Evitar colocar cutscenes36 longos, tal ao tira a interatividade do jogo. Se for necessrio permitir que os jogadores possam cancelar a sua execuo. (PERCIA et. al., 39) Em complemento s regras de um bom jogo, se a equipe seguir as dicas do que um jogador quer de um jogo aumenta as possibilidades do jogo se tornar um grande clssico.

4.1.6 Puzzles
Para PERCIA (2005,39), a utilizao de puzzles fundamental para qualquer jogo, porm seu uso deve ser bem balanceado, para no torn-los chatos e entediantes. Deve-se colocar quando necessrio e tendo coerncia com a temtica do jogo. Myst (Cyan, 1993) um Grande puzzle, como Indiana Jones and the Fate of Atlantis (Lucas Arts, 1994), j em jogos como Duke Nukem (3D Realms, 1996), Doom (Id Software, 1993) e Quake, os puzzles esto na forma de interruptores que abrem portas equipamentos que devem ser usados em determinados momentos. O bom desse puzzles que esto inseridos no jogo to claramente que o jogador nem percebe que est resolvendo-os. (Idem, 39) Os quebra-cabeas num jogo utilizado para que ele no fique maante, tendo s um tipo de ao como sair atirando pra qualquer lado.

36

Tcnica utilizada para contar uma parte da histria do jogo

IA em Jogos A busca competitiva entre o homem e a mquina

- 74

4.2 Arquitetura de um Jogo


Conforme PERCIA (2005: 40), o processo de arquitetar comea logo aps a etapa de game design. um processo que proporciona uma viso de alto nvel do software. Um jogo considerado um software, ento qualquer padro de desenvolvimento para softwares se encaixa para o desenvolvimento de um jogo.

4.2.1 Reusabilidade
A palavra j diz tudo, deve-se arquitetar o software para que futuramente possa se aproveitar do cdigo j desenvolvido. Para isso utiliza-se de bibliotecas que podem ser usadas em diversos projetos. (PERCIA et. al., 2005:42) Existem diversas maneiras de se utilizar isso, sendo com libraries37 ou com o conceito de objetos COM, que uma estrutura de mdulos que funcionam em diversas aplicaes, independente da linguagem de programao. Esta arquitetura permite a atualizao das bibliotecas sem perder as funcionalidades antigas. O DirectX da Microsoft um exemplo desta arquitetura. (Idem, 43) Nos jogos essas bibliotecas so chamadas de engines, pois servem como um motor. Atualmente existem diversas engines que renem diversos recursos para quase todas as finalidades de um jogo completo como grficos, sons, entradas, rede entre outros. H engines especficas para fsica e deteco de coliso. (Ibidem, 43) A utilizao desta tcnica reduz o tempo de desenvolvimento dos jogos seguintes, pois alguns cdigos no precisam ser implementados, pois aproveitado o cdigo gerado do primeiro projeto.

4.2.1.1 Engines
Segundo SANTEE (2005: 381), o termo mais conhecido por qualquer desenvolvedor de jogos engine, conhecido como motor. Pode-se dizer que o pilar sustentador de um jogo, e no um programa que faz jogos como o 3D Game Studio. Grande parte dos motores constituda de cdigo, geralmente armazenados em um arquivo DLL Instrues como desenhe o personagem, ilumine a superfcie se est
37

Conjunto de algoritmos com uma finalidade me comum agrupados

IA em Jogos A busca competitiva entre o homem e a mquina

- 75

apontada para a luz entre outras, ento elas so chamadas e executadas no jogo. (SANTEE, 2005:381) Eles so desenvolvidos em muitas vezes por linguagens de programao de alta performance, como C++. Os cdigos das rotinas criadas so compiladas criando DLLs ou LIBs, arquivos binrios que armazenam todo o cdigo compilado, para ser utilizado pelo jogo. (Idem, 381) Existem tambm engines do tipo software, ou framework38, onde oferece aplicaes com interface visual ou simples linguagens de programao/scripting39 para a criao e edio dos eventos e efeitos. (Ibidem, 381) Diversas caractersticas peculiares so encontradas ao analisarmos os diversificados tipos de engines. A maioria deles envolve programao de baixo nvel, como Half-Life 2 (Valve Software,1998), desenvolvida para executar apenas uma ou poucas rotinas. Processar o controle de fsica e coliso, renderizao, animao facial e controle de rede so algumas das funes que as engines especializadas possuem. (SANTEE, 2005:382) Engines outro conceito de reusabilidade, porm totalmente voltada para o desenvolvimento de jogos, uma das principais caractersticas a diminuio do cdigo por exemplo, onde preciso mais de cem linhas para desenhar uma figura na tela, pode ser feito em cinco linhas.

4.2.2 Arquitetando o Jogo


Segundo PERCIA et. al. (2005:45), arquitetar um jogo o processo mais complicado no desenvolvimento, requer que projetistas modelem o sistema por completo. Envolvendo estruturas e fluxo de dados, define interaes entre todos os componentes do sistema. A principal utilidade para que toda a equipe tenha uma viso do que est sendo desenvolvido. Ela dividida em duas partes: abstrao de hardware e abstrao de software, ambas as camadas so divididas em subsistemas.

4.2.2.1 Abstrao de Hardware


A idia a de facilitar o uso de recursos de acesso ao hardware como grficos, dispositivos de entrada (teclado, mouse, joystick40), som, rede, etc., ou seja, tudo que esteja
38 39

Estrutura de suporte definida, onde um projeto de software pode ser trabalhado em cima Linguagens de programao interpretadas

IA em Jogos A busca competitiva entre o homem e a mquina

- 76

relacionado ao hardware da plataforma de desenvolvimento. Este conceito muito til, pelo motivo em que o desenvolvedor no precisa se preocupar com as configuraes e condies do hardware, utilizando apenas de comandos intuitivos como windowed o jogo ser exibido em uma janela no computador ou fullscreen o jogo ser exibido em tela cheia, a camada de abstrao far as configuraes para esses dois modos liberando o programador de realizar outros ajustes. (PERCIA et. al., 2005: 46) O isolamento do hardware na camada de abstrao permite as seguintes vantagens para a arquitetura do jogo: Isola especificidades de hardware; Facilita a atualizao da camada de hardware sem interferir no cdigo do jogo; Facilita portar o jogo para outra plataforma; Permite o desenvolvimento de componentes reusveis de fcil uso e configurao; Permite ao desenvolvedor preocupar-se somente com o jogo; Torna o cdigo do jogo mais limpo e consistente. A abstrao de Hardware facilita e muito o desenvolvedor, tirando dele o peso de se preocupar no hardware em que o jogo est sendo colocado.

4.2.2.2 Abstrao do jogo


A abstrao do jogo serve para ter uma viso global de como funcionar o jogo, com os seus subsistemas e interaes, sem se preocupar com o hardware. No existe um padro para o desenho dessa abstrao o desenvolvedor far da melhor forma em que o restante da equipe de desenvolvimento compreenda. (PERCIA et. al., 46-47) Em um nvel bsico de abstrao, os jogos apresentam os seguintes subsistemas: Interface (menus, botes, controles etc); Tratador de eventos (identificar uma tecla pressionada, um boto abaixado etc); Gerenciador de dados (grficos, fases e miscelneas); Gerenciador de Fsica (movimento, velocidade, coliso, gravidade etc); Engine grfica (exibio de imagens, rotao, efeitos especiais etc); Engine sonora (efeitos sonoros); Engine lgica (o corao do jogo);

40

Dispositivo de entrada utilizado somente para jogos

IA em Jogos A busca competitiva entre o homem e a mquina

- 77

Camadas de abstrao de hardware (interfaces com grficos, sons e entradas do hardware); Sistema de configurao do jogo (opes de jogo, salvamento de jogo etc.); Sistema de menus; Sistema de ajuda; Sistema de msica. A figura abaixo exemplifica a arquitetura bsica de um jogo, demonstrando a

integrao entre a abstrao do jogo com a de hardware. Pode-se adicionar ou retirar itens dependendo do tipo de jogo.

Figura 1: Arquitetura bsica de um jogo


FONTE: Adaptado de PERCIA et. al. (2005:47)

A Abstrao do jogo facilita o desenvolvedor. Quanto mais completa e organizada for a abstrao mais fcil fica o desenvolvimento do jogo.

IA em Jogos A busca competitiva entre o homem e a mquina

- 78

4.2.3 Mquinas de Estados Finitos (FSM)


Conforme PERCIA et. al. (2005:47), mquinas de estados finitos, ou Finit State Machines (FSM), so ferramentas importantes para o planejamento de um jogo. O objetivo principal modelar o funcionamento do jogo antes da codificao. Por isso voc j deve ter uma viso bem clara do funcionamento do jogo. Precisa pensar de forma modular. Por exemplo, um jogo vai ter uma abertura, um menu com as opes Jogar, Opes e Sair e uma fase. Considerar cada item como um estado do jogo. (PERCIA et. al., 2005:48) A figura abaixo exemplo de uma mquina de estados bem simplificada.

Figura 2: Exemplo de uma Mquina de Estados Finitos


FONTE: Adaptado de PERCIA et. al. (2005:48)

De acordo com a mquina observa-se a apresentao de cinco estados de mquinas: Estado Abertura; Estado Menu; Estado Opes; Estado Fase; Estado Pausa;

IA em Jogos A busca competitiva entre o homem e a mquina

- 79

Estado Abertura: estado inicial do jogo, normalmente ser exibido o nome do jogo e o produtor. De acordo com a regra a tela permanecer durante cinco segundos ou at que o jogador pressione ENTER. (PERCIA et. al.,2005:48) Estado Menu: representa o menu do jogo oferecendo trs opes simulando trs botes, se o jogador pressionar Jogar, a mquina ir para o estado fase, se pressionar Opes, ir para o estado Opes, caso escolha Sair, a mquina de estados termina e encerra o jogo. (Idem, 48) Estado Opes: mantm o jogo em uma tela de opes at o jogador pressionar a tecla ESC ou ENTER. Quando isso acontecer, o jogo retornara para o estado de Menu. (Ibidem, 48) Estado Fase: Onde o jogo realmente acontece. Caso seja pressionada a tecla P o jogo ser pausado. Caso o jogador pressione a tecla ESC, a mquina retornar para o estado Menu. (PERCIA et. al.,2005:48) Para PERCIA et al. (2005:49), um jogo no s isso, o que se fez aqui foi uma demonstrao em alto nvel do jogo. O que se faz aps isso expandir cada estado macro em mquinas de estados menores. Geralmente um jogo contm inmeras mquinas de estados finitos e so muito teis, principalmente pela facilidade de codificao sendo uma ferramenta muito poderosa, podendo ser utilizada para o planejamento e desenvolvimento do jogo. (Idem, 29) As mquinas de estados finitos servem para a arquitetura do jogo, em que o desenvolvedor desenhar em diagramas os acontecimentos (estados) do jogo, vendo a interligao entre eles.

4.3 Programao de um Jogo


Sero apresentadas os principais conceitos para o desenvolvimento de um jogo de duas dimenses ou jogo 2D.

4.3.1 Grficos
Segundo PERCIA et. al. (2005:63), antigamente o processamento de vdeo era feito pelo prprio processador do computador. Hoje, o processo foi mudado passando a ser a placa de vdeo que processa o vdeo deixando o CPU mais livre para outras tarefas. Monitores possuem diversos modos de vdeo. Eles so compostos por trs atributos: Resoluo;

IA em Jogos A busca competitiva entre o homem e a mquina

- 80

Formato; Taxa de atualizao. Resoluo (resolution): define a quantidade de pixels na tela esse nmero obtido pela

multiplicao entre largura e altura, quanto mais pixels possuir, melhor ser a visualizao de imagens, porm maior ser o consumo de memria e processamento. (PERCIA et. al., 2005:65) Formato (format): define a profundidade de cores (color depth ou bit depth) de um pixel, ou seja a quantidade de bits que o pixel usar. Quanto maior a quantidade de cores, maior ser o processamento. (Idem, 65) Freqncia (refresh rate): nmero de vezes por segundo (Hertz) que atualizado o monitor, ficando entre uma faixa de 60 a 85 Hertz. (Ibidem, 65) As cores dos jogos eletrnicos so formadas por uma combinao de trs cores vermelho, verde e azul, variando as intensidades dessas trs cores obtm-se todas as cores. Os computadores identificam uma cor dando um valor numrico chamado de tripla RGB(Red, Green, Blue). Essa tripla um conjunto de trs valores de 8 bits onde cada valor representa a intensidade de suar cor correspondente os valores variam de RGB(0,0,0) a

RGB(255,255,255). (PERCIA et. al., 2005:65)

4.3.1.1 Superfcies
Segundo PERCIA et. al. (2005:67), superfcies so regies de memria que guardam dados de imagens lidas de arquivos bitmaps41. Podem ser alocadas na memria da placa de vdeo ou na memria do sistema, sendo estas mais lentas, pois so processadas pelo processador. A superfcie no precisa ter imagens prontas para serem visualizadas: podem-se guardar animaes, tiles, fontes ou pedaos de um cenrio. A superfcie gerenciada como uma folha virtual em que a aplicao embaralha, copia, combina e rearranja as imagens com outras superfcies compondo assim o ambiente visual do jogo, produzindo animaes. As superfcies so divididas em trs categorias: Superfcie primria; Superfcie secundria; Superfcie offscreen.

41

Mapa de bits

IA em Jogos A busca competitiva entre o homem e a mquina

- 81

Superfcie primria: conhecida como front buffer, a rea visvel do monitor, gerada diretamente na placa de vdeo. Qualquer dado escrito nela aparecer na tela imediatamente. (PERCIA et. al., 2005:67) Superfcie secundria: conhecida como back buffer, utilizada da mesma forma que a primria. Sendo utilizada como espao de trabalho para gerao de imagens, que posteriormente so enviadas para a superfcie primria. (Idem, 67) Superfcie offscreen: superfcie usada para guardar imagens de sprites, itens do jogo ou outros objetos. Os dados so arranjados e copiados para o back buffer e posteriormente mostrado na tela. Um jogo pode ter mais de uma superfcie offscreen podendo assumir um determinado tamanho de 8, 16, 32 bits. (Ibidem, 67) Criam-se as superfcies em ordem hierrquica primeira a primria aps a secundria e em seguida cria-se as superfcies offscreen. (PERCIA et. al., 2005:67) A figura abaixo demonstra duas superfcies offscreen, pois as superfcies back buffer e front buffer so a prpria tela do jogo, no precisa ser demonstrada aqui.

Figura 3: Exemplo de superfcie offscreen


FONTE: Adaptado de PERCIA et. al., 2005:67

A superfcie um recurso grfico em que o desenvolvedor desenhar o quadro do jogo e depois enviar para a tela, a prpia tela uma superfcie, ou seja, superfcie uma camada

IA em Jogos A busca competitiva entre o homem e a mquina

- 82

do jogo em que so guardados os arquivos grficos para serem usados ou exibidos posteriormente.

4.3.1.2 Funo Blit


Para PERCIA et. al. (2005:68), a funo mais importante do processamento grfico. Sendo uma cpia de dados de uma superfcie para outra, em que se define o frame de origem e o frame de destino que ser o local em que ser tirado uma cpia e o local para onde ser gravada a cpia respectivamente. Em funes Blits s vezes utiliza-se parmetros nulos, sem valor nenhum de endereo, indicando a cpia de toda a superfcie. Se o tamanho dos frames de origem e de destino for diferente ser feita uma escala permitindo a imagem aumentar ou diminuir. (PERCIA et. al., 2005:68) A figura abaixo demonstra a funo Blit com a escala aumentada e escala reduzida, alm de sem escala.

Figura 4: Exemplo da funo Blit


FONTE: Adaptado de PERCIA et. al., 2005:68-69

IA em Jogos A busca competitiva entre o homem e a mquina

- 83

A funo Blit a mais importante para jogos 2D, com ela que o desenvolvedor desenhar cada quadro do jogo.

4.3.1.3 Transparncia
Segundo PERCIA et. al. (2005:69), uma das principais funes de processamento grfico de um jogo a transparncia. Ele utilizado quando necessrio exibir imagens que possuem regies transparentes. Para isso definida uma cor denominada como color key ou cor-chave. Todos os pixels dessa cor no sero copiados para o quadro de destino dando o efeito de transparncia. A figura abaixo demonstra a funo Blit utilizando o recurso de transparncia, perceba que a cor-chave a rosa.

Figura 5: Exemplo de Transparncia


FONTE: Adaptado de PERCIA et. al., 2005:69

A Transparncia uma funo a mais da Blit para que o desenvolvedor possa trabalhar com imagens que no tem o fundo transparente, normalmente escolhe-se como cor de fundo a cor rosa.

IA em Jogos A busca competitiva entre o homem e a mquina

- 84

4.3.1.4 Espelhamento
Para PERCIA et. al. (2005:70), espelhamento ou mirroring, uma tcnica de espelhar a imagem. Esse efeito obtido pela inverso dos pixels da imagem a ser desenhada em um ou dois eixos (X e Y). Essa tcnica pode ser aplicada junto com a funo blit passando um parmetro indicando o espelhamento. A figura abaixo demonstra a funo Blit com o recurso de espelhamento.

Figura 6: Exemplo de Mirroring


FONTE: Adaptado de Percia et. al., 2005:70

4.3.1.5 Tcnicas de Animao


Segundo PERCIA et. al. (2005:70-71), existem duas principais tcnicas de animao para jogos a page flipping e double buffering ambas utilizam a superfcie back buffer para desenhar as imagens da animao, pois se desenharmos diretamente na superfcie front buffer, ocorrer um efeito indesejado chamado de flicker.

IA em Jogos A busca competitiva entre o homem e a mquina

- 85

4.3.1.5.1 Efeito flicker


Conforme PERCIA et. al. (2005:71), o monitor um tubo de raios catdicos, ou cathode-ray tube(CRT), que contem um canho de eltrons que reflete tudo que est escrito na superfcie primria. Quando o canho de eltrons chega ao fim de uma linha, ele desliga e segue em direo ao inicio da prxima linha para recomear a exibir a cena. Este intervalo de tempo chamado de Horizontal Blank ou HBlank. Quando o canho chega ao fim da ltima linha ele retorna para o inicio da primeira linha para recomear a operao o intervalo de tempo gerado nessa operao chamado de Vertical Blank ou VBlank. (Idem, 71) O efeito flicker ocorre justamente porque os dados, presentes na superfcie primria so atualizados com uma velocidade maior da do canho. Ocorrendo assim o canho de eltrons comear a desenhar um quadro de uma animao de um objeto e quando estiver terminando desenhar outro quadro, desenhando na tela de forma assncrona. (Ibidem, 71) A figura abaixo demonstra uma situao do efeito flicker.

Figura 7: Exemplo do efeito flicker


FONTE: Adaptado de PERCIA et. al., 2005:72

A soluo para esse problema fazer uma sincronizao da superfcie primria com o canho do monitor, ou seja, a escrita na superfcie primaria deve ser feita somente quando o canho parar de desenhar na tela. Esse momento ser somente em intervalos VBlank. Isto garante que o front buffer ser atualizado somente quando o monitor estiver parado e retornando para recomear o desenho. (PERCIA et. al., 2005:72) Para essa soluo temos duas tcnicas a Page Flipping e a Double Buffering

IA em Jogos A busca competitiva entre o homem e a mquina

- 86

4.3.1.5.2 Page Flipping


Conforme PERCIA et. al. (2005:73), essa tcnica consiste dos seguintes passos: Desenhar as imagens do jogo no back buffer; Quando for gerado um VBlank do monitor, fazer o back buffer virar o front buffer; Repetir a primeira ao. Desta forma, quando o canho estiver em seu VBlank, o front buffer torna-se o back buffer e vice-versa, garantindo que o canho tenha as imagens que no vo ser alterados At o prximo VBlank. (Idem, 73) A tcnica alterar o endereo de memria das duas superfcies alternadamente para que o canho sempre pegue a superfcie em que nada vai ser escrito at o prximo VBlank. Essa tcnica usada somente em modo tela cheia. (Ibidem, 73) A figura abaixo esquematiza o funcionamento do page flipping.

Figura 8: Esquema do Page Flipping


FONTE: Adaptado de PERCIA et. al., 2005:73

4.3.1.5.3 Double Buffering


Para PERCIA et. al. (2005:73), a tcnica do Double Buffering, consiste em ter as duas superfcies, em que na back buffer, todas as imagens do jogo so desenhadas l, E ao

IA em Jogos A busca competitiva entre o homem e a mquina

- 87

final do lao do jogo, tudo passado para o front buffer fazendo uma cpia de dados. Essa tcnica permite a visualizao no modo janela. A figura abaixo esquematiza o funcionamento do double buffering.

Figura 9: Esquema do Double buffering


FONTE: Adaptado de PERCIA et. al., 2005:74

4.3.1.6 Paleta
Segundo PERCIA et. al. (2005:75), Paleta um mecanismo utilizado pelos programadores para economizar memria. Em uma imagem sem paleta, o buffer de memria contm todos os dados dos pixels da imagem. Quanto maiores forem as dimenses da imagem e maior for o bit depth42, maior ser a quantidade de memria utilizada para guardar a imagem. Com uma imagem paletizada em vez do buffer conter os dados dos pixels da imagem ele possui ndices da tripla RGB. Isto reduz o consumo de memria, porque em vez de serem gastos os 3 bytes em um pixel gasto 1 byte correspondendo o ndice da tripla na paleta. (Idem, 75) Este mtodo resume-se em reduzir o custo computacional. Porm hoje em dia com as mquinas atuais e perifricos grficos bons, no mais necessria a utilizao desta tcnica. (Ibidem, 75) O recurso de paleta j est sendo deixado para trs, porm uma tima opo para reduzir o consumo de memria deixando mais leve o jogo, mesmo que seja por uma quantidade mnima.

42

Nmeros de bits para cada pixel

IA em Jogos A busca competitiva entre o homem e a mquina

- 88

4.3.1.7 Formato de pixel (pixel format)


Conforme PERCIA et. al. (2005:76), cada pixel representado pela tripla RGB (red, green, blue). O nmero de cores possveis determinado pelo nmero de bits de cada componente. Por exemplo, um RGB de 16 bits utiliza-se dos 16 bits para representar as cores possveis sendo 5 bits para o vermelho, 6 bits para o verde e 5 bits para o azul.

4.3.2 Tiles, Bricks e Layers


No desenvolvimento de jogos com duas dimenses, tem-se conhecimento dessas trs estruturas tiles, bricks, layers, so estruturas utilizadas para a montagem geral dos jogos.

4.3.2.1 Tiles
So imagens adicionadas em um cenrio e divididas em pedaos iguais. Elas so utilizadas pelas layers para a construo dos cenrios. Jogos como Super Mario Bros tem seus cenrios construdos com pequenos blocos que se repetem. (PERCIA et. al., 2005:83) A figura abaixo d um exemplo de Tiles.

Figura 10: Exemplo de Tiles


FONTE: PERCIA et. al., 2005

4.3.2.2 Bricks
So estruturas que descrevem para a layers a disposio dos tiles que a compem. O brick contm dois ndices um da layer e o outro do tile. Cada layer possui uma matriz de bricks que so desenhados na tela. (PERCIA et. al., 2005:84)

IA em Jogos A busca competitiva entre o homem e a mquina

- 89

A figura abaixo demonstra a utilizao de bricks, percebe-se que dois esto com valores nulos, ou seja, sem nenhum tile para ser exibido naquele local.

Figura 11: Exemplo da utilizao de bricks


FONTE: Adaptado de PERCIA et. al., 2005:85

4.3.2.3 Layers
So camadas de desenho que so compostas por uma matriz de bricks que so utilizados para desenhar os cenrios e outras telas do jogo. As layers sempre preencham a tela inteira do jogo, caso a layer seja menor, ser replicada at atingir toda a tela do jogo. (PERCIA et. al., 2005:85) A figura abaixo exemplifica uma layer, os pontos vermelhos e pretos sero substitudos por tiles, gerando assim o quadro do jogo.

Figura 12: Exemplo de Layer


FONTE: Adaptado de PERCIA et. al., 2005:85

Essas trs estruturas tiles, bricks e layers so muito importantes para a realizao de um jogo 2D.

IA em Jogos A busca competitiva entre o homem e a mquina

- 90

4.3.3 Sprites
Conforme (PERCIA et. al., 2005:99), so estruturas com imagens prprias permitindo a criao de animao e o livre posicionamento na tela. Todos os objetos que possuem animao ou movimento no jogo so chamados sprites. O sprite sempre tem uma imagem padro, podendo ter vrios conjuntos de animaes configuradas. A figura abaixo d um exemplo de sprites, todos os objetos que esto marcados na cena um sprite.

Figura 13: Exemplo de Sprites


FONTE: Adaptado de PERCIA et. al., 2005:99

4.3.3.1 Animao de um Sprite


Segundo (PERCIA et. al., 2005:102), a animao de um Sprite uma seqncia de quadros desenhados um atrs do outro em um intervalo de tempo constante. Tendo dois tipos de animao: Animao Contnua; Animao Finita. Animao Contnua: A principal caracterstica desta animao a sua continuidade, ou seja, a animao infinita, tendo o seguinte padro, exibir a seqncia de quadros at o final; ao chegar o ltimo quadro, votar ao primeiro, realizando um ciclo. (Idem, 107-108) Animao Finita: Semelhante a animao continua porm chegando ao ltimo quadro ela para. (Ibidem, 108)

IA em Jogos A busca competitiva entre o homem e a mquina

- 91

A figura abaixo demonstra quadros para os dois tipos de animao, a animao continua possui quatro quadros podendo ser exibidos em um ciclo, j a animao finita possui sete quadros sendo o ltimo quadro a ser exibido a destruio do objeto.

Figura 14: Animao Contnua e Finita


FONTE: PERCIA et. al., 2005:108

Os sprites representam os personagens e itens do jogo podendo ser movimentados via programao ou pelo prprio jogador via comandos do dispositivo de entrada conectado ao computador ou console.

4.3.4 Dispositivos de Entrada


Conforme PERCIA et. al. (2005:109), um dos principais requerimentos para um jogo a captura de entradas do jogador. Os dispositivos mais comuns so teclado, mouse, joystick ou gamepad com ou sem force feedback, controladores de carro, de vo e capacetes de realidade virtual. Um jogo deve ser capaz de interpretar as entradas dos usurios, refletindo uma interao do jogo com o usurio. Essa interao ocorre quando o jogador envia comandos por um dispositivo de entrada no computador ou vdeo game e o jogo responde. A seguir um exemplo de algoritmo para o tratamento dos dispositivos de entrada. SE (tecla A pressionada){ Move o jogador para a esquerda }

IA em Jogos A busca competitiva entre o homem e a mquina

- 92

SE (tecla D pressionada){ Move jogador para direita } SE (tecla ALT pressionada e tecla F4 pressionada){ Finaliza o jogo Fecha a aplicao } Para a manipulao de entradas fundamental a capacidade de manipular adequadamente os eventos dos dispositivos. Sendo trs eventos principais mais utilizados em jogos: Tecla Abaixada; Tecla Pressionada; Tecla Largada. Tecla Abaixada: Este evento indica apenas que uma tecla foi pressionada, independente do intervalo de tempo em que isso ocorreu. Pode ser utilizado para a movimentao de personagens, enquanto a tecla a estiver abaixada ir para a esquerda. (PERCIA et. al.,2005:110) Tecla Pressionada: Refere-se ao momento em que a tecla pressionada. Muito utilizada em jogos em que a ao deve ocorrer somente uma vez ao pressionar uma tecla. Como, o personagem deve dar um tiro somente quando pressionar a tecla ctrl. Utiliza-se o evento de tecla abaixada o jogador teria um tiro com um comportamento de metralhadora. (PERCIA et. al.,2005:110) Tecla Largada: Refere ao momento especifico em que uma tecla largada, significando que ela estava abaixada um momento antes e agora no. Ela muito utilizada em sistemas de menus dos jogos. (Idem, 110) A utilizao dos dispositivos de entrada importante, pois so com eles que o jogador ir interagir com o jogo, controlando seu personagem para realizar suas aes.

4.3.5 Som
Para PERCIA et. al., (2005:114), uma das caractersticas mais importantes de um jogo sua ambientao musical. Os recursos de udio do vida ao jogo, deixando a experincia de jog-lo mais valiosa e emocionante. A produo sonora deve ser valorizada,

IA em Jogos A busca competitiva entre o homem e a mquina

- 93

pois os sons tambm podem enjoar o jogador ou atrapalh-lo se a msica no estiver de acordo com a temtica do jogo.

4.3.5.1 Buffers de Som


No momento em que um arquivo sonoro lido pelo computador, um buffer de memria criado. Buffers so blocos de memria onde guardam os dados de um determinado som, podendo ser uma msica, um efeito sonoro ou outro rudo desejvel em um jogo. Esses sons podem ser tantos carregados diretamente na placa de som ou na memria. (PERCIA et. al., 2005:117) Os sons colocados na placa de som so rapidamente usados pelo hardware, e sons alocados na memria so mais lentos pois precisam passar para o hardware. (Idem, 117) Existem dois tipos de buffers de som, o buffer secundrio e o buffer primrio.

4.3.5.1.1 Buffer secundrio


Conforme PERCIA et. al. (2005:117), buffers secundrios de som a regio da memria que guarda um som alocado. Existem dois tipos de buffers secundrios. Buffers esttico; Buffers sob demanda. Buffer esttico: Onde o som pequeno e pode ser totalmente armazenado na memria, esses buffers ficam no hardware da placa de som, pois ele deve fazer uma reposta rpida quando requisitado. Ele muito utilizado para efeitos sonoros simples como tiros,ou pulo do personagem. (PERCIA et. al., 2005:117) Buffer sob demanda: Usado geralmente para arquivos de som muito grande, como uma msica. Se um jogo tem seis msicas cada uma com 50 MegaBytes de tamanho, dando 300 megabytes de RAM ou da prpria placa de vdeo, para reduzir isso utiliza-se o streaming, em que consiste em criar um pequeno buffer, que alimentado com a msica que est na HD periodicamente. Esse tipo de buffer tem um conceito de circular em que quando acaba o buffer retorna rea o inicio, esperando outro anuncio para continuar o processo. (Idem, 117)

IA em Jogos A busca competitiva entre o homem e a mquina

- 94

4.3.5.1.2 Buffer primrio


Para PERCIA et. al. (2005:119), buffer primrio o primeiro buffer a ser carregado pelo jogo. Representa a mistura (mixer) de sons que pode ser criado em software e hardware, o mixer permite escutar os sons simultaneamente, pela placa de som. Podendo ser escutados as msicas, efeitos sonoros e etc. Toda vez que um som tocado, o buffer secundrio enviado ao primrio e somado com ele, que ento passado para o chip DAC (Digital Analogic Converter) para ser tocado finalmente. Pode-se tambm configurar a qualidade do som reproduzido pelo jogo definindo suas caractersticas no buffer primrio, pois todos os sons enviados para ele sero convertidos para o seu formato. (Idem, 119) Embora o buffer primrio, reproduza tudo em loop, ele s receber os dados do buffer secundrio quando houver uma requisio para a reproduo do udio. (Ibidem, 119) O som de um jogo deve ser tratado em especial, pois a msica deve ser envolvente, seno o jogador pode enjoar com ela e para de jogar, vrios jogos so famosos por suas trilhas outros no chegam a ser famosos por causa da m escolha das msicas.

4.3.6 Tratamento de tempo


Segundo PERCIA et. al. (2005:126), o gerenciamento de tempo para jogos vital. Sendo Realizado corretamente pode dar vrios benefcios, como economia de memria e processamento, centralizao de funes e facilidade em trabalhar com funes de fsica e simulaes. O grande objetivo deste conceito determinar o valor do intervalo de tempo entre o quadro atual e o quadro anterior do jogo e utilizar essa informao para realizar o tratamento necessrio no quadro atual. (PERCIA et. al., 2005:126)

4.3.6.1 Gerenciador de Tempo


Conforme PERCIA et. al. (2005:126), para obter o intervalo de tempo preciso obter o tempo do sistema, cada sistema possui uma maneira de marcar o tempo, geralmente medido em segundos ou milisegundos.

IA em Jogos A busca competitiva entre o homem e a mquina

- 95

Para obter esse intervalo entre os quadros, subtrai-se o tempo atual com o tempo armazenado no quadro anterior. (PERCIA, 128)

4.3.6.2 Taxa de Quadros


Para PERCIA et. al. (2005:126), a taxa de quadros de um jogo o nmero de quadros que o jogo consegue exibir em um segundo. Essa medida conhecida como FPS ou frames per second, indicando os nmeros de quadros exibidos por segundo, esse valor varia de 30 a 200 quadros normalmente, as simulaes utilizam esse padro para realizao de testes.

4.3.6.3 Acumuladores de Tempo


Segundo PERCIA et. al. (2005:129), uma situao muito comum em jogos ter que esperar um determinado intervalo de tempo para a realizao de uma ao, por exemplo: Inimigo que atira em intervalos de 5 segundos; Item que congela o jogador por 3 segundos; Uma mensagem que pisca em intervalos de 200 milisegundos. Para facilitar o tratamento dessas aes utiliza-se uma estrutura que conta o tempo e informar ao programador quando um limite alcanado. Essa estrutura chamada de acumulador de tempo funcionando da seguinte maneira (Idem, 130): Inicia-se o acumulador informando o tempo de espera; A cada lao o acumulador atualizado; Ao atingir o tempo de espera, executar a ao desejada e, se preciso reiniciar o acumulador. O Gerenciador de tempo alm de economizar memria e facilitar para a realizao de tarefas periodicamente durante o jogo pode ser utilizado como controle para aes efetuadas pelo jogador.

4.3.7 Fsica
Segundo PERCIA et. al. (2005:133), utiliza-se a simulao das leis da fsica para aumentar a sensao de realidade, por mais que sejam belos os grficos dos jogos os

IA em Jogos A busca competitiva entre o homem e a mquina

- 96

jogadores iro acreditar naquele mundo quando a interao dele com o jogo forem considerados como possvel. O programador utiliza-se de fsica para determinar a posio dos objetos em um cenrio e em um determinado momento chamado de current frame. Para cada quadro precisam-se atualizar as posies dos objetos em movimento para que o jogador perceba o movimento. (Idem, 133) Em virtude dos sistemas de eixos que o computador utiliza, a distncia medida em pixels e no em metros, ocasionando implicaes para outras unidades de medida, ou seja, utiliza-se o pixel como unidade de medida, sendo pixels para distncia, pixels por segundo para a velocidade e pixels por segundo quadrado para a acelerao. (Ibidem, 133-134)

4.3.7.1 Coliso
Para PERCIA et. al. (2005:139), o processo de deteco e tratamentos de colises consiste em verificar, se aps atualizao das posies dos objetos, eles no se sobrepem, caso isto acontea, executar o tratamento necessrio. Este processo realizado em duas etapas a primeira a deteco da coliso, em que consiste em um conjunto de operaes que informa ao programador se dois objetos colidiram entre si, a segunda etapa o tratamento da coliso que a ao tomada no momento em que se detecta a coliso dos dois objetos para impedir de continuarem a colidirem. (Idem, 139) . A deteco e o tratamento de coliso devem ser feitos a cada quadro e para cada objeto

presente na cena. Esse processo deve ser rpido e eficiente o bastante, no permitindo que o jogador perceba inconsistncias e no provocar queda do desempenho no jogo. (Ibidem, 139)

4.3.7.1.1 Deteco de Coliso


Segundo PERCIA et. al. (2005:140), para realizar a deteco de coliso entre dois objetos, verifica-se se estes objetos se sobrepem. Nos jogos 2D, a maneira mais precisa de verificar isso seria verificar se os objetos possuem pixels que se sobrepem, sendo muito funcional para dois objetos, porm seria impossvel verificar os pixels de diversos objetos um uma cena sem causar queda de desempenho. Praticamente o que se faz usar formas geomtricas que circundam os objetos, ento utiliza-se de mtodos simples para determinar a coliso das formas geomtricas, se isso

IA em Jogos A busca competitiva entre o homem e a mquina

- 97

ocorrer considerado que os objetos se colidiram. Deve-se escolher a forma geomtrica mais adequada para detectar colises, o formato do objeto pode ajudar para escolher a melhor forma geomtrica. (PERCIA, 140) A figura abaixo demonstra a escolha das formas geomtricas para a realizao da detco de coliso.

Figura 15: Escolha da forma geomtrica


FONTE: Adaptado de PERCIA et. al., 2005:140

Depois definido a forma geomtrica, utiliza-se do mtodo apropriado para fazer a deteco de coliso, em jogos 2D, os mtodos de deteco so: Deteco por crculos; Deteco por retngulos. Deteco por crculos: utiliza-se o teorema que dois crculos colidem quando a distncia de seus centros menor que a soma dos seus raios, sendo um mtodo bastante comum em jogos com bolas sinuca, por exemplo. (Idem, 140) Deteco por retngulos: verifica-se em separado os eixos X e Y dos retngulos, s funcionando com retngulos alinhados aos eixos das abscissas e ordenados, em retngulos rotacionados o mtodo no funciona. Adquire um segmento de reta, projetando o retngulo em um eixo X ou Y. A coliso detectada quando os segmentos da reta de um retngulo colidem entre si tanto no eixo das abscissas como no das ordenadas. considerado que os objetos se colidiram. (PERCIA et. al., 2005:141)

4.3.7.1.2 Tratamento de Colises


Conforme PERCIA et. al. (2005:145), quando um personagem colide com uma bomba, por exemplo, a bomba explode e o personagem exibir uma animao de perdendo,

IA em Jogos A busca competitiva entre o homem e a mquina

- 98

no caso de uma coliso de personagem com brick, deve ser feito o reposicionamento do personagem para evitar que no colida mais com o brick. Uma vez detectada a coliso deve ser feito o tratamento dos objetos para que o jogador no perceba uma consistncia. Em se tratando de fsica, dois objetos que se colidem devem ser reposicionados evitando novas colises, os valores de fsica dos objetos so alterados, como velocidade. Esse tratamento simples para colises onde um dos objetos esttico, pois necessria a atualizao do objeto que se move. (PERCIA, 2005:145) A aplicao de deteco e tratamento de coliso uma das tcnicas mais importantes para um jogo, pois com ela saber se o personagem foi atingido por algum inimigo ou se ele atingiu o inimigo tendo que realizar o tratamento da coliso resultando em danos ao personagem ou danos ao inimigo.

4.3.7.2 Gravidade
Segundo PERCIA et. al. (2005:136), no mundo real a gravidade tem acelerao de, aproximadamente 9,8 m/s2, sendo a mesma para todos os corpos. O que faz um corpo cair mais rpido que outro a intensidade de atrito com o ar que o corpo sofre. Simular a gravidade e um objeto de um jogo 2D significa aplicar uma acelerao no eixo das ordenadas (eixo Y), atualizando a posio e velocidade desse objeto a cada quadro. Como a distancia em jogos 2D medida em pixels, um erro utilizar o valor de 9,8 m/s para a gravidade, o que se faz definir para a gravidade, valores que tornem o movimento o mais real possvel para o jogador. Ao invs de calcularmos o atrito em cada objeto para definir qual cair mais rpido, especificamos um valor de gravidade diferente para cada objeto, ou seja, se em queda livre, um personagem tem a gravidade como 500, ele teria gravidade 250 se estivesse usando um pra-quedas aberto. (PERCIA et. al., 2005:136) Durante a queda de um corpo no mundo real, existe um momento em que a fora que o atrito exerce sobre o corpo se iguala a fora gravitacional. Nesse momento com as foras equilibradas a acelerao passa a ser nula e o corpo possui uma velocidade constante. o que ocorre quando o pra-quedas aberto, ele equilibra as foras de atrito e a gravitacional fazendo com que o personagem caia com velocidade constante. Para simular essa situao em jogos definido um valor mximo para a velocidade. No momento em que esse valor atingido, a acelerao para de agir sobre o objeto em questo. (Idem, 136)
2

IA em Jogos A busca competitiva entre o homem e a mquina

- 99

A simulao da fora da gravidade muito utilizada em jogos 2D de plataforma que ser abordado mais a frente, est simulao o personagem poder morrer se cair em um buraco na tela ou em cima de algo que lhe tire a vida.

4.3.8 Visualizaes de Jogos


Segundo MERKEL (2005:49), os jogos possuem trs tipos principais de visualizao: Primeira pessoa; Terceira pessoa; Isomtrica. Primeira Pessoa: A cena mostra o que os olhos do usurio vem, como jogos de ao. (Idem, 49) Terceira Pessoa: O jogador atua como uma terceira pessoa, podendo se ver na cena como um personagem, tambm muito utilizada em jogos de ao. (Ibidem, 49) Isomtrica: Conhecida como Gods eye43, onde se tem uma viso geral do jogo, muito utilizada em jogos de estratgia. (MERKEL, 2005:50)

4.4 Gneros de Jogos


Para MERKEL (2005:34), antes de comear a desenvolver um jogo, preciso definir o tipo dele. Um jogo criado para as pessoas se entreterem, mas todas as pessoas no possuem o mesmo gosto ento h um tipo de jogo para cada tipo de pessoa. Entre esses gneros esto: Simuladores; Aventura; Estratgia; RPG; Esportes; Ao; Infantil; Passatempo;

43

olhar de Deus

IA em Jogos A busca competitiva entre o homem e a mquina

- 100

Educacional; Luta; First Person Shooter / Third Person Shooter (FTPS); Plataforma; Corrida; Online/Massive Multiplayer. Simuladores: So jogos baseados em ttica e fsica, tendo como principal objetivo a

total insero do jogador ao um ambiente proposto pelo jogo. Fazem parte dessa categoria simuladores de vo, simuladores de carro e qualquer simulador de mquina que tente simular a realidade, deixando o jogador em primeira pessoa. (MERKEL, 2005:34) Geralmente so feitos em 3D (trs dimenses), focando um alto grau de qualidade e realismo, devido a tentativa de simulao sua implementao bem complexa. (Idem, 34) Aventura: Baseados em raciocnio e reflexo, o objetivo do jogador resolver enigmas e quebra-cabeas, para atingir ao final do jogo. Em sua grande maioria jogos desse gnero so feitos em 2D (duas dimenses), porm em alguns jogos novos tem-se a utilizao de elementos 3D. Possui uma programao simples do que de um simulador. (Ibidem, 34) Estratgia: Jogos cujo objetivo fazer decises, que possam acarretar grandes conseqncias ao jogador, entre esses jogos temos SimCity (Maxis, 1989), em que o jogador deve planejar, construir e manter uma cidade, outros jogos so os de guerra como WarCraft (Blizzard Entertainment, 1994) e Age of Empires (Ensemble Studios, 1997). A

implementao desses jogos tem semelhana com os outros gneros, porm esses jogos utilizam extensas bases de dados. (MERKEL, 2005:35) RPG: Role Playing Games eletrnicos, tem os mesmos objetivos dos RPGs convencionais. Sua implementao bem complexa, pois o jogo deve possibilitar ao usurio a escolha de diversos caminhos no decorrer da histria. (MERKEL, 2005:35-36) Esportes: Jogos que simulam esportes, como futebol, tnis, basquete, boxe entre outros esportes, sua interface geralmente desenvolvida em 3D e a implementao possui a mesma complexidade de simuladores, pois a ao do jogo em tempo real, deixando a programao diferente da programao habitual. (Idem, 36) Ao: Jogos em que a ao gira em torno de um personagem principal, que podem andar, correr, saltar, atirar, chutar, etc. A viso do jogo pode ser em primeira pessoa ou em terceira pessoa, atualmente os jogos desses gneros so lanados em 3D. Jogos como Tomb Raider (Core Design, 1996), Doom, Quake so desse gnero. (Ibidem, 36-37)

IA em Jogos A busca competitiva entre o homem e a mquina

- 101

Infantil: Jogos em que as crianas o pblico alvo tm como objetivo entreter e divertir o seu pblico. So jogos simples caracterizados por imagens bonitas e coloridas. Tem prioridade no visual e na facilidade de interao. formada por jogos de quebra-cabea e histrias educativas em que a criana deve auxiliar o personagem principal. (MERKEL, 2005:37) Passatempo: Jogos simples baseados em quebra-cabeas, jogos de tabuleiros como dama e xadrez e jogos de cartas como pquer e pacincia, geralmente possuem grficos 2D simples, porm sua implementao pode ser complexa. (Idem, 36) Educacionais: Jogos cujo objetivo ensinar enquanto jogado, envolve qualquer caracterstica dos gneros anteriores. Jogos desse gnero levam em conta critrios didticos e pedaggicos, para atingir realmente o objetivo de ensinar brincando. (Ibidem, 38) Luta: Jogo para duas pessoas, em que cada um controla um personagem, que possui diversas manobras de ataque ou defesa, sendo utilizadas para derrotar o oponente. Um dos jogos mais famosos desse gnero o Street Fighter (CAPCOM, 1987). (MERKEL, 2005:38) First Person Shooter/Third Person Shooter (FTPS): Este gnero enfatiza tiros e combate de um ponto de vista especifica. No caso dos FPSs o jogador colocado atrs da arma dando a sensao de estar l. Em sua maioria requer reflexos e velocidade. No caso de TPSs emprega uma perspectiva em terceira pessoa para o jogador normalmente atrs do jogador. Jogos desses gneros apresentam um tipo de viso padro podendo ser alternada entre as duas pelo jogador, outros alternam somente em determinados pontos do jogo. Jogos desse gnero so Counter Strike (Valve Software, 1998), Halo (Bungie Studios, 2001) e Unreal Tournament (Epic Games, 1999). (FILHO, 2005:14) Plataforma: So chamados assim por compreenderem jogos onde o fator gravidade restringe a viagem do jogador atravs de superfcies horizontais referenciadas como plataformas. Um dos primeiros gneros tornou-se muito popular, agora com a popularidade dos jogos 3D esse gnero perde espao. Jogos de plataforma so 2D e apresentam uma viso lateral do mundo. Com o avano dos grficos tridimensionais foram criados mundos com plataformas 3D, perdendo assim a simplicidade do controle dos jogos 2D. (FILHO, 2005:16) Corrida: Um dos gneros mais tradicionais. Normalmente colocam o jogador no assento do motorista de um veiculo de alta performance e realiza uma corrida contra outros jogadores ou as vezes contra o tempo. O gnero apareceu no inicio dos anos 80 e mantm sua popularidade at os dias de hoje. Possui a caracterstica de sempre revolucionar a rea de jogos em termos de jogabilidade e grficos. Entre os mais populares jogos esto Gran Turismo (Poliphony, 1996) e Need For Speed (Eletronic Arts, 1994). (Idem, 24)

IA em Jogos A busca competitiva entre o homem e a mquina

- 102

Online/Massive Multiplayer: Este gnero pode englobar a temtica dos gneros anteriores, porm deve ser jogado em podendo ser via Internet ou em lans houses. (MERKEL, 2005:39) Todos esses tipos de jogos possuem cada um o seu tipo de pblico-alvo e a forma de especifica de ser jogado, alguns entram na rea de outro, porm cada gnero abrange o seu pblico-alvo.

4.5 Mercado dos Jogos Eletrnicos


Conforme MERKEL (2005:39-40), ao longo dos ltimos cinco anos os jogos eletrnicos passaram a ocupar uma fatia bem maior no tempo que antes era ocupado por outras atividades de laser. Segundo a VEJA (So Paulo, 26 de novembro de 2003) apud MERKEL (2005:40), o jogo Madden NFL (Eletronic Arts, 2004), que simula partidas da NFL, lanado em 2004 faturou cerca de US$ 100 milhes nas trs primeiras semanas. Para comparar o filme Chicago, ganhador do Oscar de melhor filme de 2002, precisou de 9 meses para atingir US$ 171 milhes em bilheteria. A banda The Strokes um fenmeno do rock mundial, demorou dois anos para vender 1,8 milhes de cpias de seu primeiro CD, o jogo FIFA 2004 vendeu cerca de 6 milhes de cpias em um ano 400 mil delas aqui no Brasil. Uma das explicaes para esse tremendo sucesso o avano tecnolgico, permitindo a interatividade e qualidade na simulao da realidade que ficou interessante para todas as faixas etrias. O jogador Ronaldinho Gacho atacante do Barcelona e da Seleo brasileira foi filmado em todas as situaes possveis num jogo inclusive a comemorao de um gol, para ser inserido no jogo FIFA 2004. (MERKEL, 2005:40) A fidelidade de reproduo o que cativa o consumidor e faz aumentar as faixas etrias do pblico interessado afirma a consultora Cristina Hilsenrath da NDP/Group. (Idem, 40) A faixa de idade dos jogadores chega a 29 anos. Os homens so maioria, porm as mulheres correspondem 32% do universo. Estima-se que 3 milhes de brasileiros freqentam lan houses, Dos vintes games mais vendidos 16 esto na categoria everyone44 e podem ser jogados por toda a famlia, diz a americana Ashley Vanarsdall, da Entertainment Software Association. (Ibidem, 40)

44

Todas as idades

IA em Jogos A busca competitiva entre o homem e a mquina

- 103

O jogo The Sims (Eletronic Arts, 2000), o mais popular do mundo com 30 milhes de cpias vendidas, o jogador cria uma famlia, os personagens e faz o que quiser: vai para o trabalho, realiza encontros amorosos. O segundo lugar do ranking mundial e primeiro no brasileiro o jogo FIFA. (MERKEL, 2005:41) Os dois so produzidos pela produtora norte-americana Eletronic Arts, maior fabricante mundial de jogos, que faturou US$ 2,5 bilhes em 2004, 40% mais que em 2001. (Idem, 41) Enquanto a indstria do cinema faturou, em 2003, 19 bilhes de dlares. Os jogos com uma trajetria ascendente em 2002, acumularam um faturamento de US$ 30 bilhes. (Ibidem, 41) A rea de jogos cresce cada vez mais, uma prova disso so jogos que possuem um faturamento maior que bandas de rock ou de produes cinematogrficas.

4.5.1 Mercado Brasileiro


Segundo MERKEL (2005:41), mesmo com o mercado internacional crescendo, porm a situao desse mercado no Brasil anda meio obscura. Por conta da pirataria e a queda do poder de compra da classe mdia brasileira, os publicadores nacionais sofrem srias dificuldades no mercado de jogos nos ltimos anos. Empresas multinacionais esto indo embora e a cada dia o mercado informal cresce cada vez mais, fruto da falta de fiscalizao e punio por parte dos rgos competentes. (Idem, 41) Estima-se que 90% dos jogos vendidos por aqui sejam piratas. Em 1996 o mercado de jogos eletrnicos do Brasil gerava US$ 250 milhes com previso de US$ 1 Bilho, valor prximo a pases como Espanha ou Canad. (Ibidem, 2005:41) Hoje, segundo a ABES (Associao Brasileira de Empresas de Software) o Brasil fatura cerca de US$ 50 milhes de dlares no mercado legal de jogos eletrnicos, as empresas instaladas no pas e que investiram no mercado, no faturaram nada, o governo no arrecadou praticamente nada de imposto, comerciantes legais que cumprem com seus deveres legais e tributrios, tambm no lucraram, quem ganhou foi o mercado informal, a pirataria. (MERKEL, 2005:41-42) Porm, ainda existem no Brasil empresas que esto comeando a ter destaque no mercado de jogos eletrnicos, com qualidade para atingir o mercado externo, sendo que

IA em Jogos A busca competitiva entre o homem e a mquina

- 104

algumas j comearam a exportar os seus produtos. Maioria destas empresas esto situadas no estado do Paran e em sua maioria instaladas em projetos do governo. (Idem, 42) O maior exemplo a empresa Continuum Entertainment de Curitiba que com o lanamento do jogo em tempo real (RTS - Real Time Strategy) Outlive vendeu 25 mil cpias em um ms nos estados unidos pela distribuidora Take Two. No Brasil foram vendidas 3 mil cpias do jogo. (Ibidem, 42) O Paran tem grandes possibilidades de liderar a produo nacional de jogos eletrnicos, uma vez que possui o maior nmero de desenvolvedoras de games do pas e de futuramente alcanar o reconhecimento internacional de plo de excelncia no desenvolvimento de software de entretenimento. acreditando nisso que as empresas e o governo criaram uma rede visando criao de novas empresas e negcios. (MERKEL, 2005: 42) Com a organizao das empresas do setor e o apoio do governo do estado ser criada a sinergia necessria para o sucesso desta empreitada. (Idem, 42) O mercado brasileiro no cresce junto com o mercado internacional, pois com a presena da pirataria cada vez mais forte as empresas de jogos saem do mercado nacional para irem a outros mercados.

4.5.2 Indstria de desenvolvimento de jogos eletrnicos no Brasil45


A Associao Brasileira de Desenvolvedoras de Jogos eletrnicos (Abragames), uma entidade sem fins lucrativos, realizou uma pesquisa sobre a realidade das empresas que trabalham nesse ramo. Sendo analisado a partir de agora alguns dados relevantes. importante ressaltar que a pesquisa visou somente a rea de desenvolvimento tirando de seu alvo empresas participantes dessa rea, porm com outra funo como distribuidoras, marketing e publicidade. A pesquisa foi realizada entre os dias de 21 de fevereiro a 3 de Abril de 2005. Os resultados referem-se idade, distribuio geogrfica, segmentao das atividades, crescimentos nos ltimos anos, faturamento mdio, empregabilidade46 e perfil dos profissionais da rea. Para maiores informaes a pesquisa segue em Anexo neste trabalho.
O Governo Federal possui um programa dedicado para jogos eletrnicos desenvolvidos no pas endereo www.jogosbr.org.br 46 Capacidade de adequao ao profissional s novas necessidades
45

IA em Jogos A busca competitiva entre o homem e a mquina

- 105

Com os resultados da pesquisa percebe-se que a indstria de desenvolvimento de jogos comeou nos anos 80, prova disso so registros de empresas fundadas a 10 anos atrs mais precisamente entre o final dos anos 80 e inicio dos anos 90. Mas foi em 97 que o mercado comeou a se movimentar e em 99, tem-se o recorde de fundaes de empresas de jogos no Brasil (21%). Tendo hoje 55 empresas do ramo. A pesquisa tambm demonstrou que o estado que mais abriga empresas do ramo o Paran com 33% seguido por So Paulo e Rio de Janeiro ambos com 30% e 12% respectivamente, Porm o faturamento dos trs estados so quase idnticos SP(36%), RJ(26%), PR(16%), ainda com a incluso de Pernambuco(16%) e Rio Grande do Sul(16%) na anlise que tambm possuem o mesmo faturamento do Paran. O mercado de jogos divido em quatros nichos, entretenimento puro, middlewares (ferramentas para o desenvolvimento ou manuteno de um jogo), advergames (jogos com vocao publicitria) e business games (Simulaes de negcios com fins de aprendizado). Percebe-se pela pesquisa que as empresas nacionais investem no nicho de entretenimento puro (72%), porm advergames (16%) est comeando a crescer e middlewares (8%) e business games (6%), comeam a se movimentar. A pesquisa demonstra tambm, que a dificuldade em obter as licenas dos kits de desenvolvimentos para os grandes consoles, impede o avano das desenvolvedoras nesse nicho, outro fator a pirataria. Deixando o foco das empresas limitado aos PCs (66%) e celulares (23%). Conforme a pesquisa, o mercado demonstra um grande crescimento de 40%, o valor do faturamento das empresas gira em torno de 20 milhes de reais, no podendo competir com os grandes centros de desenvolvimento do mundo, porm elas tm crescido em um modo muito competitivo. Alm disso, a pesquisa demonstrou que ao mesmo tempo em que empresas antigas crescem novas empresas so fundadas, fazendo uma renovao de mercado boa. A pesquisa demonstrou que uma empresa de jogos no Brasil emprega aproximadamente 15 pessoas. A pesquisa tambm demonstrou o perfil desses 15 profissionais, que vo desde programador at administradores. Um fato levantado foi a relao de programador (36%) / artistas (ilustradores (12%) e modeladores 3D (15%)), muito diferente dos mercados consolidados em que a relao de 2 artistas para cada programador. O fator para essa adversidade pode ser que os cursos de graduao do mais nfase no desenvolvimento do jogo, ou as desenvolvedoras no esto dando nfase ao conjunto visual

IA em Jogos A busca competitiva entre o homem e a mquina

- 106

do jogo. Para descobrir os reais motivos dessa adversidade ser necessria a realizao de outra pesquisa entre os desenvolvedores.

IA em Jogos A busca competitiva entre o homem e a mquina

- 107

5 Busca Competitiva
A inteligncia artificial e os jogos caminham juntos desde o inicio da histria dos jogos, porm a inteligncia artificial no teve um grande investimento no inicio por parte dos desenvolvedores. Ela no era muito usada em jogos comerciais para consoles, e sim mais usada para programas especficos de jogos como o Deep Blue (IBM, 1997) computador que jogou uma partida de xadrez contra Gary Kasparov campeo mundial de xadrez daquela poca.

O jogo decisivo da competio foi o segundo, que deixou uma cicatriz em minha memria ... vimos algo que estava muito alm de nossas expectativas mais fantsticas a respeito da capacidade que um computador teria de prever as conseqncias posicionais de suas decises a longo prazo. A mquina se recusou a efetuar um movimento para uma posio que teria vantagem decisiva a curto prazo mostrando um sentido de perigo muito humano.(KASPAROV 1997 apud RUSSEL & NORVIG, 2005:174)

No incio do sculo XXI a utilizao desses algoritmos de IA est crescendo, pois os jogos j chegaram uma qualidade grfica sem igual, restando apenas o crescimento do desafio de chegar ao final do jogo. Portanto as empresas de agora que no possurem um bom desenvolvedor de IA em jogos pode estar com risco de se fechar. Este desenvolvedor deve ter o conhecimento dos grandes algoritmos utilizados em jogos como MiniMax, A-Star entre outros.

5.1. Histrico
Segundo FILHO (2005:1), a Inteligncia Artificial vem sendo aplicada em jogos desde os anos 70, onde surgiram os primeiros jogos simples e de recursos escassos. A rea de IA para jogos ainda influencia a percepo do pblico em geral. Ainda nos dias de hoje os fantasmas de Pac-Man (Inky, Pinky, Blink e Clyde), assombram a rea. At recentemente as desenvolvedoras de jogos no desenvolviam nada para melhorar a IA de seus jogos.

IA em Jogos A busca competitiva entre o homem e a mquina

- 108

A tabela abaixo demonstra o histrico da utilizao de IA em jogos eletrnicos.

Tabela 1 : Histrico da utilizao da IA em Jogos


Nvel de IA Sem IA Aplicao Space War! primeiro jogo para computador escrito para o minicomputador PDP-1. Requer 2 jogadores. Pong Verso eletrnica do tnis de mesa Inimigos comeam a aparecer Space Invaders Inimigos so padronizados, mas atiram de volta. Considerado o primeiro jogo clssico com nveis, score47, controles simples a dificuldade crescente no decorrer do jogo Pac-Man Fantasmas cm movimento padronizado, mas cada fantasma possui uma personalidade Um microcomputador vence um jogador profissional de xadrez pela primeira vez Karate Champ(Data East, 1984) um dos primeiros jogos de luta um contra um, com o computador como adversrio Herzog zweio(TechnoSoft, 1990) - O primeiro RTS a surgir e o mundo experimenta pela primeira vez uma pssima implementao do algoritmo de pathfinding Doom (id Software, 1993) incio oficial da era dos FPS BattleCruiser: 3000AD (Take Two Software, 1996) Primeiro uso de redes neurais em um jogo comercial Deep Blue derrota o atual campeo de xadrez Gary Kasparov Half Life A inteligncia artificial em jogos encontra-se em seu auge. O jogo faz grande uso de linguagens de script. Black & White (Lionhead Studios, 2001) Utiliza criaturas que usam aprendizado por reforo e observao. FONTE: Adaptado de FILHO, 2005:1-2 Ano 1962 1972 1974 1978

Padres

1980 1983 1984 1990

FSMs

Vrias tcnicas

1993 1996 1997 1998 2001

No decorrer dos anos a IA em jogos teve um crescimento muito tmido em relao ao crescimento da IA como um todo. No inicio do sculo XXI os desenvolvedores de jogos comeam a olhar para essa rea com interesse, pois agora crucial um jogo ter uma IA convincente para o jogador.

5.2 Definio
Segundo PERCIA (2005:152), os jogos podem utilizar em sua implementao diversos algoritmos, podendo alguns simples outros complexos. Dependendo do tipo do jogo e as especificaes dele. Jogos como Mario no precisam ter uma IA muito evoluda, pois os

47

Pontuao

IA em Jogos A busca competitiva entre o homem e a mquina

- 109

seus inimigos apesar de serem tolos, esto em grande quantidade para causar problema ao heri, j jogos como StarCraft (Blizzard Entertainment, 1998) ou Age of Empires (Ensemble Studios, 1997), que simulam batalhas ou mundo reais, a IA tem uma importncia significativa. Para SANTEE (2005:371), sempre quando algum desenvolvedor de jogos chega ao ponto de desenvolver a IA de seu jogo os sentimentos de medo, espanto e interesse surgem. Tratar a IA falar de um ramo importante para a tecnologia terrestre e tambm para simulao de comportamentos de situao, ao e reao. O primeiro passo ter todo um conhecimento do comportamento humano, e que esse tipo de informao est baseado em uma simples lgica de verificao e reao, ou seja, a realizao de vrios comandos condicionais verificando os acontecimentos e aplicando suas conseqncias. (SANTEE, 2005:371) Dependendo do tipo de jogo a rea de IA ter um enfoque diferente, para jogos mais realistas a IA deve ser bem fiel ao mundo real, j jogos de fantasia ou de puro entretenimento no necessria uma IA bem convincente.

5.3 IA tradicional X IA em Jogos


Como visto anteriormente a definio de IA a busca de um agente que se sobressaia sobre outros agentes em um determinado ambiente ou situao ou a criao de agentes que simulam aes ou pensamentos. J a IA para jogos um algoritmo dentro de um jogo com o objetivo de controlar os inimigos de uma forma que eles aparentam um comportamento inteligente quando surgem cenrios com mltiplas escolhas. A palavra aparentar a palavra chave para a diferena de IA com a IA em jogos. A IA em jogos no se preocupa nos resultados de sua execuo e nem como feito, ele se interessa em como o sistema jogo age. (FILHO, 2005:3-4) Os jogadores no esto preocupados em saber se o seu inimigo foi implementado em cima de uma rede neural ou de um sistema especialista, eles esto preocupados com a aparente inteligncia demonstrada. (Idem, 4)

IA em Jogos A busca competitiva entre o homem e a mquina

- 110

5.4 Motores de IA
Como dito anteriormente a evoluo dos motores e frameworks para o desenvolvimento de jogos eletrnicos seguiu a idia de dividir e conquistar, aps a diviso das reas de engine o desenvolvedor s precisaria juntar todas as engines para construir o jogo. Essas engines abordam diversas reas, porm a rea de IA ainda no teve um aprofundamento e consta de forma tmida em grande maioria das engines para jogos, deixando o trabalho para o desenvolvedor criar a IA. (FILHO, 2005:31) Alguns motores de jogos se destacam na nfase que do para a rea da IA, porm ainda que timidamente.

5.4.1 Unreal Engine 3


Segundo FILHO (2005:31), Unreal Engine 3 um framework completo desenvolvido pela Epic Games, especialmente feito para os novos consoles como Playstation 3, XBOX 360 e Nintendo Wii, alm de PCs equipados com DirectX, tendo uma abrangncia muito grande em diversas reas do desenvolvimento de jogos, facilitando a vida do desenvolvedor e do artista de jogos. Vrios jogos j foram desenvolvidos com essa engine, entre eles esto Unreal Tournament, Unreal Championship (Infogrames, 2002), Splinter Cell (Ubisoft) e Harry Potter (Eletronic Arts, 2001). O sistema de IA dessa engine aborda em vrios nveis como: Suporte ao pathfinding; Navegao de alto nvel; IA baseada em times. Suporte ao pathfinding: comporta objetos complexos como portas elevadores permitindo uma navegao entre os cenrios onde os personagens podem interagir com os objetos para alcanar o seu objetivo final. (Idem, 32) Navegao de alto nvel: suporta tticas de combate de curto prazo como fazer cobertura. (Ibidem, 32) IA baseada em times: adequada para jogos do gnero de FTPS e Estratgia. Suporta o gerenciamento de times, objetivos e metas de longo prazo. (FILHO, 2005:32)

IA em Jogos A busca competitiva entre o homem e a mquina

- 111

A criao dos caminhos para os sistema de navegao e de pathfinding utiliza a ferramenta UnrealEd, onde os designers podem editar os caminhos graficamente, alm de possuir recursos de otimizao e dar dicas para utilizao. (FILHO, 2005:32) A engine ainda conta com um sistema de script e uma ferramenta visual para edio a UnrealKismet, ela permite o total controle sobre as informaes do jogo para os desenvolvedores e designers sem a necessidade de escrever uma linha de cdigo. (Idem, 32) A Unreal Engine um framework proprietrio tendo trs tipos de licena: Royalty-Bearing; Royalty-Free; Custom. Royalty-Bearing: possui o valor de US$350000,00 mais US$50000,00 por plataforma de desenvolvimento, alm de pagar uma taxa de 3% em cima do faturamento do jogo. (Ibidem, 33) Royalty-Free: possui o valor de US$750000,00 mais US$100000,00 por plataforma, no cobrando nenhuma taxa por jogo vendido. (FILHO, 2005:33) Custom: essa ltima licena a empresa interessada dever entrar em contato com a Epic Games para a aquisio do produto. Sendo destinada para projetos no comerciais voltados mais para aprendizado. (Idem, 33)

5.4.2 Source Engine


Para FILHO (2005:34), a Source Engine um framework, Desenvolvido pela Valve Software para produo de jogos envolvendo animao de personagens, fsica, baseada em shaders e uma avanada IA. O framework foi usado para o desenvolvimento de jogos famosos como Half-Life, Counter-Strike e Day of Defeat. A Source Engine juntamente com a Unreal Engine so as engines mais utilizadas dessa rea. Os recursos da engine consistem em um sistema de entrada e sada dando o controle da IA para os desenvolvedores, alm de possuir um sistema de navegao onde os personagens podem correr, voar, pular etc. tambm permite tratar eventos relacionado aos sentidos humanos e ainda adicionar relacionamentos que definem o status amigo ou inimigo. (Idem, 34)

IA em Jogos A busca competitiva entre o homem e a mquina

- 112

Outro recurso o de batalhas em que se pode formar uma esquadra ou peloto com o objetivo de trabalhar em conjunto, podendo se defender, cobrir algum, avanar, recuar no momento exato. (FILHO, 2005:34) O framework proprietrio tendo que entrar em contato com a Valve para obteno de informaes, pois seus valores no so pblicos. (Idem, 34)

5.4.3 Reality Engine


Conforme FILHO (2005:34), Reality Engine um motor para o desenvolvimento de jogos produzido pela Artificial Studios, sendo desenvolvido em cima da plataforma DirectX9 podendo rodar em DirectX7 ou 8. Tendo vrios jogos desenvolvido com ele como Armageddon, CellFactor e Dreamers. Foi criada com o objetivo de competir com a Source Engine e a Unreal Engine 3, tendo uma qualidade grfica bem superior, ela veio ao mercado como uma engine semelhante as lideres do mercado porm com um custo de aquisio menor, isso fez a EpicGames comprar a Relity Engine acabando com o projeto e contratando parte da equipe para trabalhar na Unreal Engine. (Idem, 34-35) A Reality Engine possui um suporte a IA com tcnicas importantes como, pathfinding, tomada de decises baseadas em mquinas de estados, alm de dar aos agentes inteligentes a possibilidade de responder a estmulos sonoros e visuais. (FILHO, 2005:35) O mdulo de IA totalmente feito em script com o propsito de facilitar a extenso da engine, outra caracterstica a arquitetura da engine, pois para melhorar a performance a IA executada no servidor tendo o resultado passado para os clientes. (Idem, 35) Essa engine tambm proprietrio tendo duas verses uma a venda do cdigofonte48 da Reality Engine a outra a compra da Reality Engine SDK que d acesso somente aos binrios49 da engine. (Ibidem, 35) A Artificial. Studios no disponibiliza publicamente o valor de suas verses. Esses trs motores so os melhores para a criao e desenvolvimento de jogos tendo j alguns jogos famosos desenvolvidos por uma delas, porm a nfase que a IA recebe dos trs bem em relao a outras funcionalidades que os engines tm.

conjunto de palavras escritas de forma ordenada, contendo instrues em uma das linguagens de programao existentes no mercado 49 Programa executvel

48

IA em Jogos A busca competitiva entre o homem e a mquina

- 113

5.5 IA em jogos
Segundo SILVA (2005:11), a IA se desenvolveu muito nos ltimos trinta anos, desenvolvendo cada vez mais algoritmos especficos para problemas especficos, no dando enfoque para a construo de sistemas que se aproximem da inteligncia humana a IA Forte, tambm conhecida como Humam-Level AI50. Os sistemas de Humam-Level AI so como os vistos no cinema em C3PO, R2-D2 de Star Wars ou HAL de 2001 Uma Odissia no Espao. Eles demonstram caractersticas de inteligncia humana como resposta em tempo-real, robustez, interao inteligente autnoma com o ambiente, planejamento, criatividade, comunicao em linguagem natural, raciocnio de senso comum. (Idem, 11-12) Os Jogos eletrnicos so definidos como um Killer Aplication51 para o campo da IA, pois os jogos precisaro cada vez mais de Humam-Level AI, alm de oferecerem um ambiente de pesquisa para problemas especficos levando para uma pesquisa de integrao para obter uma Humam-Level AI. (Ibidem, 12) H diversas razes para que os pesquisadores de IA migrem para a rea de desenvolvimento de jogos. (SILVA, 2005:12) Primeira os desenvolvedores de jogos j perceberam da necessidade de construir cada vez mais personagens inteligentes. (Idem, 12) Segunda a rea de jogos eletrnicos altamente competitiva e a tecnologia que ser o grande diferencial a partir de agora o desenvolvimento de IA. (Ibidem, 12) Terceiro o cargo de programador de IA, j est comum na rea de desenvolvimento de jogos. (SILVA, 2005:12) Quarto como demonstrado no captulo anterior o mercado de jogos fatura mais que a do cinema. (Idem, 12) Quinto com a evoluo dos hardwares de processamento grfico e a sua otimizao sobra mais processamento para os algoritmos de IA. (Ibidem, 12) Sexto e ltimo, a indstria dos jogos precisa da IA acadmica, pois a nfase dos jogos na IA a simulao do comportamento humano em situaes limitadas. medida que os jogos evoluem em termos de grficos exige-se a construo de personagens mais inteligentes. O pesquisador de IA pode utilizar esse ambiente para o desenvolvimento de agentes cada vez mais inteligentes. (SILVA, 2005:12)
50 51

Nvel Humano de IA Aplicao Assassina

IA em Jogos A busca competitiva entre o homem e a mquina

- 114

O ambiente onde o jogo acontece virtual, porm no uma simulao de um problema, ele prprio o problema a ser resolvido. (SILVA, 2005:12) Existem diversas tcnicas de IA utilizadas para o desenvolvimento de jogos. Dando aos personagens certa inteligncia e uma personalidade. Segundo LAMOTHE (1999) apud KISHIMOTO (2003:5) um dos princpios bsicos para a IA em jogos so os algoritmos determinsticos e padres de movimento, onde os personagens tem seus comportamentos prprogramados ou pr-processados. Alm de outras tcnicas como Agentes Inteligentes, Mquinas de Estados Finitos entre outros algoritmos. A IA em jogos quer cada vez mais se aproximar a inteligncia humana, com isso pesquisadores de IA migram para o desenvolvimento de jogos para o desenvolvimento de uma IA cada vez mais forte.

5.5.1 Agentes Inteligentes


Para RUSSEL & NORVIG (2004:33), um agente todo aquele que consegue interagir com o ambiente a sua volta por meio de sensores e atuadores. O Agente humano tem olhos, ouvidos como sensores e mos, pernas e boca como atuadores, j um agente robtico teria cmera e detectores da faixa infravermelho. Todo agente pode perceber as prprias aes, porm as conseqncias de suas aes no. A utilizao da palavra do termo percepo, referente aos sensores perceptivos que os agentes possuem. A seqncia de percepes do agente a histria de tudo que aconteceu com ele. A escolha de uma ao por um agente ser com base nas seqncias de percepes obtidas at aquele momento. (Idem, 34) Qualquer sistema pode ser considerado um agente inteligente se possuir as seguintes caractersticas: Autonomia; Habilidade social; Reatividade; Pr-atividade. Autonomia: o agente deve funcionar sem interveno de um humano, baseando no conhecimento do ambiente dele guardado em cima de acontecimentos anteriores. (FERNANDES, 2005:91)

IA em Jogos A busca competitiva entre o homem e a mquina

- 115

Habilidade Social: Interagir com outros agentes por uma linguagem em comum. (FERNANDES, 2005:91) Reatividade: Ser capaz de perceber e se adaptar com as mudanas ocorridas em seu ambiente. (Idem, 91) Pr-atividade: o agente no atua com base na sua percepo, porm deve procurar alcanar um objetivo demonstrando iniciativa. (Ibidem, 91)

5.5.1.1 Tipos de Agentes


Entre os tipos de agentes inteligentes se destacam o agente reativo e o agente cognitivo a diferena entre os dois est em que os agentes reativos consideram somente os dados disponveis naquele momento, ou seja, eles no possuem memrias. Os agentes cognitivos aprendem com as suas experincias e so deliberativos, tendo a oportunidade de trocar informaes de histrico e planos de ataque com outros agentes, criando um sistema mais inteligente. (PERCIA et. al., 2005:153) Porm a vantagem dos agentes reativos est na velocidade das respostas, pois o reativo responde com base nos dados encontrados no momento e o agente cognitivo pode consultar a sua base de experincias, alm de trocar informaes com outros agentes. O tempo normalmente curto em aplicaes de jogos, por isso que o uso de agentes cognitivos ainda uma novidade. (Idem, 153)

5.5.1.1.1 Agentes Reativos


Conforme RUSSEL & NORVIG (2004, 46), o tipo de agente mais simples. Eles selecionam uma ao com base na percepo, atua ignorando todo e qualquer histrico de percepes. O processamento realizado de acordo somente com os dados da entrada, com isso ativado uma conexo entre o programa do agente os dados da entrada e sua resposta a aquela ao essa conexo conhecida como regra condio-ao. Os seres humanos tm muitas dessas regras, algumas so aprendidas como dirigir um carro ao parar no sinal fechado, e outras so reflexos inatos como o piscar de olhos quando algo se aproxima de seu olho. (Idem, 47) Os agentes reativos so simples, porm sua inteligncia ser muito baixa, pois a sua deciso ser tomada somente quando todos os dados de entrada vindo do ambiente forem

IA em Jogos A busca competitiva entre o homem e a mquina

- 116

processados, ou seja, se houver um empecilho na entrada de dados do agente que no seja previsto pelos desenvolvedores do agente, causar diversas dificuldades ao tomar a deciso. (RUSSEL & NORVIG, 2004:47) Abaixo est o algoritmo de um agente simples: funo AGENTE-REATIVO-SIMPLES(percepo) retorna ao Variveis estticas: regras estado = INTERPRETAR-ENTRADA(percepo) regra = REGRA-CORRESPONDENTE(estado,regra) ao = AO-DA-REGRA(regra) retornar AO fim. A funo recebe como parmetro os dados dos sensores, aps obtido o estado do agente, com base no estado obtido e na regra define a ao a ser tomada e retorna ela para ser executada.

5.5.1.1.2 Agentes Cognitivos


Segundo FARACO (1998) apud (FERNANDES, 2005:102-103), se caracteriza pela complexidade dos agentes, onde demonstram meios de inferncia de deciso robusta, interaes sofisticadas e alto grau de inteno. Eles so divididos em Agentes cognitivos funcionais e Agentes Cognitivos baseados em estado mental. Os agentes funcionais so compostos por mdulos necessrios para a execuo do sistema e devem possuir conhecimento, objetivos, alm de ter a capacidade de: percepo, comunicao, deciso e raciocnio. (DEMAZEAU apud FERNANDES, 2005:103) Os agentes Cognitivos vm de uma abordagem psicolgica para a definio de sua estrutura. Eles possuem estados mentais a respeito do domnio de crenas, capacidade de escolha e compromisso, por isso que o estado do agente chamado de estado mental. (FERNANDES, 2005:103) Esses estados mentais devem estar bem definidos, pois a forma de encontrar um agente cognitivo em um hardware ou software o fato de ele poder ser analisado e controlado por esses estados mentais. Deixando a questo da definio de Agente para quais entidades podem ser consideradas como possuir um estado mental. (DAMICO apud FERNANDES, 2004:103)

IA em Jogos A busca competitiva entre o homem e a mquina

- 117

5.5.1.1.3 Agentes Hbridos


Esse tipo de agente mescla os dois anteriores tendo o objetivo de tornar mais funcional para a construo de agentes. Nesse caso, os agentes sero dotados de comportamentos reativos com relao aos eventos que acontecem no ambiente naquele momento, e comportamento deliberativo no momento em que for definido um objetivo para ele. (FARACO 1998 apud FERNANDES, 2004:104) Esse tipo de agente soluciona a incapacidade de ao adequada por parte do agente cognitivo para respostas mais rpidas em momentos oportunos, alm de dar ao agente reativo a capacidade de raciocnio e planejamento no momento em que ele se depara com uma situao onde o ambiente diverge bastante de seus objetivos iniciais. (YEPES 2002 apud FERNANDES, 2004:104)

5.5.1.2 Agentes Inteligentes em Jogos


Para a demonstrao da utilizao de Agentes Inteligentes em jogos tem-se como exemplo o gnero de jogo RPG explicado no captulo anterior. Segundo SILVA (2005:13), a IA em um jogo de RPG utilizada para controlar inimigos, parceiros e personagens de suporte. Os inimigos seriam considerados os monstros que o jogador encontra pelo caminho ou personagens iguais ao jogador, porm controlados pela IA do jogo. Exige uma tarefa complexa para a construo da IA para os inimigos, eles devem ser autnomos e precisam interagir com o ambiente ao redor deles, precisando de um comportamento reativo, planejamento e senso comum. Para uma demonstrao mais fiel eles precisam das mesmas informaes sensoriais que o jogador possui. Para se locomoverem pelo ambiente necessrio de um algoritmo de pathfinding, raciocnio espacial e raciocnio temporal, podendo ter agentes que se adaptam a novos ambientes ou as estratgias do jogador, chegando a aprender. (Idem, 14) A IA para os parceiros que o jogador possui exige uma tarefa mais complexa ainda, pois o jogador ir encontrar um inimigo poucas vezes e vrios deles diferentes j o aliado poder ficar boa parte do tempo ao lado do jogador. O desafio fazer que o aliado demonstre um comportamento humano. O jogador poder conversar com o seu aliado para isso ele

IA em Jogos A busca competitiva entre o homem e a mquina

- 118

precisar se lembrar dos acontecimentos anteriores, o aliado pode ficar magoado com as aes do jogador com ele, ou criar uma aliana dependendo do tratamento que ele recebe em um perodo de tempo. O agente aliado precisa simular emoes realmente humanas. O RPG NeverWinter Nights um jogo com agentes aliados. O jogador desenvolve um tipo de relacionamento com seus aliados no decorrer do jogo, chegando a ter vrios finais o jogo dependendo da interao que o jogador teve com seus aliados. (SILVA, 2005:14) Os personagens de suporte so, por exemplo, o dono da taverna, o guarda do porto, o rei, o mercador mesquinho, so personagens que o jogador no ir ver durante todo o jogo, porm a implementao da IA deles deve ser semelhante ao do Aliado. (Idem, 15) Agentes Inteligentes muito usado em jogos, apesar de ser uma nova rea da IA geral, os agentes inteligentes tem o objetivo de unir todas as reas da IA tradicional, para que o agente inteligente de um jogo consiga simular o comportamento humano ele precisar de um motor ou uma mquina.

5.5.2 Mquinas de Estados Finitos


Como dito no capitulo anterior FSMs so estruturas que facilitam para o planejamento do jogo, podendo ser usada tambm para o desenvolvimento de sua IA juntamente com a estrutura de Agentes Inteligentes. Segundo MENDES (UNIDEV, 2002), nessa concepo o estado de uma mquina de estados de uma forma simples a ao que o agente inteligente estaria executando. O sinal para mudar de ao chamado de funo de transio. Essa funo pode avaliar diversas condies para tomar uma deciso um exemplo a porta eletrnica que se abre com a aproximao do jogador, porm somente se ele estiver carregando uma chave abaixo uma demonstrao dessas condies: Se (jogador se aproximou da porta) e (jogador possuir chave) Abrir porta

5.5.2.1 Mquinas de Estados Finitos como IA em jogos


A principal vantagem de utilizar FSMs para o desenvolvimento de IA em jogos que ela consegue ser adaptvel para qualquer tecnologia, sendo a parte principal ou secundria da inteligncia do personagem, alm de poder fazer que diferentes personagens utilizem da

IA em Jogos A busca competitiva entre o homem e a mquina

- 119

mesma rotina podendo gerar assim um comportamento diferente para cada personagem. (MENDES, UNIDEV:2003) Com essa complementao da definio de mquinas de estados finitos, inicia-se o processo da criao de uma FSM para um jogo. Definir como o NPC deve se comportar; Identificar os estados; Identificar variveis de controle; Definir como os estados se relacionam; Definir as funes de transio; Definir a ao exercida pelo NPC em cada estado; Implementar a mquina de estados. Definir como o NPC deve se comportar: tomaremos como exemplo um guarda, ele faz uma ronda e quando um personagem aproxima-se dele, ele vai a sua direo. Chegando perto o suficiente o guarda ataca, se o personagem morre, ou foge e fica longe do guarda, o guarda volta ao estado de alerta. Se o guarda for atingido ele vai para o estado de alerta, procurando o personagem que atacou, se ele morrer ele morre. (Idem, UNIDEV:2003) Identificar os estados: com base na explanao acima se encontram os seguintes estados: RONDA, ALERTA, ATACANDO, MORTO. Que definem o comportamento do guarda. (Ibidem, UNIDEV:2003) Identificar as variveis de controle: as variveis de controle para o caso acima so: distncia, visibilidade e levar algum dano. Pode-se adicionar mais duas variveis de controle uma seria a probabilidade de mudar de estado e a outra o tempo que se encontra nesse estado. (MENDES, UNIDEV, 2003) Definir como os estados se relacionam: para isso montado um desenho descrevendo as relaes dos estados. (Idem, UNIDEV:2003) A figura abaixo demonstra os relacionamentos de cada estado onde RONDA o estado inicial e MORTO o estado final.

FIGURA 16: FSM do Guarda


FONTE: Adaptado de MENDES, UNIDEV

IA em Jogos A busca competitiva entre o homem e a mquina

- 120

Definir as funes de transio: para facilitar usada uma tabela com a condio para a funo de transio. (MENDES, UNIDEV:2003) A tabela abaixo demonstra as funes de transio do guarda.

TABELA 2: Funes de Transio de uma FSM


Estado Inicial RONDA ALERTA ALERTA ALERTA ATACANDO ATACANDO Funo de Transio ((dano = 1) ou (distancia < media e visvel = 1)) e (chance < 90%) Vitalidade < 0 ((distancia > media) e (chance < 90%)) ou ((visivel = 0) e (tempo > tempo mximo)) (distancia < perto) e (visvel = 1) e (chance < 80%) ((distancia > perto) ou (dano > vitalidade x (0,50+sorteie ente (0 e 0,5))) e (vitalidade > 0) Vitalidade < 0 FONTE: Adaptada de MENDES, UNIDEV:2003 Estado Final ALERTA MORTO RONDA ATACANDO ALERTA MORTO

Definir a ao exercida pelo NPC em cada estado: o comportamento pode ser demonstrado em uma tabela tambm. (Idem, UNIDEV:2003) A tabela abaixo demonstra as aes que o guarda realizar para cada estado.

TABELA 3: Ao de Cada Estado


Estado RONDA ALERTA ATACANDO MORTO Ao Anda de acordo com um caminho alterando periodicamente o caminho. Dependendo da vitalidade ele segue em direo ao personagem ou foge dele. Procede com o ataque. Demonstra animao de morte. FONTE: MENDES, UNIDEV, 2003

Na tabela est a definio do que o guarda ir fazer. Poderamos colocar sub-mquinas dentro dos estados para ficar mais perfeita a ao. (Ibidem, UNIDEV:2003) Implementar a mquina de estados: Existem duas formas de implementar a mquina de estados uma a utilizao de scripts, a outra maneira fazer testes verificando o estado atual e executando a ao correspondente. Ser feito um exemplo como desta ltima maneira. (MENDES, UNIDEV:2003) O algoritmo simples: Verificar qual o estado atual atravs de um descritor; Executar ao correspondente; Verificar se mudou o estado; Atualizar o descritor com o estado atual.

IA em Jogos A busca competitiva entre o homem e a mquina

- 121

O descritor define qual o estado atual que o personagem est. Muitas vezes a ao correspondente para aquele estado no ser executada uma nica vez. Nesse caso pode-se utilizar threads52 para que da prxima vez que for atingido aquele estado o guarda continuar do ponto onde parou. (MENDES, UNIDEV:2003) Abaixo est o algoritmo da mquina de estados do guarda. funo EXECUTA-IA (guarda){ ESCOLHA (guarda.estado) caso RONDA: IARONDA(guarda) caso ALERTA: IAALERTA(guarda) caso ATACANDO: IAATACANDO(guarda) caso MORTO: IAMORTO(guarda) caso padro: estado do guarda = RONDA FIM-ESCOLHA fim Essa funo executada periodicamente a cada quadro do jogo ou em um determinado tempo ele recebe o estado do guarda e dependendo do estado ele executa a funo da ao correspondente. As funes IARONDA, IAALERTA, IAATACANDO e IAMORTO so onde estaro as funes de transio e as aes correspondentes aos estados. (Idem, UNIDEV:2003) Abaixo os algoritmos de cada funo. Funo IARONDA. funo IARONDA (guarda){ posio de destino do guarda = ESCOLHA-POSIO(posio do guarda) MOVE-GUARDA(posio de destino do guarda) SE ((dano = 1) OU (distancia < media E visvel = 1)) E (chance < 90%) estado do guarda = ALERTA FIM-SE fim Essa funo o guarda recebe uma nova posio para se locomover alm de realizar a funo de transio. Funo IAALERTA funo IAALERTA (guarda, inimigo){

52

Programao concorrente

IA em Jogos A busca competitiva entre o homem e a mquina

- 122

SE(vitalidade > 50) posio de destino do guarda = posio do inimigo SENO fugir do inimigo FIM-SE SE (vitalidade < 0) estado do guarda = MORTO SENO SE (((distancia > media) E (chance < 90%)) OU ((visivel = 0) E (tempo > tempo mximo))) estado do guarda = RONDA SENO SE ((distancia < perto) e (visvel = 1) e (chance < 80%)) estado do guarda = ATACANDO FIM-SE fim Nessa funo o guarda persegue ou foge do inimigo, alm de executar as funes de transio. Funo IAATACANDO funo IAATACANDO(guarda) guarda ataca SE (vitalidade < 0) estado do guarda = MORTO SENO SE (((distancia > perto) OU (dano > vitalidade x (0,50+sorteie ente (0 e 0,5))) E (vitalidade > 0)) estado do guarda = ALERTA FIM-SE fim Nessa funo o guarda ataca e continuar atacando se as funes de transies no forem executadas. Funo IAMORTO funo IAMORTO(guarda) guarda morre fim Nessa funo o guarda simplesmente morre. Essas so as funes executadas pelo guarda para cada estado definido.

IA em Jogos A busca competitiva entre o homem e a mquina

- 123

As FSMs definem o que o personagem ir fazer e no como ser feito. Para melhorar uma FSM, a melhor sugesto acrescentarem mais estados tomando o cuidado de no criar estados redundantes. (MENDES, UNIDEV:2003) H outras solues tambm como definir sub-mquinas dentro de cada estado dando um refinamento na inteligncia artificial, criar mquinas de estados evolutiva que se adaptam ao jogador, ou mquinas de estados fuzzy permitindo o personagem assumir mais de um estado ao mesmo tempo. (Idem, 2002) A Mquina de Estados Finitos em IA sendo utilizada juntamente com o conceito de Agentes Inteligentes torna o jogo mais poderoso, pois o agente consulta a mquina de estados finitos para saber qual a ao a ser tomada, ou seja, a mquina de estados finitos a inferncia que o Agente Inteligente faz em suas regras.

5.5.3 Conjuntos e lgica Fuzzy (Difusa)


Na lgica tradicional os conjuntos so precisos ou o individuo pertence 100% a um grupo ou no pertence. Um grupo de pessoas com menos de 25 anos podem ser considerados participantes do grupo jovem, j as pessoas com mais de 25 anos sero considerados participantes do grupo adulto, a lgica fuzzy ou difusa permite que a pessoa tenha 100% de participao no grupo jovem e 20% no grupo adulto. (ROMERO & LACERDA, JEDI:2003) A teoria dos conjuntos difusos (fuzzy) o meio de simplificar o quanto um objeto satisfaz uma descrio vaga, por exemplo, considere a proposio Nei alto. verdade essa afirmao se Nei tem 1,87m, maioria das pessoas hesitariam para responder se sim ou no outras responderiam talvez. Isso no uma questo de incerteza por que sabe-se a altura de Nei. A questo que o temo alto no pode ser aplicado para demarcao ntida de objetos. Existem graus de altura, por essa razo, a teoria de conjuntos difusos no de forma alguma um mtodo para o raciocnio incerto. Em vez disso, a teoria de conjuntos difusos trata Alto como um predicado e afirma que o valor verdade de Alto(Nei) um nmero entre 0 e 1, ao invs de ser simplesmente verdadeiro ou falso. O termo conjuntos difusos deriva da interpretao do predicado como a definio implcita do conjunto, o conjunto no tem limites precisos. (RUSSEL & NORVIG, 2004:511-512) Conforme RUSSEL & NORVIG (2004:512), a lgica difusa (fuzzy) um mtodo de raciocnio com expresses lgicas descrevendo a pertinncia aos conjuntos difusos. Por exemplo, a sentena Alto(Nei) Pesado(Nei) possui um valor-verdade difuso que uma

IA em Jogos A busca competitiva entre o homem e a mquina

- 124

funo dos valores de seus componentes. As regras para avaliao da verdade difusa, V, de uma sentena so: V(A B) = min(V(A),V(B)) V(A B) = max(V(A),V(B)) V( A) = 1 V(A) Ento, a lgica difusa um sistema verdade-funcional, fato este que causa srias dificuldades. Por exemplo, suponha que V(Alto(Nei)) = 0,6 e V(Pesado(Nei)) = 0,4. Com base nas regras acima teremos ento V(Alto(Nei)) V(Pesado(Nei)) = 0,4, parece razovel, mas o resultado tambm aparece em V(Alto(Nei) Alto(Nei)) = 0,4, que no parece nem um pouco razovel. Sem dvida, o problema surge da inabilidade da abordagem verdadefuncional para levar em conta as correlaes e anticorrelaes entre os componentes propostos. (RUSSEL & NORVIG, 2004:511-512) A popularizao da lgica difusa vem do fato que os conjuntos difusos podem ser associados a variveis lingsticas, ou seja, podemos comprar um produto de um valor x e podemos possuir uma funo que define o quo caro esse produto. (TATAI, 2005:23) As variveis lingsticas fuzzy so conceitos como temperatura, energia, distncia. Elas so compostas por conjuntos que definem seus estados, por exemplo, a varivel temperatura tem os estados alto, mdio, baixo. A definio de cada conjunto formada por uma funo de participao. As formas mais comuns das funes so triangular e a trapezoidal. (ROMERO & LACERDA, JEDI:2003) Depois que as variveis lingsticas so definidas para o modelo, preciso passar por regras que definiro a ao a ser tomada. As regras geralmente usadas so comandos condicionais bsicos como Se...Ento. Como exemplo, tem-se duas variveis representando as energias de dois personagens do jogo sendo feito uma anlise definindo as aes que um dos personagens deve realizar. (Idem, JEDI:2003) Ex. SE (minha energia est baixa E energia do oponente est alta) fugir SE (minha energia est alta E energia do oponente est baixa) atacar

IA em Jogos A busca competitiva entre o homem e a mquina

- 125

5.5.3.1 Desfuzzificao
Ao final da anlise realizado o processo de desfuzzificao com o objetivo de converter o valor fuzzy para um valor discreto. Tendo dois mtodos para esse processo o Center of Gravity e o Mean of Maximum. (FERNANDES, 2004:23)

5.5.3.2 Center of Gravity


O mtodo Center of Gravity (Centro da Gravidade) o mais utilizado. O mtodo se baseia no clculo do centro de gravidade ou de rea da figura resultante das regras utilizadas. (OLIVEIRA & AGUIAR 1999 apud FERNANDES, 2004:23) Com base nos valores de X e Y, obtidos por sensores, descobre-se quais os termos lingsticos que so selecionados, o valor X est contido nos conjuntos das variveis lingsticas A1 e A2, j os valores de Y est contidos nos conjuntos das variveis lingsticas B1 e B2. Atravs da regra min, tem-se o grau de pertinncia devendo ser projetado at a sada. Na sada utiliza-se o termo lingstico descrito em cada uma das regras. (Idem, 23-24) A figura resultante obtida atravs da funo max sob cada uma das figuras geradas pelas regras. Para obteno de sua rea utiliza-se o calculo simples de reas geomtricas como tringulos, trapzios e retngulos, pois a forma de calculo provou ser mais eficiente em comparao com os clculos da rea de figuras complexas como parbolas e senides. (Ibidem, 24) O valor da rea calculado sob a nova figura gerada, tendo em conta a pertinncia do antecedente de menor valor. Deve ser calculado o ponto mdio da base da cada figura do termo lingstico do termo lingstico da parte conseqente da regra e aplicar a seguinte frmula para se obter o centro da rea Z. (FERNANDES 2004, 24)
r

coa =

Wi.Ai
i =1 r

Ai
i =1

Onde: r = nmero de regras Wi = peso do termo de cada regra i Ai = rea do termo de cada regra i

IA em Jogos A busca competitiva entre o homem e a mquina

- 126

Esta frmula a aproximao de outra mais complexa, que utiliza clculos de integrais, porm essa provou na prtica ser mais eficiente computacionalmente. (FERNANDES 2004, 24) A figura demonstra todo o processo realizado at agora.

Figura 16: Mtodo Center of Gravity


FONTE: FERNANDES, 2004:23

O mtodo Center of Gravity, leva em conta o tamanho das figuras geradas. Pequenas variaes nos valores passaro desapercebidos, pelo sistema. Para alguns sistemas isso no pode acontecer, porm tem sistemas que com esta caracterstica tornam-se robustos e imunes a variaes, gerando uma oscilao menor na resposta ao processo. (Idem, 24) Outro fato a ser considerado deve ser o tipo de processo de controle: os processos podem ser divididos em estticos ou contnuos, no caso de processos contnuos importante otimizar as rotinas de desfuzzificao, pois o processamento pode tornar lento. Logo a escolha do mtodo do processo de desfuzzificao deve ser escolhida com ateno. (Ibidem, 24)

5.5.3.2 Mean of Maximum


O mtodo Mean of Maximum (Mdia dos Mximos) muito usado em funo da relao custo-beneficio, devido ao seu custo computacional baixo e processamento eficiente em certos sistemas. Neste mtodo podem surgir duas variaes, baseada na funo de pertinncia no termo conseqente: funo de pertinncia unimodal ou multimodal. (FERNANDES, 2004:24-25)

IA em Jogos A busca competitiva entre o homem e a mquina

- 127

Na unimodal utilizado o maior valor encontrado na funo como valor defuzzificado. Quando a funo trouxer mais de um valor tira-se a mdia desses valores para definir o valor desfuzzificado essa a funo multimodal. (FERNANDES, 2004:24-25) Diferente da Center of Gravity o mtodo Mean of Maximum leva em conta somente os valores de pico das funes de pertinncia, no importando a forma que a funo tome, isso pode acarretar uma representao incompleta da inferncia. As aes de controle resultantes tendem a ser mais rpidas e sensveis com as variaes dos valores de entrada. Porm este mtodo pode demonstrar descontinuidades, dependendo da funo de pertinncia, causando deslocamentos abruptos em decorrncia das interaes com o sistema. (Idem, 25) A figura abaixo demonstra as duas funes de Mean of Maximum.

Figura 17: Funes do Mtodo Mean of Maximum


FONTE: FERNANDES, 2004:25

A seguir tem um exemplo de modelo Fuzzy, construdo com a FFLL(Free Fuzzy Logic Library) uma biblioteca de lgica Fuzzy feito em C++, baseada nas especificaes da FCL (Fuzzy Control Language). FUNCTION_BLOCK VAR_INPUT Our_Heath Enemy_Health END_VAR VAR_OUTPUT Aggressiveness END_VAR FUZZIFY Our_Health REAL; REAL; REAL;

IA em Jogos A busca competitiva entre o homem e a mquina

- 128

TERM Near_Death := (0,0) (0,1) (50,0); TERM Good := (14,0) (50,1) (83,0) ; TERM Excellent := (50,0) (100,1) (100,0) ; END_FUZZIFY FUZZIFY Enemy_Health TERM Near_Death := (0,0) (0,1) (50,0) ; TERM Good := (14,0) (50,1) (83,0) ; TERM Excellent := (50,0) (100,1) (100,0) ; END_FUZZIFY FUZZIFY Aggressiveness TERM Run_Away := 1; TERM Fight_Defensively := 2; TERM All_Out_Attack := 3; END_FUZZIFY DEFUZZIFY valve METHOD: MoM; END_DEFUZZIFY RULEBLOCK first AND: MIN; ACCU: MAX; RULE 0: IF (Our_Health IS Near_Death) AND (Enemy_Health IS Near_Death) THEN (Aggressiveness IS Fight_Defensively) RULE 1: IF (Our_Health IS Near_Death) AND (Enemy_Health IS Good) THEN (Aggressiveness IS Run_Away) RULE 2: IF (Our_Health IS Near_Death) AND (Enemy_Health IS Excellent) THEN (Aggressiveness IS Run_Away) RULE 3: IF (Our_Health IS Good) AND (Enemy_Health IS Near_Death) THEN (Aggressiveness IS All_Out_Attack) RULE 4: IF (Our_Health IS Good) AND (Enemy_Health IS Good) THEN (Aggressiveness IS Fight_Defensively) RULE 5: IF (Our_Health IS Good) AND (Enemy_Health IS Excellent) THEN (Aggressiveness IS Fight_Defensively) RULE 6: IF (Our_Health IS Excellent) AND (Enemy_Health IS Near_Death) THEN (Aggressiveness IS All_Out_Attack)

IA em Jogos A busca competitiva entre o homem e a mquina

- 129

RULE 7: IF (Our_Health IS Excellent) AND (Enemy_Health IS Good) THEN (Aggressiveness IS All_Out_Attack) RULE 8: IF (Our_Health IS Excellent) AND (Enemy_Health IS Excellent) THEN (Aggressiveness IS Fight_Defensively) END_RULEBLOCK END_FUNCTION_BLOCK O modelo define primeiro as variveis de entrada Our_Health, Enemy_Health. Depois define a varivel de sada Aggressiveness, aps isso ele define os valores dos conjuntos que sero componentes de cada varivel. Sendo Near_Death, Good e Excelent para as variveis de entrada e Run_Away, Fight_Defensively e All_Out_Attack para a varivel de sada. Sendo assim, ele define como mtodo de desfuzzificao o Mean of Maximum, aps isso aplica as regras do modelo definindo qual o valor a varivel de retorno ter. A lgica nebulosa est presente atualmente em diversas reas de aplicao, sendo as principais o controle, automao de processos e recuperao de informaes dentre outros, as formas de utilizao de lgica fuzzy varia muito: tem sistemas de controle nebulosos, bases de inferncias nebulosas, mquinas de estados finitos nebulosas entre outras.

5.5.3.2 Mquinas de Estados Finitos Fuzzy (FuSM)


Conforme TATAI (2003:22), mquina de estados finitos Fuzzy de interesse aos desenvolvedores de jogos, pois a prpria uma evoluo da mquina de estados finitos, mtodo muito utilizado em jogos. Existem diversas implementaes possveis para as FuSMs, porm as mesmas so caracterizadas por atribuir valores nebulosos a um determinado estado. Isso tem diversas implicaes sendo a principal, o fato de se ter que definir um comportamento dos valores nebulosos quando executado um evento. Normalmente esse evento tambm possui um valor nebuloso, tornando assim intuitivamente o uso de regras que combine este valor com o valor atual e para obter o prximo valor de pertinncia. Tipicamente a regra utilizada est associada ao sistema de FuSM, dando a responsabilidade ao projetista determinar qual regra ser utilizada por qual evento lanado. (TATAI, 2003:25) Podemos tambm utilizar a FuSM de modo que um sistema no assuma somente um estado, mas possa assumir vrios estados com graus de pertinncias distintos ao mesmo

IA em Jogos A busca competitiva entre o homem e a mquina

- 130

tempo, porm isso pode gerar complicaes na determinao das aes tomadas e na compreenso do funcionamento do sistema. (TATAI, 2003:25) Em jogos de estratgia a FuSM utilizada, pois com a pouca informao que se tem do inimigo e a quantidade de micro decises a serem tomadas faz que o oponente de IA tome decises quase que com a certeza de vitria. Por exemplo, o adversrio no sabe a quantidade de unidades do exrcito e nem as reservas de ouro do jogador, porm acredita na possibilidade da vitria. (Idem, 12) Em jogos FTPS as FuSMs utilizado devido ao nmero de variveis fuzzy ser bem baixo, diminuindo assim a complexidade do sistema, evitando problemas de clculos prejudiciais ao sistemas fuzzy. Os dados obtidos para os personagens de um FTPS no necessariamente preciso ser regular. Um oponente com 23% de sade e uma arma tima e conseguir perseguir o jogador sem ser notado. Ele poderia atacar, mesmo estando machucado ele est com uma arma superior ao do jogador e consegue segui-lo sem ser notado isso deixa as chances dele de ganhar bem grandes. Entretanto isso s acontece quando utilizado um sistema de entradas fuzzy. (Ibidem, 15) Em jogos de esporte so mais fceis de adaptar com mquinas de estados finitos do que os jogos dinmicos. Todos os jogos desse gnero j tm regras pr-definidas, por exemplo, o futebol tem os estados: lateral, escanteio, falta, pnalti. A estrutura da IA desses jogos baseado em estados, porm decises tomadas pelo tcnico ou pelo prprio jogador se tornam nebulosas. Nesse caso as FuSMs podem prover a tomada de deciso nebulosa. (TATAI, 2003:19) A Lgica fuzzy bem antiga, porm bem poderosa a utilizao dela em jogos nova, pois seu processamento pode sobrecarregar o jogo , ela est sendo usada como uma evoluo da Mquina de Estados Finitos.

5.5.4 Algoritmos de Busca


Segundo PERCIA (2005:154), a utilizao da IA para a soluo de problemas em jogos muito difundido. Por exemplo em jogos de tabuleiro (xadrez, damas) o computador deve ser capaz de calcular qual a melhor jogada a ser realizada contra o jogador, para isso tem diversos algoritmos de busca de IA que realizam uma consulta as diversas possveis solues para o problema escolhendo a melhor dependendo do nvel imposto contra o jogador.

IA em Jogos A busca competitiva entre o homem e a mquina

- 131

Seguindo essa analogia, ela tambm pode ser utilizada em jogos com entidades que procuram melhores caminhos para atingir certos objetivos, Jogos como Warcraft III, tem diversas unidades que percorrem rios, pontes, montanhas etc, nesses jogos devem haver um algoritmo capaz de gerar o melhor caminho para cada unidade. (PERCIA et. al., 2005:154) Dentre todos esses algoritmos de busca utilizados em jogos os que se destacam so MiniMax e o de A* (A - Estrela).

5.5.4.1 Algoritmo MiniMax


Um dos algoritmos mais utilizados em jogos de tabuleiro tem como objetivo percorrer todas as possveis jogadas dependendo de quanto se quer pesquisar para encontrar a melhor jogada a ser realizada. (PERCIA, 2004:154) Considere um jogo com dois jogadores o MAX e MIN, o jogo comea com uma jogada de MAX e os dois jogadores se revezam at o jogo terminar. Ao terminar o jogo pontos so dados ao jogador vencedor e o perdedor sofre penalidades. Um jogo desse tipo pode ser definido como um problema de busca com os seguintes componentes: (RUSSEL & NORVIG, 2004:157) Estado inicial; Funo sucessor; Teste de trmino; Funo utilidade. Estado inicial: inclui a posio do tabuleiro e identifica o jogador que far o movimento. (Idem, 158) Funo sucessor: retorna uma lista de pares (movimento, estado), cada qual indicando um movimento vlido e o estado resultante (Ibidem, 158) Teste de trmino: determina quando o jogo termina. Os estados que o jogo encerrado so chamados estados terminais. (RUSSEL & NORVIG, 2004: 158) Funo utilidade: conhecida tambm como funo objetivo, d um valor numrico aos estados terminais. No xadrez, o resultado pode ser uma vitria, uma derrota ou um empate tendo os valores 1, -1 ou 0. Alguns jogos tem uma variedade de pontos mais ampla como o gamo que varia de 192 a -192. (Idem, 158) O estado inicial e todos os movimentos possveis para cada jogador formam a rvore do jogo que corresponde todo o jogo. Num jogo da velha a partir do estado inicial MAX tem

IA em Jogos A busca competitiva entre o homem e a mquina

- 132

se nove movimentos possveis. O jogo vai se alterando com a colocao de um X por MAX e a colocao de um O por MIN at ser alcanado ns de folhas que correspondem ao estado terminal, ou seja, o jogador deve ter trs smbolos em uma linha ou todos os quadrados so preenchidos. O nmero em cada n representa o valor de utilidade do estado terminal para o jogador, valores altos so bons para MAX e valores baixos so bons para MIN, razo para os nomes dos jogadores, ento cabe a MAX usa a rvore de busca com base nos estados terminais gerados para escolher a melhor jogada. (RUSSEL & NORVIG, 2004: 158) O algoritmo MiniMax calcula a deciso MiniMax a partir do estado corrente, utilizando computao recursiva simples dos valores MiniMax de cada estado sucessor, implementando diretamente equaes necessrias. O mtodo recursivo percorre um caminho descendente at chegar s folhas da rvore e depois os valores encontrados so retornados at o n raiz do algoritmo de busca. (Idem, 160) A figura abaixo de uma rvore tendo a aplicao do MiniMax.

Figura 18: Exemplo da Aplicao de MiniMax


FONTE: Adaptado de RUSSEL & NORVIG, 2004:159

Primeiro o algoritmo desce at o nvel de folha que se quer obter a melhor resposta e utiliza a funo UTILIDADE para descobrir os valores de cada folha sendo que no galho b temos os valores 3, 12, e 8 tendo escolhido o mnimo entre eles o 3 e manda para B com um valor, o mesmo processo acontece nos galhos C e D que forneceram o valor de 2 cada um. Por fim obtemos o valor mximo entre 3, 2 e 2 que 3 e enviamos para o n raiz A. (Ibidem, 2004:160) O algoritmo MiniMax executa uma explorao completa em profundidade de toda a rvore do jogo. Se a profundidade m e existem b movimentos o tempo que o algoritmo

IA em Jogos A busca competitiva entre o homem e a mquina

- 133

demorar em executar de O(bm). A complexidade do espao definida por O(bm) para um algoritmo que gera todos os sucessores de uma vez ou O(m) para um algoritmo que gera um sucessor por vez. claro que em jogos, o custo de tempo totalmente impraticvel, mas o algoritmo serve como base para anlise matemtica de jogos e algoritmos prticos. (RUSSEL & NORVIG, 2004:160) Abaixo o algoritmo MiniMax. Funo DECISO-MINIMAX funo DECISO-MINIMAX(estado) retorna uma ao entradas: estado, estado corrente do jogo v = MAX(estado) retornar a ao em SUCESSORES(estado) com valor v fim Essa funo retorna uma ao de acordo com o valor MAX obtido do estado corrente do jogo. Funo MAX funo MAX (estado) retorna um valor de utilidade SE(TESTE-TERMINAL(estado)) retornar UTILIDADE(estado) FIM-SE v = - PARA a, s em SUCESSORES(estado) FAA v = MAX(v, MIN(s)) FIM-PARA retornar v fim Essa funo retorna o valor de utilidade do estado atual do jogo se este for um estado terminal ou retorna o valor MAX entre - e todos os ns daquele estado. Funo MIN funo MAX (estado) retorna um valor de utilidade SE(TESTE-TERMINAL(estado)) retornar UTILIDADE(estado) FIM-SE v = + PARA a, s em SUCESSORES(estado) FAA

IA em Jogos A busca competitiva entre o homem e a mquina

- 134

v = MIN(v, MAX(s)) FIM-PARA retornar v fim Essa funo retorna o valor de utilidade do estado atual do jogo se este for um estado terminal ou retorna o valor MIN entre e todos os ns daquele estado.

5.5.4.1.1 Poda alfa-beta


Para RUSSEL & NORVIG (2004:162), o grande problema do algoritmo MiniMax o nmeros de estados do jogo examinados exponencial em relao ao nmero de movimentos. Infelizmente no se pode eliminar o expoente, mas pode-se reduzi-lo pela metade. O mtodo poder calcular a deciso MiniMax sem examinar todos os ns do jogo, a fim de deixar de considerar grandes partes da arvore, utiliza-se a tcnica de poda alfa-beta. Quando aplicada em uma arvore MiniMax ela retornar o mesmo resultado que MiniMax retornaria, mas poda os ns que no teriam influncia a tomada de deciso da jogada. A figura abaixo a rvore da Figura 18, mas o algoritmo MiniMax est com a funo de Poda alfa-beta.

Figura 19: Algoritmo MiniMax com poda alfa-beta


FONTE: Adaptado de RUSSEL & NORVIG, 2004:162

Primeiro o algoritmo busca os valores de B 3, 12 e 8, escolhendo o valor MIN como 3, aps isso move-se para o n C o primeiro valor obtido o 2, sabendo que B tem valor 3, MAX nunca escolheria C, pois o nico valor que poderia sair de toda a anlise de C seria 2 ou menor que 2 e MAX escolheria o maior valor entre 3 (obtido de B) e os valores obtidos de C

IA em Jogos A busca competitiva entre o homem e a mquina

- 135

& D, ento no h razo para continuar a explorar o n C. Esse um exemplo de poda alfabeta. Movendo agora para o n D o primeiro valor obtido 14, esse valor maior que 3 que seria a melhor escolha de MAX, por isso preciso continuar a anlise de D, continuando a anlise em D encontra-se o valor 5 que agora definido como o valor de D esse valor ainda maior que 3, assim ainda precisamos continuar a avaliar D, o terceiro sucessor 2, agora D vale 2. A deciso MAX na raiz entre 3 e 2, MAX decide que a melhor jogada a ser realizada o n B que d valor 3. (RUSSEL & NORVIG, 23004:162) Esse algoritmo pode ser visto com uma simplificao da frmula Valor-MiniMax. Sejam x e y o valor dos dois sucessores no avaliados em C, e seja z o n mnimo entre x e y. o valor n da raiz dado por: VALOR-MINIMAX(raiz) = max(min(3,12,8),min(2,x,y),min(14,5,2)) VALOR-MINIMAX(raiz) = max(3,min(2,x,y),2) VALOR-MINIMAX(raiz) = max(3,z,2) VALOR-MINIMAX(raiz) = 3 Ou seja, o valor da raiz e a deciso MiniMax so independentes das folhas podadas x e y. A poda alfa-beta aplicada em rvores de qualquer profundidade, sendo possvel podar subrvores inteiras no lugar de apenas folhas. O principio geral da funo esse: considerando um n n em algum lugar da rvore, tal que o jogador tenha a escolha at esse n, se o jogador tiver uma escolha melhor no n pai de n ou em qualquer outro n acima dele ento n nunca ser alcanado em um jogo real. Sendo uma vez que descobrirmos o suficiente de n para chegar a concluso de pod-lo. (Idem, 163) Lembrando que o algoritmo MiniMax em profundidade, ento a qualquer momento temos somente ter de considerar ns ao longo de um nico caminho na rvore. A poda alfabeta recebe esse nome a partir de dois parmetros que descrevem os limites de valores propagados de volta que aprecem em qualquer lugar ao longo do caminho: (Ibidem, 163) = o valor da melhor escolha ao longo do caminho MAX = o valor da melhor escolha ao longo do caminho MIN A poda alfa-beta atualiza os valores de e medida que se prossegue e as ramificaes so podadas, logo sabe-se que o valor do n corrente pior que os valores de e para MAX ou MIN respectivamente. (RUSSEL & NORVIG, 2004:163) Abaixo est o algoritmo MiniMax com a poda alfa-beta inclusa Funo BUSCA-ALFA-BETA funo BUSCA-ALFA-BETA(estado) retorna uma ao onde z 2

IA em Jogos A busca competitiva entre o homem e a mquina

- 136

entradas: estado, estado corrente em jogo v = MAX(estado,-,+ ) retornar a ao em SUCESSORES(estado) com valor v fim Essa funo retorna uma ao com base no valor MAX entre o estado atual e -, . Funo MAX funo MAX (estado,,) retorna um valor de utilidade entradas: estado, estado corrente em jogo , o valor da melhor escolha para MAX at o estado atual , o valor da melhor escolha para MIN at o estado atual SE(TESTE-TERMINAL(estado)) retornar UTILIDADE(estado) FIM-SE v = - PARA a, s em SUCESSORES(estado) FAA v = MAX(v, MIN(s,,)) SE(v ) retornar v FIM-SE = MAX(,v) FIM-PARA retornar v fim Essa funo retorna o valor de utilidade do estado atual do jogo se este for um estado terminal ou retorna o valor MAX entre - e todos os valores MIN de s,, daquele estado. Funo MIN funo MIN (estado,,) retorna um valor de utilidade entradas: estado, estado corrente em jogo , o valor da melhor escolha para MAX at o estado atual , o valor da melhor escolha para MIN at o estado atual SE(TESTE-TERMINAL(estado)) retornar UTILIDADE(estado) FIM-SE v = +

IA em Jogos A busca competitiva entre o homem e a mquina

- 137

PARA a, s em SUCESSORES(estado) FAA v = MIN(v, MAX(s,,)) SE(v ) retornar v FIM-SE = MIN(,v) FIM-PARA retornar v fim Essa funo retorna o valor de utilidade do estado atual do jogo se este for um estado terminal ou retorna o valor MIN entre e todos os valores MAX de s,, daquele estado. A poda alfa-beta tem seu efeito dependente da ordem que feita a anlise dos sucessores, no se pode podar quaisquer sucessores de D, porque os primeiros sucessores gerados foram os piores do ponto de vista de MIN. Se o terceiro sucessor fosse analisado primeiro, D poderia ser podado, Isso da idia que pode valer a pena avaliar os melhores sucessores primeiro. (RUSSEL & NORVIG, 2004:164) Supondo que isso seja feito, ento alfa-beta precisar examinar apenas O(bd/2) ns para escolher entre o melhor, em vez de O(bd) para MiniMax, significando um fator de ramificao efetivo igual a b em vez de b, no caso do xadrez 6 em vez de 36, ou seja a poda alfa-beta

poder examinar antecipadamente uma distncia duas vezes maior que a do MiniMax no mesmo perodo de tempo. E os sucessores forem examinados em ordem aleatria, ao invs de seguir uma ordem lgica o nmero de ns examinados seria de O(b3d/4). No caso do xadrez com uma ordenao simples de experimentar primeiros as capturas, depois ameaas, depois movimentos para frente, e em seguida os movimentos para trs levar a uma profundidade duas vezes maior que O(bd/2). (Idem, 164-165) O algoritmo de MiniMax foi um dos primeiros algoritmos de IA a chegar nos jogos, ele muito utilizado em jogos de tabuleiro como xadrez, damas, gamo, jogo-da-velha e etc.

5.5.4.2 Algoritmo A* (A-Star) pathfinding


Dos algoritmos de busca disponveis o A-Star o mais utilizado em jogos eletrnicos, sendo que os prprios desenvolvedores fazem suas prprias verses do algoritmo. O A* um algoritmo onde utiliza uma funo heurstica que determina a qualidade de cada um dos

IA em Jogos A busca competitiva entre o homem e a mquina

- 138

estados possveis, por meio de um custo para a melhor rota at o destino passando pelo n atual. Esse custo determina a qualidade do caminho, quanto menor o custo melhor o caminho. (PERCIA et. al., 2005:156) Pelo seu funcionamento o A* um algoritmo completo e timo, ou seja, dada uma funo heurstica, se o problema tiver uma resposta, ele vai ser encontrado e sempre ser o de menor custo. Essa tcnica amplamente utilizada para jogos de estratgia, onde os agentes devem procurar a melhor rota para se deslocar no cenrio essa busca conhecida como path finding, pode-se utilizar a analise do terreno para aumentar ou diminuir o custo do caminho, onde pontos do mapa so identificados como pontes, travessias ou rios. (Idem, 56) A busca A* a forma de busca pela melhor escolha mais conhecida. Ela avalia ns combinando g(n), o custo para alcanar cada n, e h(n), o custo para ir do n at o objetivo: (RUSSEL & NORVIG, 2004:97) f(n) = g(n) + h(n) Conforme RUSSEL & NORVIG (2004:97), g(n) o custo do caminho do n inicial at o n atual, e h(n) o custo do caminho entre o n atual e o n de destino, temos: f(n) = custo estimado da soluo de custo mais baixo passando pelo n atual. Desse modo, se tenta encontrar a soluo de custo mais baixo, a opo razovel seria experimentar o menor valor de g(n) + h(n). Realmente essa estratgia mais do que razovel. Desde que a funo heurstica h(n) satisfaa certas condies, a busca A* ser ao mesmo tempo completa e tima. (Idem, 97) A anlise do carter timo de A* se usada com uma BUSCA-EM-RVORE. Nesse caso A* ser timo se h(n) seja uma heurstica admissvel, ou seja, desde que h(n) supere o seu custo para alcanar o objetivo. Heursticas so sempre otimistas por natureza, pois sempre estimam um custo menor de soluo do que na realidade. Com isso como g(n) o custo verdadeiro de se chegar ao n atual, tem como conseqncia f(n) no superestimar o custo de uma soluo passando por aquele n. (Ibidem, 97) Imagine algum na cidade de Arad, na Romnia, ele aproveita as suas frias, aproveitando os pontos tursticos da cidade e tudo mais, porm ele tem uma passagem noreembonsvel para sair de Bucareste no dia seguinte, ento ele toma como um objetivo chegar a Bucareste, porm ele no sabe como chegar a Bucareste o mais rpido possvel. (RUSSEL & NORVIG, 2004:62) De Arad saem trs estradas uma para Sibiu, uma para Timisoara e uma para Zerind, nenhuma delas leva diretamente para Bucareste, para isso ele precisa saber qual cidade dentre essas trs cidades fica mais prxima de Bucareste para escolher o seu caminho. (Idem, 62)

IA em Jogos A busca competitiva entre o homem e a mquina

- 139

A figura abaixo demonstra um mapa rodovirio da Romnia de modo simplificado demonstrando o ponto de partida Arad e o ponto de destino Bucareste em destaque, alm das distncias entre cada cidade.

Figura 20: Mapa rodovirio simplificado da Romnia


FONTE: Adaptado de RUSSEL & NORVIG, 2004:65

Como exemplo de heurstica ser utilizado a distncia em linha reta hDLR, pois a menor distncia entre dois pontos uma reta, sendo assim a reta no pode ser superestimada. (RUSSEL & NORVIG, 2004:97) A tabela abaixo demonstra os valores das distancias em linha reta hDLR.

TABELA 4: Distncias hDLR das cidades da Romnia


Cidade Distncia Cidade Distncia Arad 366 Mehadia 241 Bucareste 0 Neamt 234 Craiova 160 Oradea 380 Dobreta 242 Pitesti 100 Eforie 161 Rimnicu Vilcea 193 Fagaras 176 Sibiu 253 Giurgiu 77 Timisoara 329 Hirsova 151 Urzecini 80 Iasi 226 Vaslui 199 Lugoj 244 Zerind 374 FONTE: Adaptado de RUSSEL & NORVIG, 2004:96

IA em Jogos A busca competitiva entre o homem e a mquina

- 140

O algoritmo A* para Bucareste executado ele obtm os valores de g(n) com base nos dados da Tabela 4 e da Figura 20. O algoritmo expande de Arad exibindo Sibiu f(393), Timisoara f(447) e Zerind f(449), Sibiu a cidade escolhida pois a que possui o menor f(n). Agora Sibiu expandida obtendo as seguintes cidades com seus respectivos f(n): Arad f(646), Fagaras f(415), Oradea f(671), Rimnicu Vilcea f(413), essas cidades se juntam a Timisoara e Zerind, para a prxima escolha, sendo escolhida a cidade de Rimnicu Vilcea f(413), com a expanso de Rimnicu Vilcea as cidades de Craiova f(526), Pitesti f(417) so adicionadas e Sibiu f(553) aparece novamente, porm com outro valor, nessa expanso dentre as cidades foi escolhida a cidade de Fagaras por apresentar o menor f(n), nessa iterao f(415), j obtida na expanso anterior. Com a expanso de Fagaras a cidade Sibiu aparece novamente com o valor de f(591) e a cidade destino Bucareste aparece com o valor de f(450), porm dentre as cidades que possam ser escolhidas a que possui o menor valor de f(n) Pitesti com o valor de f(417). Expandindo Pitesti aparecem novamente as seguintes cidades com os valores de f(n) Bucareste f(418), Craiova f(615) e Rimnicu Vilcea f(607) dentre todas as cidades presentes agora a prxima escolhida ser Bucareste cujo f(418) a menor dentre todas, chegando assim ao destino. (RUSSEL & NORFIVG, 2004:98) A figura abaixo demonstra o ltimo processo do A*, mostrando os valores de f(n) de cada cidade e indicando o melhor caminho a ser tomado.

Figura 21: Algoritmo A* (A-Star) em ao


FONTE: Adaptado de RUSSEL & NORVIG, 2004:98

IA em Jogos A busca competitiva entre o homem e a mquina

- 141

Percebe-se que Bucareste a cidade de destino aparece na expanso de Fagaras, porm no foi escolhida, pois seu valor de f(450) mais alto do que de Pitesti f(417), isso significa que talvez tenha uma melhor soluo para chegar a Bucareste passando por Pitesti. Isso prova que A* em uma BUSCA-EM-RVORE tima se h(n) admissvel. Suponha que um n objetivo no-timo G2 aparea na borda e tenha um custo C* da soluo tima. Ento com o G2 no timo de h(G2) = 0, sabemos que (RUSSEL & NORVIG, 2004:99): f(G2) = g(G2) + h(G2) = G(G2) > C* Considerando agora, um n de borda n que est no caminho de uma soluo tima, por exemplo, Pitesti. Sempre deve haver tal n se existir uma soluo. Se h(n) no superestimar o valor do caminho de soluo, sabemos que(Idem, 99): f(n) = g(n) + h(n) C* Isso demonstra que f(n) C* < f(G2), e assim o n G2 no ser expandido e A* deve retornar a soluo tima. Se ao invs de utilizar como base a BUSCA-EM-RVORE e utilizar a BUSCA-EMGRAFO, essa prova ser derrubada, pois o algoritmo de BUSCA-EM-GRAFO pode descartar uma soluo tima, pelo seguinte motivo, em BUSCA-EM-GRAFO descarta-se um estado repetido, se o estado da soluo tima no for gerado primeiro ele ser descartado. (Ibidem, 99) Para corrigir este problema tem-se duas maneiras, as primeira soluo estender a BUSCA-EM-GRAFO para que ele consiga analisar os caminhos gerados pelo mesmo n conseguindo dispensar o caminho de maior custo, a segunda soluo garantir que o primeiro caminho encontrado de qualquer n repetido seja o melhor. Essa propriedade ser valida se for imposta o requisito de consistncia ou de monotonicidade53. Uma heurstica h(n) consistente se para todo n n e todo seu sucessor n gerado por qualquer ao, o custo do objetivo gerado por n no seja maior que n somado ao custo de alcanar o objetivo a partir de n: (RUSSEL & NORVIG, 2004:99) h(n) c(n,a,n) + h(n) Essa uma forma de desigualdade de tringulos geral que diz que cada lado de um tringulo no pode ser maior que a soma dos outros dois lados, nesse caso o tringulo formado por n, n e o objetivo mais prximo de n. fcil mostrar que toda heurstica consistente tambm admissvel. A conseqncia mais importante de consistncia : A* usando BUSCA-EM-GRAFO timo se h(n) consistente. (Idem, 2004:99)

53

Similaridade de dois objetos crescendo com o aumento de correspondncia e a reduo da diferenas.

IA em Jogos A busca competitiva entre o homem e a mquina

- 142

Embora a consistncia seja um requisito mais rgido que a admissibilidade, precisa-se de muito trabalho para desenvolver uma heurstica admissvel, porm no consistente, por exemplo, hDLR, sabemos que a desigualdade de tringulos geral satisfeita quando cada lado medida pela distncia em linha reta, e a distncia em linha reta de n, n no seja maior que c(n,a,n). em conseqncia hDLR uma heurstica consistente. (RUSSEL & NORVIG, 2004:99) Abaixo est um exemplo do algoritmo de A* em Java package aima.search.informed; import java.util.Comparator; import aima.search.framework.Metrics; import aima.search.framework.Node; import aima.search.framework.PrioritySearch; import aima.search.framework.Problem; import aima.search.framework.QueueSearch; public class AStarSearch extends PrioritySearch { public AStarSearch(QueueSearch search) { this.search = search; } class NodeComparator implements Comparator { private Problem problem; NodeComparator(Problem problem) { this.problem = problem; } public int compare(Object aNode, Object anotherNode) { Node one = (Node) aNode; Node two = (Node) anotherNode; int h1 = problem.getHeuristicFunction().getHeuristicValue( one.getState()); double g1 = one.getPathCost(); int h2 = problem.getHeuristicFunction().getHeuristicValue( two.getState()); double g2 = two.getPathCost(); double s1 = g1 + h1; double s2 = g2 + h2;

IA em Jogos A busca competitiva entre o homem e a mquina

- 143

if (s1 == s2) { return 0; } else if (s1 < s2) { return -1;} else { return 1; } } } public Metrics getMetrics() { return search.getMetrics(); } protected Comparator getComparator(Problem p) { return new NodeComparator(p); } } Neste exemplo a classe AStarSAearch compara o custo de dois ns retornando 0 se forem iguais, -1 se o primeiro n for menor que o segundo e 1 se o primeiro n for mais que o segundo, o n definido menor novamente passar por essa classe, porm com um outro n para verificar que m tem o custo menor, para ser adicionado ao caminho da soluo tima.

5.5.4.2.1 Algoritmo A* (A-Star) pathfinding nos jogos


O algoritmo de A* em jogos um pouco diferente do normal, pois ele precisa ser tratado de uma forma diferente, por exemplo, tem-se um mapa e um personagem esse personagem est num ponto A e precisa ir para um ponto B entre esses dois pontos h uma parede. A primeira coisa a se fazer escanear o mapa dividindo ele em pedaos iguais. (LESTER, POLICYALMANAC:2004) A figura abaixo mostra o mapa sendo dividido.

Figura 22: Mapa escaneado em quadrados


FONTE: LESTER, POLICYALMANAC:2004

IA em Jogos A busca competitiva entre o homem e a mquina

- 144

Foi utilizado quadrados para dividir o mapa, porm pode-se utilizar qualquer forma geomtrica para dividir o mapa tringulo, trapzio, hexgonos entre outros. Esses quadrados sero os ns para a escolha do caminho. (LESTER, POLICYALMANAC:2004) O prximo passo definis os valores de f(n), g(n) e h(n) para cada n. f(n) continua o mesmo: f(n) = g(n) + h(n) Para g(n), que a distncia do quadrado corrente para o prximo quadrado sendo definido com dois valores 10 e 14, 10 para quadrados que estejam na horizontal ou vertical e 14 para os quadrados que esto pelas diagonais.(Idem, POLICYALMANAC:2004) Para h(n), que a distncia entre o quadrado corrente e o quadrado de destino definido como 10 vezes o nmero de quadrados que se leva para ir do quadrado atual at o quadrado de destino ignorando obstculos e qualquer movimento diagonal, esse mtodo conhecido como mtodo Manhatan. (Ibidem, POLICYALMANAC:2004) calculado os f(n), g(n), h(n), de todos os quadrados adjacentes (filhos) do quadrado inicial (pai), dando o resultado demonstrado na figura abaixo.

Figura 22: Obteno dos primeiros valores f(n), g(n), h(n)


FONTE: LESTER, POLICYALMANAC:2004

encontrado como melhor opo o quadrado da direita com o f(14), agora ele ser o quadrado principal (pai), nesse momento o quadrado inicial anterior e o quadrado atual so adicionados em uma lista. (LESTER, POLICYALMANAC:2004) Executa os passos anteriores, porm ignoram-se os quadrados que representam as paredes, nesse momento encontram-se dois quadrados com valores de f(n) iguais, para a tomada de deciso pode-se escolher qualquer quadrado, por um motivo de rapidez pode

IA em Jogos A busca competitiva entre o homem e a mquina

- 145

escolher

ltimo

ter

feito

os

clculos

da

rodada

anterior.

(LESTER,

POLICYALMANAC:2004) escolhido ento o quadrado abaixo ao quadrado atual, esse quadrado tambm adicionado na lista juntamente com os outros dois quadrados atuais antigos, passando o ttulo de quadrado atual para esse novo. (Idem, POLICYALMANAC:2004) Nesse momento encontra-se um outro caso especial, pois um dos quadrados adjacentes a este novo quadrado est abaixo da parede no mapa ignorado, pois para chegar at ele no podemos andar pela diagonal apesar de termos o valor de g(n) para a diagonal 14, para chegar l primeiro deve-se descer e depois ir para a direita dando a volta na parede, essa regra opcional ela depende de como os ns foram definidos os ns no primeiro momento. (Ibidem, POLICYALMANAC:2004) A figura abaixo apresenta esse cenrio.

Figura 23: Quadrado abaixo da parede sendo ignorado


FONTE: LESTER, POLICYALMANAC:2004

Retirando os quadrados j escolhidos, agora temos trs opes o quadrado da esquerda o quadrado abaixo e o quadrado abaixo e a direita, agora tomada a deciso do prximo quadrado para ser adicionado a lista sendo formada pelos quadrados atuais anteriores.Esses passos so repetidos at ser acrescentado na lista o quadrado de destino. (LESTER, POLICYALMANAC:2004)

IA em Jogos A busca competitiva entre o homem e a mquina

- 146

A figura abaixo mostra o quadro final da execuo do A*

Figura 24: Caminho completo


FONTE: LESTER, POLICYALMANAC:2004

A figura 24 demonstra ainda que durante a execuo do algoritmo houve uma troca da melhor soluo demonstrada pelo segundo quadrado abaixo do quadrado inicial em que o quadrado pai dele foi mudado da ltima vez que ele foi demonstrado na figura 23. (LESTER, POLICYALMANAC:2004) Na figura 23 o quadrado pai dele estava acima a direita, e agora o quadrado pai dele est acima dele. Para encontrar o caminho agora basta seguir a lista formada pelos quadrados adicionados l iniciando do quadrado de destino at chegar ao quadrado de origem. (Op. Cit., POLICYALMANAC:2004) O algoritmo de A* utilizado em jogos pra realmente encontrar o melhor caminho a ser tomado, sendo mais utilizado em jogos de estratgia como Age of Empires ou WarCraft, onde deve-se mover unidades de exrcito ou unidades normais. O algoritmo de A* pode ter vrias implementaes, porm o que foi demonstrado aqui o bsico que o algoritmo deve fazer.

IA em Jogos A busca competitiva entre o homem e a mquina

- 147

5.5.4.3 Algoritmos Genticos


Algoritmos genticos so utilizados em qualquer campo como a-life, computao revolucionaria e redes neurais o bom entendimento do processo de um algoritmo gentico importante para a compreenso da IA de um jogo. Algoritmos genticos so mtodos usados para resoluo de problemas de busca e otimizao inspirados no principio da evoluo. (FERNANDES, 2005:115) Ao longo das geraes, as populaes evoluram na terra utilizando os princpios definidos por Darwin (1859), seleo natural e sobrevivncia do mais forte. Os Algoritmos Genticos (AG) imita esse processo para encontrar solues para os problemas do mundo real. Essa evoluo que as solues sofrem, dependem, de uma codificao entre elas. (Idem, 115) Na natureza, o cruzamento entre diferentes indivduos ancestrais pode gerar superindividuos, tendo uma adaptao bem maior que seus pais. Desta forma que as espcies evoluem, tendo caractersticas adaptadas ao ambiente em que vive. (Ibidem, 115) Os AGs trabalha com uma analogia direta com a natureza. Trabalhe-se com uma populao de indivduos, onde cada um representa a soluo do problema. (FERNANDES, 2005:115) Cada indivduo se associa um grau de aptido, determinando a capacidade de competir com os outros indivduos da populao, quanto maior a sua aptido mais chances ele tem de ser escolhido pra cruzar com outro individuo escolhido da mesma forma, desse cruzamento ser gerado descendentes com as caractersticas dos indivduos que se cruzaram. Quanto menor for a probabilidade do individuo, menor ser a possibilidade de propagao das caractersticas desse individuo para as geraes futuras. Com isso se produz uma nova populao que substitui a antiga atendendo melhor a soluo. (Idem, 115-116) Assim ao longo das geraes, as melhores caractersticas se propagam, facilitando assim a explorao de reas do espao de busca. Quando os AGs so bem projetados grande a possibilidade de encontrar a soluo tima. (Ibidem, 116) Apesar que AGs no encontram a melhor soluo sempre uma mais prxima, com bases empricas ele ir retornar sempre a soluo mais prxima da melhor. (FERNANDES, 2005:116) Caso seja utilizado outra tcnica para solucionar o problema os AGs com certeza seriam passados para trs. (Idem, 116)

IA em Jogos A busca competitiva entre o homem e a mquina

- 148

Basicamente o, os AGs tratam os problemas de otimizao como o processo iterativo da busca pela melhor soluo para o problema. Iniciando com um conjunto de selees naturais, constituindo a populao inicial. Com essa populao gerada uma nova populao, sendo que a cada repetio a populao trocada, chegando at a soluo do computador. (FERNANDES, 2005:116)

5.5.4.3.1 Codificao
Para FERNANDES (2005:117), os indivduos participantes de uma populao so identificados como genes, que juntos formam uma coleo de valores a representao deles geralmente em cadeias de 1 e 0. A adaptao de um individuo ir depender somente da analise de seu gentipo a partir de seu fentipo, ou seja, calculada em conta com um cromossomo escolhido por uma funo de avaliao ou de adaptao. A funo de adaptao projetada para cada problema. Dado um cromossomo, a funo associa um numero real, que se supem refletir o nvel da adaptao do individuo representado pelo cromossomo ao problema. Durante a fase reprodutiva so selecionados os indivduos da populao para o cruzamento e produo de descendentes, que formaro a prxima gerao aps sofrerem a mutao. (Idem, 118) O sorteio dos pais deve ser feito randomicamente, por um sistema que favorea os indivduos melhores adaptados, uma vez que cada indivduo se associa a uma probabilidade de ser selecionado que proporcional a funo de avaliao. Esse procedimento conhecido como roleta. Isso faz com que os indivduos que so mais adaptados possuam a menor probabilidade de ser escolhido. (Ibidem, 2005:118) Aps, selecionados os cromossomos dos indivduos so combinados, utilizando operadores de cruzamento e mutao.

5.5.4.3.1.1 Cruzamento
O operador de cruzamento toma dois pais selecionados e divide seus cromossomos em uma forma aleatria, aps os pedaos entre os dois serem separados, preciso intercalar os pedaos geando assim uma famlia inteira, os descendentes herdam caractersticas de cada um dos pais. (FERNANDES, 2005:118)

IA em Jogos A busca competitiva entre o homem e a mquina

- 149

Habitualmente o operador de cruzamento executado em indivduos que tenham uma probabilidade entre 0,5 e 1,0. Se o operador no se aplicar ao gene feita cpia dos pais muito bem simplesmente. (FERNANDES, 2005:118)

5.5.4.3.1.2 Mutao
O operador de mutao se aplica em cada filho de maneira individual, alterando de forma aleatria toda a estrutura de cada gene gerado. (FERNANDES, 2005:119) Pensa-se que o operador de cruzamento seja mais importante que o de mutao, porm o operador de mutao serve para garantir que nenhum individuo tenha a probabilidade de escolha igual a zero, e de fundamental importncia para assegurar a convergncia dos AGs. (Idem, 119) Para critrios prticos de grande importncia a convergncia introduzida por De Jong(1975). Se o AG foi implementado corretamente, a populao evoluir de tal forma que a mdia da adaptao geral, assim como a adaptao do melhor individuo ser incrementada a chegar a ser uma soluo tima. (Ibidem, 119) Este conceito est relacionado com a idia de progresso para a uniformidade, ou seja um gene ser convertido quando ao menos 95% da populao possuir o mesmo gene. A populao converge quando todos os genes so convergidos. Essa definio pode ser generalizada quando pouco dos genes tiverem sido convergidos. (FERNANDES, 2005:119) Cada vez que a populao aumenta, a probabilidade de encontrar a soluo tima aumenta tambm.

5.5.4.3.2 Funo Objetivo


Um dos aspectos que mais influenciam um AG a determinao da sua funo de adaptao ou objetivo f(o), bem como a codificao utilizada para tal. (FERNANDES, 2005:123) O ideal implementar uma funo de tal forma que, seja permitido verificar dois indivduos prximos em uma populao serem vlidos. (Idem, 123) Para essa funo, existem diversas propostas, porm a mais comum onde os indivduos no verificam as restries, so desconsiderados e o AG segue gerando novos indivduos para a obteno de indivduos vlidos. Outra forma utilizar um reparador que

IA em Jogos A busca competitiva entre o homem e a mquina

- 150

refar a construo dos genes que foram utilizados para a obteno desse individuo. (FERNANDES, 2005:123) Outro enfoque se baseia penalizando a funo de adaptao. Isso seria feito dividindo o resultado da funo pela quantidade de infraes que o gene cometeu no momento de sua criao isso denominado de custo de reconstruo, que consiste realmente em dar um custo converso do gene de tal forma que no viole mais nenhuma restrio. (Idem, 123) Outra tcnica utilizada quando a funo objetivo muito complexa denominada de avaliao aproximada, em certos casos melhor ter como base o resultado de vrias funes objetivo do que se ater a uma. (Ibidem, 123) Os AGs tm um problema nas suas execues. As vezes o algoritmo to rpido que a convergncia d uma falha no momento da convergncia, esse erro denominado de convergncia prematura, em que o algoritmo converge para o local timo. Em outros casos acontece realmente o trabalho, feito uma convergncia lenta do algoritmo, a soluo para isso seria as transformaes na funo. (Ibidem, 123) O problema de convergncia prematura ocorre quando a seleo de um individuo demora o tempo proporcional do teu trabalho. Neste caso podem existir indivduos com uma adaptao ao problema bem superior aos outros, ou seja, a medida que o algoritmo cresce esses indivduos dominam todos os outros. Costuma-se evitar esses superindividuos, por meio da transformao. Esse problema lento e resolvido de maneira bem anloga, expandindo a rea de influencia do algoritmo gentico. (FERNANDES, 2005:123)

5.5.4.3.3 Algoritmo Gentico Simples


Abaixo est um exemplo do Algoritmo Gentico bem simples. Funo ALGORITMO-GENETICO funo ALGORITMO-GENETICO(populao, FN-FITNESS) retorna um individuo entradas: populao um conjunto de indivduos FN-FITNESS, funo que mede a adaptao do individuo REPITA nova populao = conjunto vazio PARA i = 1 at TAMANHO(populao) FAA x = SELECO-ALEATRIA(POPULASO,FN-FITNESS) y = SELECO-ALEATRIA(POPULASO,FN-FITNESS)

IA em Jogos A busca competitiva entre o homem e a mquina

- 151

filho = REPRODUZ(x, y) SE (pequena probabilidade aleatria) filho = MUTAO(filho) FIM-SE Adicionar filho a nova populao populao = nova populao AT algum individuo estar adaptado ou at ter decorrido o tempo suficiente RETORNAR o melhor individuo em populao de acordo com FN-FITNESS fim Essa funo mostra de que forma foi feita a escolha dos genes pais e a avaliao do gene gerado do cruzamento para a criao da nova populao Funo REPRODUZ() funo REPRODUZ(x,y) retorna um individuo entradas: x, y, indivduos pais n = COMPRIMENTO(x) c = nmero aleatrio de 1 a n retornar CONCATENA(SUBCADEIA(x,1,c), SUBCADEIA(y,c+1,n)) fim Essa funo demonstra a forma que feita o cruzamento entres os pais gerando assim um nico filho.

5.5.4.3.4 Algoritmos Genticos em Jogos


Alguns jogos de corrida possuem diversos carros como Gran Turismo cerca de 500 carros cada um requer uma adaptao evoluo de suas habilidades relacionadas em performance e direo, ento algumas companhias utilizam dos algoritmos genticos para automatizar a atividade de tuning, gerando assim todas as possveis combinaes de carros, modificando os parmetros de performance dos carros chegando a obteno dos resultados timos. Esses resultados sero guardados para serem utilizados durante o jogo. (FILHO, 2005:25) Em jogos de estratgia ou de simulao como SimCity utiliza-se dos Algoritmos Genticos para obter a populao da cidade em que est administrando.

IA em Jogos A busca competitiva entre o homem e a mquina

- 152

5.5.5 IA Hierrquico
Em jogos de estratgia h objetivos que devem ser cumpridos, porm que entram em conflito, por exemplo o computador deve mover um exrcito do ponto A para o ponto B, porm durante o caminho o exercito atacado pelo inimigo, agora o computador deve decidir o que fazer, se as unidades atacadas contra-atacaram ou se o exercito inteiro para e s continua quando tudo estiver bem, ou simplesmente ignorar o ataque e continuar at o seu principal objetivo. Para que o computador tenha uma deciso a IA do jogo deve estar preparada para tal situao, tratando a situao como um objetivo individual ou um objetivo do grupo como um todo. (POLIS, UNIDEV:2003) Para a implementao de uma IA em jogos de estratgia como Age of Empires, Command & Conquer entre outros preciso que o IA do oponente seja referente a uma estratgia militar, para isso basta manter um subsistema de programao em que possui entradas para uma situao geral. Esse subsistema pode ser uma simples tabela de pesquisas, ou uma rede neural, coleo e regras, configurao de lgica e etc, com a caracterstica de ser simples e obediente, ou deve aceitar entradas e gerar sadas. (Idem, UNIDEV:2003) Este simples subsistema dever ter informaes relacionadas a todas as suas unidades como posio e status, sendo muito ineficiente, isso seria igual a apresentao de dados a um general que com essas informaes daria ordens a seus soldados. (Ibidem, UNIDEV:2003) Porm o general no cria a deciso e nem busca as informaes de seus soldados, ao invs disso ele dever receber informaes de estratgia dos comandantes, desenvolver uma estratgia e mostrar aos seus comandantes, para que os comandantes tenham uma deciso, e isso vai acontecendo at chegar ao soldado de mais baixo nvel. (POLIS, UNIDEV:2003) Esse processo pode ser dividido em diversos nveis, onde cada nvel recebe informaes do nvel imediatamente abaixo, resumos ou generalizaes apresentando o resultado para o nvel acima, j esse nvel ainda receber configuraes dos objetivos, ele utiliza as duas informaes para ter o objetivo da forma mais clara o possvel, aps isso o objetivo mandado para o nvel inferior. (Idem, UNIDEV:2003) Resumindo a informao atravs dos nveis filtrada para cima, sendo mais progressivo conforme realiza a subida, enquanto os comandos se tornam objetivos e so filtrados para baixo tornando-se mais detalhado e progressivo. (Ibidem, UNIDEV:2003) O modelo para a implementao ser uma rvore de DMS (decision makjng system), sendo utilizada para demonstrar o encadeamento do nvel militar, cada hierarquia militar ser

IA em Jogos A busca competitiva entre o homem e a mquina

- 153

representada por um nvel. As entradas para esse sistema seria a entrada do nvel e a informao obtida seria resumida e enviada para um nvel abaixo. As sadas desses nveis serviriam para mais um nvel. Sadas para o nvel 0 igual a mandar atualizar o campo. (POLIS, UNIDEV:2003). Abaixo uma figura mostrando essa abstrao

FIGURA 25: IA Hierrquico


Fonte: Adaptado de POLIS

A vantagem desse esquema que permite vrios nveis. No nvel mais alto, as decises poderiam ser essas: Direcionar todas as atividades de militares em territrios em X; Conduzir as guerras de atrito em territrios X,Y e Z; Evitar compromisso militar direto concentrar na interrupo do inimigo. Nestas circunstncias , mais provvel que s o computador tente uma quantia de olhares digitais, ou considere o que est no campo.

5.5.6 Linguagens de Script


A grande maioria dos jogos so desenvolvidos com linguagens de script,

IA em Jogos A busca competitiva entre o homem e a mquina

- 154

Sem uma definio muito precisa, as linguagens de Script apresentam algumas caractersticas em comum. As linguagens de Script so interpretadas, possuem gerencia de memria automtica, tipagem dinmica, fornecendo suporte a criao de estruturas de dados e manipulao de dados. Essas linguagens normalmente funcionam em programas implementados em linguagens compiladas como C ou C++, outra vantagem que elas so seguras, no podendo acessar servios sem a permisso do programa hospedeiro. A unio dessas caractersticas torna as linguagens de script uma tima ferramenta para o desenvolvimento de um jogo. (CELES et. al., 2004:1) Utilizar uma linguagem de script no desenvolvimento de jogos traz diversos benefcios, elas podem ser usadas para o desenvolvimento de um jogo inteiro, para definio completa dos objetos do jogo, gerenciamento de algoritmos de IA, controlar personagens, tratar eventos de entrada e montar a interface com o usurio. Ela tambm usada nas etapas de prototipao, teste, depurao e anlise do jogo. A utrilizao de linguagens de script ainda permite que roteiristas e designer possam programar o jogo, onde eles podem testar novas idias. Esses profissionais em grande parte di tempo esto ligados ao desenvolvimento de um jogo, porm no so grandes profissionais especializados em programao. (Idem, 1)

5.5.6.1 Classificao
As linguagens de script podem so divididas pelo seu nvel de complexidade: Linguagens de configurao; Linguagens de Macro; Linguagens embutidas.

Linguagens de configurao: servem para selecionar preferncias so tipicamente arquivos com valores referenciados para diversas variveis, por exemplo arquivos .ini do Windows. (CELES et. al., 2004:2) Linguagens de macros: servem para automao de tarefas, normalmente so arquivos sem nenhum ou pouco controle com uma lista de aes a ser executadas, por exemplo arquivos para configurao automtica de conexes com a internet via modem. (Idem, 2) Linguagens embutidas: permitem o acesso programvel a servios referentes a aplicao, com um completo fluxo de controle alm de funes escritas pelo usurio. Essas linguagens so completas e geralmente so variantes simples de linguagens tradicionais como Lisp ou C. (Ibidem, 2)

IA em Jogos A busca competitiva entre o homem e a mquina

- 155

Fora do contexto da complexidade da linguagem, a utilizao de uma linguagem de script uma ferramenta muito poderosa, permitindo que muitos aspectos da aplicao sejam controlados a partir de arquivos textos que podem ser editados facilmente pelo programador ou pelo usurio, sem precisar reconstruir todo o software. Tornando o desenvolvimento mais gil, pois partes no importante podem ser desenvolvidas por membros da equipe que no so programadores profissionais como no desenvolvimento dos jogos. (CELES et. al., 2004:2) Alm de poder ser utilizada para vrias tarefas permitindo um aumento na produtividade global, pois no preciso documentar mais de uma vez o sistema para padres diferentes. Para o usurio isso define o reaproveitamento automtico dos conceitos aprendidos para a realizao de varias tarefas. (Idem, 2)

5.5.6.2 Scripts em Jogos


Em jogos de RPG utilizados scripts, pois a maioria dos RPGs possuem uma histria especifica lineares ou com bifurcaes lineares, ou seja, o jogador no tem liberdade, deixando ele seguir somente um caminho pr-definido, isso facilita o uso de scripts. Os scripta so utilizados para a construo de flags, dilogos, inimigos especficos e comportamento de um NPCs. (FILHO, 2005:7) Em Adventures utilizam muitos dilogos, e so exibidas seqncias de quebra-cabeas em algum lugar do jogo, o script permite aos programadores e designers a incorporar essas caractersticas ao jogo. (Idem, 10) Em alguns jogos de FTPS utilizado scripts em todos os objetos de ambientes como inimigos, dilogos interao com o jogador e com o mundo. A utilizao de Scripts em geral ajuda a contar a histria do jogo, nos demais jogos de FTPS os scripts so utilizados para insero de cust scenes e movimentar a cmera. (Ibidem, 15) O uso de scripts em jogos de plataforma permite um fino controle sobre o fluxo do jogo, como o encontro com o chefe da fase com o personagem principal. muito comum ainda existir algum personagem que ajuda o jogador em relao aos comandos e movimentos especiais, o script para esse personagem pode ser usado para adicionar uma ao a esse personagem ou aprender movimentos que o jogador ensine para ele. (FILHO, 2005:17-18) O uso de scripts em jogos de corrida utilizado para combinar os sistemas de trfego de trnsito e de pedestres, onde padres de movimentao so scripts e se interagem entre si, por exemplo se um carro derrapar da rua e entrar na calada os pedestres tero uma reao

IA em Jogos A busca competitiva entre o homem e a mquina

- 156

para aquela situao, eles devem ter os comportamentos alterados excedendo o script para escapar do atropelamento. (FILHO, 2004:25) Scripts so usados em jogos de luta para que os designers definem tudo o que deve acontecer para todo movimento do personagem, alm de ser utilizado para introduo de cut scenes, como quando os dois lutadores entram na arena ou depois de haver algum vencedor esse vencedor executar uma dana festejando sua vitria. (Idem, 27)

5.5.6.3 Linguagem Lua


Grande parte dos jogos que utilizam linguagens de script tem como principal linguagem utilizada a linguagem Lua, devido ao seu tamanho, bom desempenho, fcil integrao e portabilidade. Lua utilizada por diversas empresas da indstria de jogos como LucasArts, BioWare, Microsoft, Relic Entertainment, Absolute Studios e Monkeystone Games. (CELES et. al., 2004:1) A Linguagem Lua uma linguagem de programao poderosa e leve, desenvolvida para estender aplicaes, ou seja, para ser acopladas em sistemas maiores que necessitem ler arquivos de configuraes escritos pelos usurios, ela possui uma sintaxe semelhante a do Pascal, porm com construes modernas, como funes annimas, inspiradas no paradigma funcional, e poderosos construtores de dados, fazendo com que Lua seja uma linguagem de grande expresso e uma sintaxe familiar. (Idem, 2) Ela foi desenvolvida para oferecer meta-mecanismos, possibilitando mecanismos mais especficos. Sendo fcil adequar a linguagem Lua s necessidades da aplicao, sem compremeter as caractersticas bsicas da prpria linguagem. Geralmente os programadores de jogos fornecem abstraes adequadas para facilitar a tarefa dos roteiristas e artistas. (Idem, 1) A Linguagem Lua foi projetada e implementada no Tecgraf, grupo de computao grfica da PUC-Rio. A primeira verso de Lua (1.0) foi lanada em julho de 1993. A verso atual dela (5.0.2) de maro de 2004, lanada com correo das falhas da verso 5.0. (Ibidem, 2) Ela uma linguagem projetada para dar suporte a linguagem procedural, oferecendo facilidade para descrio dos dados. Na programao dos jogos, isso significa que a Lua possibilita combinar os objetos e sua descrio com a programao dos comportamentos de cada objeto somente em um contexto. Ela uma biblioteca padro desenvolvida em C,

IA em Jogos A busca competitiva entre o homem e a mquina

- 157

podendo ser compilada por qualquer compilador de C ou C++. Sendo uma linguagem de script ela trabalha acoplada em uma aplicao. Com essa aplicao pode-se criar e ler valores guardados em Lua, executar funes de Lua registrar funes de C, sendo que essas funes podem ser utilizadas por um programa feito em Lua, podendo conciliar as facilidades da linguagem Lua com a eficincia de linguagens como C. A distribuio Lua vem com um programa hospedeiro lua.c, podendo ser usado para a execuo de scripts e Lua. (CELES et. al., 2005:)

IA em Jogos A busca competitiva entre o homem e a mquina

- 158

CONCLUSO

Ao terminar este trabalho perceberam-se as vantagens de mesclar entretenimento com tecnologia. A inteligncia artificial um campo que est sendo pesquisado e aprimorado em grande escala nos ltimos anos trazendo benefcios para a humanidade, uma das reas que ir impulsionar o desenvolvimento da inteligncia artificial a rea de jogos. Para se desenvolver um jogo preciso ter conceitos de analise de sistemas, e uma grande base em computao grfica. A rea de desenvolvimento de jogos est em expanso crescente. A integrao da inteligncia artificial nos jogos ainda precria tendo agora uma grande nfase, pois os jogos j chegaram a patamares bem grandes em grficos e sons. Sendo agora o desafio de tornar o jogo mais competitivo em relao ao jogador. O trabalho demonstrou o conceito bsico de cada algoritmo de inteligncia artificial utilizado em jogos e tambm demonstrou a lgica de cada um. Para uma continuao seria desenvolvido um jogo contendo o mximo de algoritmos de Inteligncia Artificial para a demonstrao de suas utilizaes

IA em Jogos A busca competitiva entre o homem e a mquina

- 159

ANEXOS

IA em Jogos A busca competitiva entre o homem e a mquina

- 177

REFERNCIAS BIBLIOGRFICAS
CARVALHO, Lus Alfredo Vidal de, Datamining Medicina, economia, engenharia e administrao. So Paulo: rica, 2001. CELES, Waldemar; FIGUEREDO, Luiz Henrique de; IERUSALIMSCHY, Roberto. A Linguagem Lua e suas Aplicaes em Jogos. Rio de Janeiro, 2004. DUARTE, Marcelo. Guia dos Curiosos. So Paulo: Cia. Das Letras, 1998. FERNADES, Anita Maria da Rocha. Inteligncia artificial. Florianpolis: Visual Books, 2005. FERNANDES, Leandro D. Sistemas de controle microprocessados para motores eltricos para motores eltricos utilizando lgica fuzzy. Faculdade de Cincia da computao Dissertao (Graduao) Faculdade Luterana do Brasil. Gravata, 2004 FILHO, Vicente Vieira. Revolution ai engine - desenvolvimento de um motor de inteligncia artificial para a criao de jogos eletrnicos. Faculdade de cincia da computao Dissertao (graduao) Universidade Federal de Pernambuco. Recife, 2005. KISHIMOTO, Andr. Inteligncia Artificial em Jogos Eletrnicos. So Paulo, 2004. MARTIN, Natalia. http://br.news.yahoo.com/18112006/40/saude-noticias-sony-nintendoabrem-novo-capitulo-da-guerra-dos.html -- Acesso em: 20/11/2006 MERKEL, Daniel Santa Catarina. DESENVOLVIMENTO DE UM PROTTIPO DE JOGO 3D UTILIZANDO ENGINE. Faculdade de informtica. Dissertao (graduao) Universidade de Passo Fundo, Passo Fundo, 2005. MESSA, Marcelo; PAIM Marcos,. http://oea.psico.ufrgs.br/roboticando/aibo.htm - Acesso em: 17/10/2006 NORMAND. Reinaldo. http://outerspace.ig.com.br/retrospace/ - Acesso em: 10/09/2006 PANCHIERI, Fabio.; MORATO. Gabriel. http://jogos.uol.com.br/reportagens/historia/ Acesso em: 10/09/2006 PERUCIA, Alexandre Souza; BERTHM, Antonio Crdova; BERTSCHINGER, Guilherme Lage; MENEZES, Roberto Robeiro Castro. Desenvolvimento de jogos eletrnicos. So Paulo: Novatec, 2005. RUSSELL Stuart; NORVIG Peter. Inteligncia artificial. Rio de Janeiro: Editora Campus, 2004.

IA em Jogos A busca competitiva entre o homem e a mquina

- 178

SANTEE, Andr. Programao de jogos com C++ e Directx. So Paulo: Novatec, 2005. SILVA, Flvio Soares Corra da. MAC5701 - Tpicos em Cincia da Computao - Agentes Inteligentes em Jogos de Computador. Faculdade de informtica. Dissertao (graduao) Universidade de So Paulo, 2005. STAIR , Ralph M.; REYNOLDS, George W.. Princpios de sistemas de informao. So Paulo: Thomson, 2006. TATAI, Vitor Kazuo. Tcnicas de Sistemas Inteligentes Aplicadas ao Desenvolvimento de Jogos de Computador. Faculdade de Engenharia Eltrica e de Computao. Dissertao (Mestrado) Universidade estadual de campinas, Campinas, 2003. TATIBANA, Cssia Yuri; KAETSU Deisi Yuki,. http://www.din.uem.br/ia/neurais/ - Acesso em: 16/10/2006 VILIEGAS, Renato. Tudo sobre o Playstation 2: conhea o console lanado no Japo que promete revolucionar o conceito de entretenimento domstico no mundo. Ao games. So Paulo, n.149, p.14-19, mar. 2000 FERRARI, Alexandre da planet.com.br/?view=article&article=3983 Costa Nascimento. http://www.n-

You might also like