0 оценок0% нашли этот документ полезным (0 голосов)
56 просмотров22 страницы
1) O documento discute a evolução dos jogos computadorizados e o uso de técnicas de inteligência artificial neles, desde os primórdios até os dias atuais.
2) Nos anos 1960 surgiram os primeiros jogos experimentais para mainframes, sem foco em IA. Nos anos 1970 houve um aumento dos jogos de texto.
3) Nos anos 1980 houve diversificação com jogos como Pac-Man e Donkey Kong. Nos anos 1990 jogos em 3D como Doom popularizaram a perspectiva em primeira pessoa.
1) O documento discute a evolução dos jogos computadorizados e o uso de técnicas de inteligência artificial neles, desde os primórdios até os dias atuais.
2) Nos anos 1960 surgiram os primeiros jogos experimentais para mainframes, sem foco em IA. Nos anos 1970 houve um aumento dos jogos de texto.
3) Nos anos 1980 houve diversificação com jogos como Pac-Man e Donkey Kong. Nos anos 1990 jogos em 3D como Doom popularizaram a perspectiva em primeira pessoa.
Авторское право:
Attribution Non-Commercial (BY-NC)
Доступные форматы
Скачайте в формате PDF, TXT или читайте онлайн в Scribd
1) O documento discute a evolução dos jogos computadorizados e o uso de técnicas de inteligência artificial neles, desde os primórdios até os dias atuais.
2) Nos anos 1960 surgiram os primeiros jogos experimentais para mainframes, sem foco em IA. Nos anos 1970 houve um aumento dos jogos de texto.
3) Nos anos 1980 houve diversificação com jogos como Pac-Man e Donkey Kong. Nos anos 1990 jogos em 3D como Doom popularizaram a perspectiva em primeira pessoa.
Авторское право:
Attribution Non-Commercial (BY-NC)
Доступные форматы
Скачайте в формате PDF, TXT или читайте онлайн в Scribd
1LLMMMLLW @L 1M11 lMhL1 M M WL M&U 11 WL &U 1l1 1111 11l1 11 1i111l1]11 11 1l 1i1111i11 11111111 1L1WM 1M1Lh LL1M 1MMhM lM1LM MWLh 11M1LhhM1 1MW1L 1MMLM 2 M11Lh _MMMM WL &MM& 3 l1111 1i111]11.......................................................................................................................4 1_LMh ...............................................................................................................................5 & 1h1LM................................................................................................................................5 VLMLh 1MMLML Wh .......................................................................................10 . l@MMh WL 1hWMh 1MMh .....................................................................................10 .& 11 1LMhL ...............................................................................................................11 . VLMLh WL 1MhL .......................................................................................................12 .H l@MMh WL 1@1LMWWM.........................................................................................15 . 111L 11L...............................................................................................................18 .M M11L 1LLM@LMLM 1h [11h .......................................................................19 MMLMhM...............................................................................................................................21 1M11............................................................................................................................22 4 1i111]11 5 1_LMh Os jogos, hoje em dia, utilizam tcnicas de IA na tentativa de embutir uma inteligncia no caracterstica deles, mas desenvolvida ou simulada por tais tcnicas. Os jogos mais comuns onde podemos perceber a aplicao dessas tcnicas so jogos clssicos, como o jogo de Damas, Xadrez e Jogo da Velha. A utilizao de tcnicas de IA faz com que o jogo se torne mais real e por conseqncia, mais envolvente e desafiador para o jogador. A aplicao de IA constitui um fato imprescindvel para um bom um jogo atualmente. & 1h1LM Os jogos computadorizados surgiram na dcada de 60, em verses para mainframes. Devemos considerar que os primeiros jogos foram experimentos para verificao de tcnicas para soluo de problemas, principalmente no que diz respeito a jogos clssicos, como xadrez, Go, damas, entre outros. Porm, importante frisar que, durante o surgimento dos jogos computadorizados interativos, a principal preocupao dos desenvolvedores era com o visual, de certa forma descartando a utilizao de tcnicas de IA. Para simular um comportamento inteligente por parte dos elementos do jogo, muitos desenvolvedores freqentemente utilizavam-se de artifcios de programao que fizessem com que o jogo enganasse o jogador, fazendo com que personagens inimigos tivessem acesso a dados como a posio do jogador em um mapa, por exemplo. Um dos primeiros jogos de computador foi Core Wars (http://www.ecst.csuchico.edu/~pizza/koth), para ambientes UNIX, onde dois ou mais programas de computador jogavam entre si, cada um tendo como objetivo impedir a execuo do(s) outro(s) programa(s). Em 1961, Steve Russel desenvolve Space War (http://www.wheels.org/spacewar/creative/SpacewarOrigin.html) um dos primeiros jogos interativos criados com uma aparncia grfica (os grficos deste jogo eram representados por caracteres ASCII). Neste jogo, dois jogadores se confrontavam com pequenas naves espaciais. A partir dos anos 70, j havia um bom nmero de jogos em modo texto, tambm conhecidos como Multi User Dungeons. (MUDs) sendo executados, tambm, em maiframes. interessante notar que, j nesta poca, os MUDs eram jogados em rede. Cada jogador assumia o papel de um personagem do jogo e comeava a desenvolv-lo. 6 O primeiro jogo a ter grande sucesso comercial foi Pong, criado em 1972 por Nolan Bushnell, fundador da Atari, uma das mais conhecidas companhias especializadas em projetar e construir jogos computadorizados. Com o sucesso de Pong, vrios outros jogos foram criados, cada um com uma srie de inovaes. Como exemplo de jogos que marcaram poca, podemos citar: Breakout: o objetivo deste jogo destruir blocos situados no topo da tela utilizando uma bolinha. Quanto mais blocos destrudos, maior a pontuao do jogador (http://www.io.com/~vga2000/manuals/a2600/a26m0029.txt); Space Invaders: Em Space Invaders, o jogador deve destruir hordas de aliengenas que surgem do topo da tela (http://www.io.com/~vga2000/manuals/a2600b/a26m0190.txt); Asteroids: O jogador deve destruir asterides. Quanto mais asterides forem destrudos, maior a quantidade de pontos recebidos (http://www.io.com/~vga2000/manuals/a7800/a78m0003.txt); Pac-Man: o jogador deve coletar pequenos pontos dentro de um labirinto, enquanto perseguido por fantasmas. Quanto mais pontos forem coletados, maior a pontuao final do jogador. Os anos 80 foram marcados pela grande diversidade de jogos oferecidos. O destaque foi o jogo Donkey Kong (http://www.io.com/~vga2000/manuals/a2600/a26m0063.txt), que deu origem ao personagem Mrio, que esteve presente no jogo Mrio Brothers (http://www.smbhq.com/marframe.htm), criado pela Nintendo em 1984. Neste jogo, o jogador comanda um personagem que deve salvar uma princesa de um rei enlouquecido. O sucesso de mercado atingido por Mrio Brothers foi suficiente para tornar o personagem, criado por Shigeru Miyamato, o principal mascote da Nintendo. Com o surgimento dos primeiros computadores de 16 bits, como o IBM Personal Computer (PC), Atari ST e AMIGA 500, os jogos computadorizados tiveram uma melhoria significativa, no que se refere interface e interao. Alguns jogos de simulao em 3 dimenses (3D) comearam a surgir, como: Flight Simulator (http://www.crosswinds.net/~andysflightsim ): um simulador de vo que hoje, aps muitas verses, utilizado para treinamento de pilotos; 7 Wing Commander (http://www.wingcommander.com ): lanado pela primeira vez em 1990, este jogo basicamente se trata de uma batalha espacial entre humanos a aliengenas. A grande revoluo no jogos computadorizados na plataforma IBM PC surgiu em 1993, quando uma empresa chamada ID Software criou Doom (http://www.doomworld.com ), uma seqncia do jogo :Wolfenstein 3D, tambm da mesma empresa. Em Doom, o jogador controlava um personagem que tinha como objetivo destruir os mais variados tipos de monstros. O grande diferencial do jogo foi a inovao tecnolgica associada ao ambiente sombrio de Doom, onde o jogador visualizava o ambiente pela perspectiva do personagem. Esta tecnologia chamada de First Personal Perspective (Perspectiva em Primeira Pessoa). Doom foi um grande passo em termos de evoluo tecnolgica, tanto no mbito grfico, quanto na rea de IA. Aps o lanamento de Doom, muitos outros jogos inspirados nele surgiram. Alguns com um certo sucesso de mercado, como: Heretic (http://www.planetheretic.com): Heretic um jogo ambientado na idade mdia, onde o jogador deve destruir minotauros e outros monstros mitolgicos; Hexen (http://www.planethexen.com): este jogo a seqncia de Heretic, onde o jogador pode escolher entre mais de um personagem para jogar. Jogos computadorizados em 3D marcaram esta poca, em especial Duke Nuke em 3D, (http://www.dukeworld.com/), um jogo no mesmo estilo de Doom, onde o personagem principal deve proteger a Terra de uma invaso aliengena. O interessante neste jogo, no que tange a aplicao de tcnicas de IA em jogos computadorizados, que o jogador, atravs de uma ferramenta que acompanha o jogo, pode modificar o nvel de IA dos personagens inimigos, tecnologia esta chamada de Extensible AI (IA extensvel) que, a partir de ento, foi implementada em vrios jogos. Esta tecnologia ser descrita de forma mais detalhada na prxima seo. Quando a ID Software lanou, em 1996, Quake (http://www.quakeworld.com), o primeiro jogo em 3D real para PCs, at ento se utilizavam tcnicas onde o ambiente 3D era simulado, isto , se criava a iluso de elementos tridimensionais, sem efetivamente s-los. Porm, apesar de implementar a tecnologia de IA extensvel, permitindo inclusive que os jogadores criassem seus prprios personagens, a aplicao de tcnicas de IA nos elementos do jogo no evoluiu da mesma forma que a computao grfica. A inovao, no que tange a utilizao de tcnicas de IA, veio com ReaperBot 8 (http://www.geocities.com/~macweb/reapermadness), um oponente especialmente criado para ser utilizado em Quake utilizando-se da capacidade de IA Extensvel implementada neste jogo. Este oponente, criado por Steve Polge (que mais tarde seria o desenvolvedor do sistema de IA do jogo Unreal), exibia um comportamento bem mais realstico do que o restante dos elementos do jogo, procurando o jogador por toda a fase, ou se escondendo ou buscando energia para sobreviver quando necessrio. Unreal (http://unreal.epicgames.com/), um jogo do mesmo estilo de Quake, lanado em 1998 pela empresa (Epic Megagames), mostrou um avano significativo no s nas aplicaes de tcnicas de computao grfica, mas tambm no que se refere ao uso de tcnicas de IA aplicada a jogos computadorizados. Foram utilizadas tecnologias de IA baseada em regras, como as Finite State Machines (FSM) e Fuzzy State Machines (FuSM), alm da implementao da tecnologia de Extensible AI, permitindo enorme flexibilidade, fazendo com que os personagens inimigos demonstrassem mais esperteza e agilidade, freqentemente desviando dos ataques do jogador, chamando reforos, ou fugindo quando necessrio. Em Unreal o jogador entra em um mundo que mistura aliengenas hostis e seres msticos. O objetivo do jogo salvar o planeta e sua civilizao dos ataques aliengenas. Unreal um jogo importante, no que tange o histrico da evoluo das tecnologias utilizadas em jogos computadorizados, pois ele mostra que o real impacto de um futuro jogo de sucesso no ser somente o seu potencial grfico, mas tambm o nvel de tcnicas de IA que ele utilizar. Hoje os jogos computadorizados so criados como grandes produes de cinema, com oramentos que facilmente chegam a milhes de dlares. Para criar e desenvolver um jogo de sucesso no mercado atual, leva-se, em mdia, trs anos. Neste tipo de projeto, a equipe composta por: Programadores: encarregados de dinamizar o jogo. Geralmente oriundos da Informtica ou Cincia da Computao, os programadores implementam tcnicas de computao grfica, IA e aplicam conceitos de Fsica para implementar o jogo; Artistas Grficos: so os responsveis pelo layout do jogo, criando os objetos, personagens, texturas, etc; Projetistas de Nveis/Fases: oriundos das mais variadas reas, os projetistas de nveis so aqueles que criam as fases dos jogos e esto associados a sua modelagem; 9 Projetistas de jogos: mais conhecidos por game designers, os projetistas so considerados os administradores dos projetos, por terem envolvimento em quase todas as reas da produo de jogos computadorizados. So eles os responsveis pela criao das idias para a concepo do jogo e pela elaborao do Design Document, um documento detalhado contendo as caractersticas e especificaes do jogo; Planejador de Software (Software Planner): a tarefa do Software Planner dividir o design do jogo (elaborado pelo game designer) em um conjunto de requisitos tcnicos e estimar o tempo e esforo necessrio para implementar tais caractersticas. Arquiteto-Chefe (Lead Architect): a tarefa do Lead Architect trabalhar em conjunto com o Software Planner para produzir um conjunto de especificaes de mdulos, baseados nos requisitos tcnicos identificados pelo Software Planner. O Lead Architect o responsvel pela arquitetura geral do projeto. Gerente de Projeto (Project Manager): a tarefa do Project Manager balancear a carga de trabalho gerada pelo Software Planner e pelo Lead Architect produzindo um planejamento eficiente e organizado. Msicos e sonoplastas: geralmente vindos de reas relacionadas arte e msica, so os responsveis por compor trilhas sonoras, vozes e efeitos especiais para os jogos; Testadores: geralmente surgindo nas fases finais do projeto, os testadores, como o prprio nome j diz, so incumbidos de testar o jogo, procurando por falhas e possveis erros (Bugs). Alm de especialistas nas reas citadas acima, h tambm envolvimento de profissionais de marketing, relaes pblicas, entre outros. Os jogos computadorizados mais atuais possuem grficos 3D avanados, sendo jogados em rede, cooperativamente ou competitivamente, com um nvel razovel de IA aplicada sobre os elementos do jogo. Podemos citar como exemplos de jogos de ltima gerao, que possuem estas caractersticas: Diablo 2 (http://www.blizzard.com/diablo2): uma produo da Bilzzard entertainment onde o jogador pode assumir o papel de cavaleiros, brbaros, amazonas e magos, com o objetivo de destruir um demnio. O interessante neste jogo est na gerao dinmica dos elementos, feita de forma randmica, fazendo 10 com que cada vez que o jogador entre no jogo, as fases, itens e inclusive alguns inimigos, sejam diferentes; Quake III: Arena (http://www.q3arena.com): produzido pela, ID Software, Quake III: Arena um jogo com perspectiva em primeira pessoa (assim como Quake) onde o jogador, em diferentes arenas, enfrenta robs (tambm chamados de bots) com um nvel aperfeioado de IA, se comparado a jogos anteriores. O jogador vencedor na arena se derrotar todos os robs um determinado nmero de vezes. Este estilo de jogo, mais conhecido como deathmach, surgiu com Doom, mas se tornou popular entre jogadores de Quake na Internet. Unreal Tournament (http://unreal.epicgames.com): criado pela (Epic Megagames, o concorrente de Quake III: Arena com a mesma proposta de estilo de jogo. Ambos so muito populares entre jogadores via ,Internet e redes locais. A evoluo dos jogos computadorizados est fortemente ligada aos avanos das tecnologias associadas aos sistemas computacionais. Cada avano no hardware repercute em novas possibilidades para o software. A busca de um maior realismo e interatividade tm levado os projetistas a ampliarem a pesquisa tanto em nvel de computao grfica como IA. A seguir faremos uma anlise das tcnicas de IA utilizadas nos jogos comerciais e alguns experimentos ligados a grupos de pesquisa em universidades. VLMLh 1MMLML Wh Do conjunto de tcnicas de IA disponveis, no momento algumas esto sendo utilizadas com uma certa freqncia na construo de jogos computadorizados. O conjunto destas tcnicas que compem o estado-da-arte, no que tange o uso de tecnologias de IA aplicado a jogos, descrito a seguir. . l@MMh WL 1hWMh 1MMh Enfoques baseados em regras, como as FSMs e as FuSMs, so as tecnologias de IA mais utilizadas atualmente pelos desenvolvedores de jogos computadorizados. De acordo com eles, o uso em larga escala destas tecnologias est associado ao fato de que sua 11 implementao relativamente simples, alm de serem tcnicas j consolidadas no mercado de jogos computadorizados. Uma FSM composta por um conjunto de estados (incluindo um estado inicial), um conjunto de entradas, um conjunto de sadas e uma funo de transio de estado. A funo de transio recebe as entradas e o estado atual e retorna um nico novo estado e um conjunto de sadas. As mquinas de estados finitos so normalmente representadas por diagramas de transio de estados. Para a realizao de modelagens mais complexas, as FSMs podem ser hierarquizadas, de forma que cada nodo de uma hierarquia possa expandir uma nova hierarquia, e assim sucessivamente, at o ltimo nvel, expandindo uma FSM. Esta tcnica chamada de 1LLLLL 1L CLL 1LLL (HFSM), e fornece uma forma conveniente para uma modelagem modular de FSMs. As FuSMs so baseadas em cadeias de Markov. Pesos (probabilidades) so associados aos estados e s transies de estado, e regras so estabelecidas para calcular pesos de estados futuros. Um jogo que utiliza FuSMs !L 11L (http://www.calltopower.com), um jogo de estratgia onde o jogador controla civilizaes, sendo que o perfil e os traos caractersticos de cada civilizao foi modelado com a utilizao de FUSMs. A utilizao de mquinas de estados finitos permite criar elementos com comportamentos relativamente complexos, como mostrado no jogo LL, descrito na seo anterior, onde os inimigos tomavam uma srie de decises baseadas nas aes do jogador, alm de elementos adicionais do jogo, como pssaros, coelhos e outros animais exibindo algoritmos de aglomerao e formao (flocking algorithms), tambm controlados por FSMs; .& 11 1LMhL Vrios jogos lanados nos ltimos anos implementaram a tcnica de IA Extensvel, mantendo uma tendncia que surgiu com 1L 1L LH O1 L _LL. Atravs de linguagens de L[, o jogador pode criar seus prprios oponentes e/ou modificar o nvel de IA dos personagens inimigos. A forma como a IA Extensvel apresentada ao usurio varia de L[ semelhantes a linguagens como C e C++ at conjuntos de ordens que podem ser passadas ao elemento do jogo. A maioria do jogos que utilizaram a tcnica de IA Extensvel so do gnero de Perspectiva em Primeira Pessoa, como por exemplo LL e 1L] 1]L mas existem alguns jogos de outros gneros que esto utilizando esta tecnologia, como o caso de 1LM !LL 12 (http://www.interplay.com/product.asp?GameID=299), um 1L 1L)@ !LHL (RPG) criado pela ,1L[L) onde as classes de personagens do jogo so controlados por L[. Estes L[ podem ser definidos pelo jogador, permitindo que este especifique as reaes bsicas dos personagens do jogo em vrias situaes de combate. Desta forma, os jogadores podem adaptar o jogo de forma particular, ou ento criar novas classes de personagens. Como forma de exemplo da tcnica de IA Extensvel, a listagem abaixo mostra um trecho de um L[ criado para ser utilizado no jogo 1LM !LL. O trecho faz parte de um L[ que cria um novo personagem para ser utilizado no jogo: IF // If my nearest enemy is not within 3 !Range(NearestEnemyOf(Myself),3) // and is within 8 Range(NearestEnemyOf(Myself),8) THEN // 1/3 of the time RESPONSE #40 // Equip my best melee weapon EquipMostDamagingMelee() // and attack my nearest enemy, checking every 60 // ticks to make sure he is still the nearest AttackReevalutate(NearestEnemyOf (Myself),60) // 2/3 of the time RESPONSE #80 // Equip a ranged weapon EquipRanged() // and attack my nearest enemy, checking every 30 // ticks to make sure he is still the nearest Pode-se visualizar que o L[ se baseia em chamadas de funes definidas do sistema interno de IA do jogo. importante notar que a tcnica de IA Extensvel permite que sejam feitas vrias modificaes no nvel de IA dos personagens, mas ela no permite que o jogador possa modificar o sistema interno de IA do jogo. . VLMLh WL 1MhL 13 Dos algoritmos de busca disponveis, o A-star (A*) o mais utilizado em jogos computadorizados, sendo que os desenvolvedores de jogos fizeram suas prprias verses deste algoritmo, adaptando-o a cada projeto. O A* um algoritmo que utiliza uma funo heurstica que determina a qualidade de cada um dos estados possveis (nodos), atravs de uma estimativa do custo da melhor rota at o destino, passando pelo nodo atual. O custo determina a qualidade de um nodo, sendo que quanto menor o custo, melhor a sua qualidade. A funo heurstica possui o seguinte formato: ]]/ @]/ ]/ Onde: f(n): valor da funo associado a um nodo _; g(n): funo que calcula o custo da rota do nodo de origem at _; h(n): funo que prev o custo da rota de _ at a soluo. O desempenho do A* depende da funo heurstica selecionada. Uma funo heurstica ruim pode reduzir drasticamente a velocidade do algoritmo, ou fazer com que este produza rotas incorretas. Para que o A* calcule sempre as melhores rotas, a funo heurstica deve ser admissvel, ou seja, deve fazer estimativas menores do que o custo real do caminho. O A*, pelo seu funcionamento, considerado um algoritmo completo e timo, ou seja, dada uma funo heurstica admissvel, se o problema tiver uma soluo, esta vai ser encontrada, e a soluo encontrada ser sempre a de menor custo. A listagem em pseudocdigo abaixo mostra o funcionamento do A*: bool AStarSearch() { priorityqueue OPEN list CLOSED NODE node node.application_stuff=(start conditions of application specific stuff) node.cost = 0; node.heuristic = GetNodeHeuristic( node ) node.f = node.cost + node.heuristic node.parent = null push node on OPEN // esse o corpo da busca while OPEN is not empty { node = Pop the best node from OPEN 14 // exemplo: remove o nodo da open list if node is a goal node { construct path (by following the parent pointers) return success } // seno necessrio encontrar quais nodos podem ser gerados a partir deste NodePushSuccessors( OPEN, CLOSED, node ); // ver codigo da funo abaixo push node onto CLOSED list //como este nodo j foi examinado } // aqui a open list foi esvaziada e no foram encontrados GOAL states. A busca falhou return FALSE } // Cria os sucessores para o dado nodo e os adiciona para a open list ou closed list void NodePushSuccessors( priorityqueue OPEN, list CLOSED, parent_node ){ // Aqui so aplicadas regras vlidas para o nodo sendo analisado. No caso de um pathfinder, por exemplo, uma regra seria a direo do movimento for each rule we can apply create the successor new_node { new_node.cost = (application specific cost of this node) + parent_node.cost new_node.heuristic = GetNodeHeuristic( new_node ) new_node.f = new_node.cost + new_node.heuristic if the new_node is on CLOSED but the node on CLOSED has a lower 'f' { continue; } if the new_node is on OPEN but the node on OPEN has a lower 'f' { continue; } remove new_node from the OPEN list if it is on it remove new_node from the CLOSED list if it is on it new_node.parent = parent_node push new_node on to the OPEN list } 15 } Considerando busca em jogos computadorizados, o A* principalmente utilizado na aplicao de tcnicas de [L]M@, que consiste na computao e execuo de um caminho partindo de um ponto de origem, dado pela posio do prprio elemento, para um destino qualquer. De modo geral, os desenvolvedores de jogos j possuem um certo domnio sobre as tcnicas de busca, direcionando seu foco para implementaes em casos especficos, como [L]M@ associado com anlise de terreno (LL LL)), situao encontrada freqentemente em jogos de estratgia, como por exemplo .@L ] 1H[L 11. JL .@L ] 1@ (http://www.ensemblestudios.com/aoeii/index.shtml), um jogo onde o jogador deve desenvolver civilizaes antigas. A anlise de terreno identifica pontos em mapas que podem dificultar o movimento dos elementos de um ponto para outro, como por exemplo pontes ou travessias entre montanhas. Uma boa anlise de terreno pode produzir informaes importantes para o sistema de [L]M@ do jogo para resolver problemas complexos de busca. A anlise de terreno fornece informaes adicionais sobre o terreno para auxiliar na resoluo de problemas de pathfinding mais complexos. .H l@MMh WL 1@1LMWWM As tcnicas de Mquinas de Aprendizado (Machine Learning) esto comeando a ter mais espao em jogos computadorizados, e vrios enfoques esto sendo analisados pelos desenvolvedores. Um jogo que implementou uma tcnica de aprendizado interessante foi 1L@L C 1L)LH (http://www.mythosgames.com/magicandmayhem.htm) criado pela 1) !LHL, onde o jogador comanda um mago que deve destruir monstros, feiticeiros e escapar de armadilhas. O jogo periodicamente grava informaes sobre as disputas com o jogador em um arquivo de dados. Antes de iniciar uma nova batalha, o subsistema de IA do jogo compara a tcnica de ataque a ser utilizada com esta base de dados, para determinar o grau de efetividade deste tipo de ataque. Desta forma, o jogo se adapta ao tipo de jogador. Outros enfoques de 1LLL 1LL@, com maior embasamento cientfico, esto sendo explorados. Redes Neurais 16 As redes neurais empregam uma interligao macia de clulas computacionais simples denominadas neurnios ou unidades de processamento. As ligaes entre os neurnios, tambm chamadas de sinapses, possuem um valor associado, chamado de peso sinptico, que utilizado para armazenar o conhecimento adquirido. O algoritmo de aprendizagem de uma rede neural tem como funo modificar os pesos sinpticos, desta forma aperfeioando a rede neural. O processo de aprendizagem de uma rede neural dito ser supervisionado se a sada desejada j conhecida; j quando no h exemplos rotulados da funo a ser aprendida pela rede, o processo de aprendizagem dito no-supervisionado. Um dos primeiros jogos computadorizados a utilizar redes neurais foi 1LL!L. O .1 (http://www.bc3000ad.com), um simulador espacial, onde os elementos do jogo eram controlados por uma rede neural. Um ponto interessante neste jogo que foi desenvolvida uma linguagem, denominada .]LL 1L@LLL LM 1@L (AILOG), para com ela implementar o sistema de IA do jogo. A AILOG utiliza uma rede neural para, no jogo, efetuar tomadas de deciso e busca de melhores rotas. Em relao a aprendizagem da rede neural, foram utilizadas variaes do algoritmo de 1LL[[L@L e algoritmos no- supervisionados. Existem L[ com redes neurais supervisionadas pr-treinadas programados para serem executados em momentos especficos do jogo, como por exemplo no incio de guerras, ou no planejamento de invases. A AILOG tambm emprega alguns conceitos de lgica difusa (]) @L) em momentos nos quais a utilizao de uma rede neural no suficiente. Algoritmos Genticos Os algoritmos genticos so modelos computacionais inspirados pela evoluo humana, tipicamente representando o conhecimento atravs de atributos binrios ou booleanos. Uma implementao de um algoritmo gentico comea com um conjunto (populao) de atributos, ou cromossomos. Estas estruturas so ento avaliadas e oportunidades de reproduo so alocadas, de forma que os atributos que representarem uma melhor soluo para o problema em questo possuiro mais chances de se reproduzirem do que os outros atributos, da o conceito de evoluo, que est associado com o mtodo de aprendizagem utilizado nos algoritmos genticos. A qualidade de uma soluo tipicamente definida de acordo com o conjunto atual de atributos. O funcionamento de um algoritmo gentico pode ser descrito da seguinte forma: 17 1. Gera uma populao randmica de _ cromossomos (solues aceitveis para o problema em questo); 2. Avalia a ]L (qualidade, ou grau de ajuste) de cada cromossomo na populao; 3. Cria uma nova populao, repetindo os seguintes passos at que a populao esteja completa: 4. Seleciona dois cromossomos de uma populao de acordo com a sua qualidade (quanto maior a qualidade do cromossomo, maior a chance deste ser escolhido); 5. Com uma probabilidade de cruzamento, cruza os cromossomos para formar novos descendentes. Se o cruzamento no for efetuado, os descendentes so uma cpia exata dos cromossomos originais; 6. Com uma probabilidade de mutao, executa a mutao em uma parcela dos novos indivduos; 7. Insere os novos indivduos em uma nova populao; 8. Usa a nova populao gerada para uma nova iterao do algoritmo; 9. Se a condio satisfeita, termina o algoritmo e retorna a melhor soluo baseada na populao atual; 10. Volta para o passo 2. Um dos primeiros jogos comerciais a utilizar algoritmos genticos foi !L 1L@@L LM 11. (http://gamesdomain.co.uk/directd/pc/windows/puzzle/cddna.html), lanado em 1995 pela 1ML C)LH. A verso original deste jogo de estratgia vem com quatro seqncias de DNA, que so conjuntos de regras que ditam o comportamento dos oponentes do jogador. A medida que cada um desses conjuntos de regras participa das jogadas, o jogo armazena dados que informam como foi a performance do conjunto de regras em questo em cada disputa com o jogador. Entre as disputas, o jogador pode fazer que as diferentes seqncias de DNA realizem competies entre si, permitindo a evoluo destes conjuntos de regras. Existem, tambm, alguns projetos que exploraram combinaes entre algoritmos genticos e redes neurais, como o caso de 1LL1 (http://www.botepidemic.com/neuralbot), um oponente especialmente criado para ser utilizado no jogo _LL 11 ]http://www.quakeworld.com). Este oponente utiliza uma rede neural para controlar suas aes e um algoritmo gentico para treinar sua rede neural. Isto faz com que o oponente seja totalmente autnomo, sem nenhuma espcie de comportamento pr-programado. Um outro exemplo desta combinao de tcnicas de HLLL LL@ !LLL (http://www.creaturelabs.com), um simulador de formas de vida em um ambiente interativo, onde o jogador controla a evoluo de criaturas. O aspecto interessante deste jogo, no que tange a utilizao de tcnicas de IA, utilizao de uma tecnologia denominada !)L1]L, que basicamente consiste de uma combinao de redes neurais heterogneas e um conjunto de algoritmos genticos que realizam um processo de seleo, fazendo com que as criaturas evoluam. Isto faz com que a !)L1]L seja, efetivamente, uma rede neural com 18 auto-aprendizado, de forma que as criaturas aprendem o que elas devem fazer, do que elas gostam e no gostam, ou at o que elas acham divertido. . 111L 11L Segundo os desenvolvedores de jogos computadorizados, as tcnicas de representao de vida artificial (A-Life) fornecem formas flexveis para a criao de comportamentos realsticos nos elementos do jogo. As tcnicas de .1]L tm suas origens no estudo dos organismos vivos do mundo real. A .1]L busca simular o comportamento destes organismos atravs de uma variedade de mtodos, tais como a implementao de regras, algoritmos genticos, entre outros. Ao invs de tentar implementar uma grande variedade de comportamentos complexos, a idia dividir estes comportamentos em partes menores, simulando comportamentos mais simples. Estas partes so ento interligadas por uma forma de hierarquia de tomada de deciso, utilizada pelos elementos do jogo para determinar que aes devem ser tomadas para satisfazer as necessidades destes elementos. Desta forma, combinaes e seqncias de comportamentos mais simples geram comportamentos complexos de forma automtica, sem a necessidade da implementao direta destes. A simplicidade deste enfoque foi utilizada na implementao de JL CH (http://www.thesims.com), criado pela 1L onde o jogador controla elementos que simulam pessoas vivendo vidas normais, de forma que estas pessoas possam seguir diferentes carreiras profissionais, fazer amigos ou at ter uma famlia, entre uma srie de outras possibilidades. Creatures, citado no item anterior, um outro exemplo da aplicao de tcnicas de .1]L. As tcnicas de .1]L so utilizadas, na sua maioria, em simuladores, mas a tendncia que seu uso se expanda para outros diferentes gneros de jogos, como j acontece com alguns enfoques de .1]L como as tcnicas para coordenar agrupamentos e aglomeraes, mais conhecidas como fL@ L@H. Utilizados para controlar o movimento de grupos de elementos, os fL@ L@H j foram utilizados em vrios tipos de jogos computadorizados, desde jogos do tipo ] [L [L[LL1L, como LL onde as tcnicas de ]L@ eram utilizadas para controlar o movimento conjunto de cardumes de peixes ou grupos de pssaros, at jogos de estratgia, como .@L ] 1H[L para controlar formaes de soldados. 19 .M M11L 1LLM@MLM 1h [11h Um enfoque que est sendo explorado atualmente a utilizao de Software Development 1 (SDKs), ou simplesmente , especficos em uma ou mais tcnicas de IA, que auxiliam na utilizao destas tcnicas, agilizando o processo de desenvolvimento da aplicao. Alguns SDKs foram criados especificamente para serem utilizados em jogos, enquanto outros tm um escopo de utilizao mais genrico. Como exemplos de SDKs disponveis no mercado podemos citar: 11LL (http://www.motion-factory.com): este SDK permite a criao de mquinas de estado para personagens animados, fazendo com que os movimentos de personagens sejam dinamicamente computados, de acordo com as mudanas no ambiente. Alguns jogos j utilizaram as tecnologias disponibilizadas neste SDK, como por exemplo 1LL ] 1LL O1 (http://www.pop3d.com/main.html), um jogo de aventura onde o jogador deve resgatar uma princesa; C[L. (http://www.louderthanabomb.com): este SDK basicamente um editor de lgica difusa (])@L), direcionado para desenvolvedores de sistemas de IA para jogos computadorizados. Dos SDKs disponveis, o C[L. a soluo de menor custo. O editor possui uma interface grfica para a criao e modificao de sistemas de lgica difusa, sendo que estes sistemas podem ser depurados sem a necessidade de recompilao da aplicao. Para a integrao com a aplicao, o C[L. disponibiliza uma API escrita em C++. O ainda est em verso preliminar; 1LL1. (http://www.animaths.com): criado pela Mathmatiques Appliques, este SDK, baseado em tecnologia de agentes, pode criar elementos com caractersticas humanas, incluindo estados fisiolgicos, psicolgicos e emocionais. Estes estados internos motivam os agentes, alimentando-os com desejos, necessidades e emoes. O SDK tambm permite a criao de agentes com capacidade de aprendizado, criando elementos que podem se beneficiar de suas experincias anteriores. Para a criao dos agentes, o SDK se baseia em modelagem biolgica e cognitiva. Estes dois enfoques de modelagem definem o estado atual do agente em tempo real. O sistema de comportamento do 1LL1. pode ser comparado com uma mquina de estados infinitos pois, anlogo a noo de estados discretos presentes em FSMs, a noo de estados 20 dinamicamente alterados geram o comportamento do agente de uma forma mais prxima da realidade e no-determinstica. O SDK inclu alguns mdulos, como por exemplo, mdulos para controle de agentes reativos, percepo e motivaes. O desenvolvedor que utilizar o SDK pode desenvolver seus prprios mdulos, desta forma personalizando o SDK. O 1LL1. tambm possui uma linguagem de L[, semelhante a lngua inglesa, para o desenvolvedor construir seus prprios modelos de IA, podendo atravs desta linguagem acessar vrios mtodos internos do SDK. Esta linguagem se baseia em regras de produo de uma forma diferente das regras de produo tradicionais de IA, no sentido de que as regras no definem diretamente o comportamento do agente, mas definem a influncia de fatores internos ou externos na evoluo do estado dinmico interno do agente. Estas regras podem ser ativadas a cada instante de tempo, de forma a influenciar o comportamento em qualquer momento. As tcnicas de IA descritas acima mostram o que est sendo amplamente explorado e utilizado, atualmente, em termos de IA aplicada a jogos computadorizados. Algumas destas tcnicas podem ser utilizadas de forma combinada, gerando sistemas mais complexos. 21 MMLMhM 22 1M11 SEWALD, Leonardo. Aplicao de Tcnicas de IA em Jogos Computadorizados Interativos. Porto Alegre: Pontifcia Universidade Catlica do Rio Grande do Sul, 2001. Disponvel na WWW em: http://www.inf.pucrs.br/~sewald. 02/06/2003. SEWALD, Leonardo. Tecnologia de Agentes aplicada a Jogos Computadorizados Interativos. Porto Alegre: Pontifcia Universidade Catlica do Rio Grande do Sul, 2001. Disponvel na WWW em: http://www.inf.pucrs.br/~sewald. 02/06/2003. POZO, Aurora Trinidad Ramirez. Aprendizado de Mquina. Curitiba: Universidade Federal do Paran. Disponvel na WWW em: http://www.inf.ufpr.br/~aurora. 01/06/2003. Louder Than A Bomb. Sparky! Fuzzy Logic Editor. Disponvel na WWW em: http://www.louderthanabomb.com/spark.htm. 04/06/2003. Epic Megagames. Unreal Tournament AI and Gameplay for Level Designers. Disponvel na WWW em: http://unreal.epicgames.com/UT_AI.htm. 04/06/2003. Creatures Community. Disponvel na WWW em: http://www.creaturescommunity.com. 05/06/2003.