You are on page 1of 25

Inteligncia Artificial em Jogos Digitais

Bruno Ribeiro, Fabiano Lucchese, Maycon Rocha e Vera Figueiredo FEEC / Universidade Estadual de Campinas Cidade Universittia Zeferino Vaz, Campinas, SP, Brasil

Resumo. neste artigo apresentamos uma breve descrio dos principais mecanismos de inteligncia artificial utilizados em jogos digitais. Em seguida, discutimos algumas das aplicaes destes mecanismos em jogos, procurando ainda apontar as possibilidades futuras de uso de inteligncia artificial nesta rea.

1. Introduo
Neste artigo discutimos brevemente a aplicao de inteligncia artificial em jogos digitais. Para isso, o documento encontra-se separado em duas sees; na seo a seguir, descrevemos alguns dos principais mecanismos utilizados em inteligncia artificial para dotar sistemas computacionais de um comportamento inteligente. A seguir, utilizamos esta descrio como o embasamento necessrio para ilustrar algumas das principais aplicaes de IA em jogos digitais. Alm de descrever o estado da arte de IA em jogos digitais, este documento se prope tambm a apontar algumas das tendncias do uso destas tcnicas para possveis aplicaes futuras em jogos digitais.

2. Mecanismos de IA
O termo Inteligncia Artificial foi cunhado em 1956 por John McCarthy, que o definiu como a cincia e engenharia capaz de construir mquinas inteligentes. Apesar desta terminologia ser amplamente aceita, h ainda muita controvrsia relacionada ao conceito de inteligncia: se inteligncia artificial a inteligncia aplicada s mquinas, o que exatamente inteligncia, independentemente dela estar associada ou no a seres vivos? Em [3] so apresentados diversos propostas para formalizao do conceito de inteligncia artificial e nelas podemos observar a constncias de duas idias fundamentais sobre inteligncia: 1) a capacidade de aprendizagem, 2) a manifestao de comportamento inteligente A primeira idia suficientemente universal para poder ser aplicada a mquinas e a seres humanos. Mais ainda, pode inclusive ser aplicada a animais, como ces que, condicionados por rotinas de treinamento, desenvolvem comportamentos que imitam certos aspectos do comportamento humano. J a segundo idia mais dificilmente aplicvel a nosso contexto por sua caracterstica recursiva: como pode-se definir

comportamento inteligente sem que o conceito de inteligncia tenha sido estabelecido? Outra tentativa de definio para inteligncia foi proposta em um relatrio denominado Mainstream Science on Intelligence, assinado por 52 pesquisadores, onde se afirma que inteligncia uma capacidade mental bastante geral que, entre outras coisas, envolve a habilidade de raciocinar, planejar, resolver problemas, pensar de forma abstrata, compreender idias complexas, aprender rapidamente e aprender a partir de experincias. Nesse sentido, possvel perceber a ampliao dos conceitos apresentados anteriormente, criando uma forte relao entre a inteligncia e as capacidades, em sua maioria, predominantemente humanas. Russel & Norvig [3] afirmam que, em geral, as definies de Inteligncia Artificial so determinadas em duas dimenses: centrada nos seres humanos e a racionalista. A centrada nos seres humanos consiste numa abordagem mais emprica, envolvendo hipteses e confirmao experimental, e medem o nvel de sucesso em termos de fidelidade em relao ao desempenho humano. J a racionalista envolve a combinao de matemtica e engenharia, sendo sustentada por modelos formais. Os autores destacam, entretanto, que essa distino no sugere que os humanos sejam irracionais, mas sim que no so perfeitos. Um exemplo apresentado pelos autores foi o fato de nem todos os humanos serem grandes enxadristas, at mesmo alguns que tm pleno conhecimento das regras do jogo. Russel & Norvig descrevem ainda quatro categorias de definies de inteligncia artificial, relacionadas s dimenses anteriormente apresentadas: Sistemas que agem como seres humanos: nessa categoria se enquadram as iniciativas em criar sistemas que apresentam comportamento similar ao dos seres humanos. Em geral, tais sistemas esto relacionados ao teste de Turing, que consiste em desafiar a inteligncia de uma mquina atravs de um teste onde a mquina deve ser interrogada por um humano e tal interrogador deve ser incapaz de distinguir que est interagindo com uma mquina [2]. Nesse sentido a mquina deve possuir algumas capacidades especficas para apresentar tal comportamento humano: processamento de linguagem natural, a fim de permitir interpretar e responder s mensagens fornecidas pelo interrogador; representao de conhecimento, para armazenar seu conhecimento prvio e o conhecimento a ser adquirido; argumentao automatizada, que consiste na capacidade de usar o conhecimento armazenado para fornecer respostas e tirar concluses; e aprendizado de mquina, que permite adaptar-se a novas circunstncias e extrapolar o conhecimento atual. Sistemas que pensam como seres humanos: nessa categoria esto as iniciativas em criar sistemas que tentam simular a capacidade de pensar dos seres humanos. Dessa forma, fica evidente a necessidade de se obter modelos tericos sobre o funcionamento da mente humana para que, ento, tais modelos possam ser adaptados ao contexto dos computadores. Sistemas que pensam racionalmente: categoria que engloba as iniciativas baseadas em processos de argumentao irrefutvel, conceito introduzido pelo filsofo grego Aristteles. Nessa abordagem, considera-se que a mente trabalha atravs de leis do pensamento, isto , premissas que permitem inferir concluses corretas a respeito de fatos. O estudo deu incio ao campo

da lgica. Entretanto, essa abordagem traz consigo duas barreiras: primeiramente, no simples transformar conhecimento informal em termos formais requeridos pela notao lgica, principalmente quando a informao no totalmente certa; em segundo lugar, mesmo problemas com dezenas de fatos podem exigir processamento a ponto de exaurir os recursos computacionais caso no haja uma forma de estipular quais passos da argumentao devem ser tentados primeiro. Sistemas que agem racionalmente: trata-se da categoria de iniciativas que fazem uso de agentes, ou seja, programas com controle autnomo, capazes de perceber o ambiente e que se adaptarem a mudanas. Mais precisamente, so baseadas em agentes racionais, que agem a fim de obter o melhor resultado ou, quando h incerteza, o melhor resultado esperado. Ao contrrio dos sistemas que pensam racionalmente, que enfatizam inferncias corretas, sistemas que agem racionalmente tm a vantagem de serem mais genricos, pois a capacidade de inferir corretamente apenas um dos possveis mecanismos de alcanar racionalidade. Alm disso, tal abordagem mais favorvel para o desenvolvimento cientfico do que as abordagens de pensamento e ao humana, pois a racionalidade mais claramente definida e completamente genrica. Nas sees que seguem procuraremos analisar diversos mecanismos tradicionalmente associados inteligncia artificial que esto presentes nos jogos digitais, destacando em que medida eles se encaixam nestes mecanismos. Desta forma esperamos traar uma clara fronteira para aquilo que pode ser considerado inteligente no mundo das mquinas, ainda que isso viole o senso comum sobre o que realmente inteligente.

2.1. Sistemas de Busca em rvore


Um dos primeiros tratamentos tericos dados aos jogos foi apresentado em [1]. Neste trabalho, os autores introduzem uma modelagem capaz de representar uma grande variedade de jogos em funo de suas representaes de estado, as regras pelas quais mudanas de estados podem ocorrer e o custo ou benefcio que cada participante consegue depreender de cada estado. Alm de permitir a representao de jogos, esta modelagem permitiu tambm a realizao de estudos e anlises importantes sobre suas propriedades. Um dos benefcios da representao matemtica de um jogo a possibilidade de utilizarmos esta representao em um ambiente computacional para efetuar pesquisas de solues a uma velocidade muito superior quela realizvel por um ser humano. Como exemplo, imaginemos um tabuleiro de jogo da velha 3 x 3; o estado deste jogo pode ser representado por uma matriz bidimensional 3 x 3 onde cada posio pode assumir um de trs valores: vazio, X ou O. A partir desta representao, podemos mapear todos os estados possveis e, dado um estado, quais so as possveis transies dele para os estados atingveis. A figura a seguir ilustra esta forma de representao.

Figura 1 Arvore de busca de estados do jogo da velha 3 x 3 Esta capacidade estendida de trabalhar com muitas possibilidades num curto espao de tempo nos permite, por exemplo, avaliar todas as possveis jogadas a partir de um determinado estado considerando todas as possveis aes do adversrio. A partir desta anlise, um programa de computador seria capaz de fazer jogadas perfeitas, no sentido de que ele sempre escolheria o caminho mais provvel de lev-lo ao melhor resultado possvel. Isto obviamente s possvel atribuindo-se valores de ganho a cada estado possvel, mas no caso de um jogo simples como este no seria uma tarefa difcil. Esta descrio ilustra ser possvel dotar um programa de inteligncia no sentido que, aos olhos de um jogador, este apresentar um comportamento semelhante ao de um hbil oponente ainda que sem utilizar tcnicas sofisticadas de tomada de deciso. Neste caso, foi empregada uma tcnica comumente referenciada como fora bruta, j que analisa todas as possibilidades futuras e seleciona a melhor. O emprego da fora bruta pode ser vivel em uma situao como a descrita anteriormente, em que o nmero de caminhos percorrveis a cada interao ainda computacionalmente tratvel, mas se mostra completamente inadequado para a maioria dos jogos. Para estes casos, a busca de estados organizados em uma rvore ainda um modelo interessante, mas requer alteraes que o tornem aplicvel a casos mais complexos. H inmeros mtodos para a simplificao da exploso combinatorial de estados atingveis em uma rvore de busca. A estas simplificaes, que podem ou no comprometer a qualidade do resultado final gerado, chamamos heursticas. Heursticas podem levar em conta aspectos relacionados s regras do jogo mas que, por si s, no indicam necessariamente o melhor caminho a ser seguido no momento de uma jogada.

Em [2] apresentada uma das principais estratgias para simplificao das rvores de busca no contexto de jogos digitais, conhecida como A* (A estrela). Esta estratgia se resume na seguinte frmula: f(x) = g(x) + h(x) Nesta frmula, f(x) representa o custo associado a uma transio, que por sua vez composto pelo custo da transio em si (g(x)) e pelo custo estimado de se atingir o objetivo a partir do estado obtido por esta transio (h(X)). De volta a nosso caso simples, podemos assumir que g(x) = 0 j que no h nenhum custo associado a uma transio; situaes em que esta funo no nula so aquelas em que, por exemplo, h o consumo de recursos (como tempo, gasolina, energia etc) para se chegar a um determinado estado. J para a funo h(x), podemos estimar que o custo para se chegar ao objetivo do jogo da velha 3 x 3 (enfileirar 3 smbolos iguais) igual ao nmero de smbolos necessrios para completar a maior sequncia livre do jogo. A funo h(x) proposta uma heurstica j que representa uma suposio capaz de simplificar grandemente o processo de busca de estados. As escolhermos os prximos estados a partir desta heurstica, no temos a garantia de seguir pelo melhor caminho, mas certamente seguiremos por um caminho com uma certa inteligncia, que pode, em uma boa quantidade de casos, nos conduzir vitria com custo computacional reduzido. O uso de rvores de busca depende portanto da representao do estado do jogo, da associao de um valor a cada estado que indique quais so aqueles onde cada jogador obtm o maior benefcio e, por fim, da definio de heursticas que permitam percorrer as transies de estados com critrios que levem em conta o custo de cada transio e a qualidade de cada estado intermedirio. luz do conceito de inteligncia apresentado na parte introdutria desta seo, podemos perceber que este um tipo de IA no necessariamente aderente ao primeiro critrio. De fato, um jogo que utiliza buscas em rvore de estado puras e simples no possui nenhum mecanismo de aprendizagem e adaptao; seu comportamento ser sempre o mesmo e condicionado a programao prvia que este recebeu. Entretanto, existem inmeras heursticas que procuram simplificar o espao de buscas pela anlise de padres de jogos observados dos adversrios. Em [4] descrito um destes casos, em que a complexidade inerente ao jogo de xadrez foi mitigada pelo uso de redes neurais e outros mecanismos de adaptao.

2.2. Sistemas Baseados em Regras


Sistemas baseados em regra constituem uma forma alternativa de se especificar um mecanismo de busca de solues. Estes sistemas so comumente formados por dois elementos bsicos: 1) um conjunto de regras, tambm denominado base de conhecimento, 2) um motor (engine) capaz de processar regras luz das informaes disponveis. A filosofia por trs de um sistema baseado em regras, tambm chamado de sistema especialista, est na elaborao de um conjunto de regras, geralmente estruturadas como clusulas do tipo se... ento, que, ao serem processadas uma a uma

pelo motor de execuo, procuraro reproduzir a forma natural como se d o raciocnio de um ser humano detentor do conhecimento especfico relevante ao problema. O principal ponto que distingue os sistemas especialistas dos algoritmos tradicionais o fato de que a qualidade do resultado gerado no est associada natureza de seu processamento, mas sim quantidade de informaes acerca do problema e de suas possveis solues. Por isso, sistemas especialistas complexos so caracterizados por motores simples associados a extensas bases de conhecimento. Vejamos abaixo um exemplo simples de uma base de regras: 1) Se carro == pequeno, ento carro == econmico 2) Se carro == econmico, ento carro == barato 3) Se item == barato E item == vermelho, ento item == interessante 4) Se carro == flex, ento carro = ecolgico 5) Se item == ecolgico E item = interessante, ento devo compr-lo Esta base de regras descreve o conhecimento detido a respeito dos critrios para a compra de um carro, associado a dois critrios aplicveis a itens genricos. H essencialmente duas formas de se processar estas regras, descritas a seguir. Forma direta: nesta forma, o motor de processamento percorre a base de regras elaborando questes que objetivam expressar uma concluso relacionada s informaes fornecidas pelo usurio. A seguir ilustramos este tipo de aplicao. Q) O carro pequeno? R) No C) Ento voc no deve compr-lo. Q) O carro pequeno? R) Sim Q) O carro vermelho? R) Sim Q) Este carro interessante. O carro flex? R) Sim C) Ento voc deve compr-lo. Forma reversa: nesta forma, o usurio especifica um objetivo e o motor de processamento de regras procura definir os critrios necessrios para que este objetivo seja alcanado, conforme ilustrado no exemplo a seguir. O) Desejo comprar um carro R1) O carro deve ser ecolgico R1.1) O carro deve ser flex R2) O carro deve ser interessante R2.1) O carro deve ser vermelho R2.2) O carro deve ser barato R2.2.1) O carro deve ser econmico

R2.2.1.1) O carro deve ser pequeno Neste exemplo as concluses depreendidas do processamento da base de regras podem parecer ingnuas, mas isto se deve unicamente simplicidade da base utilizada. Sistemas especialistas reais empregam centenas ou milhares de regras que, quando encadeadas, formam estruturas de conhecimento que demandam intenso processamento computacional. Sob essa tica, sistemas especialistas podem ser vistos como sistemas de busca otimizados atravs do direcionamento proporcionado pela especificao de regras claras. Uma das aplicaes mais tradicionais dos sistemas especialistas est na rea mdica; sistemas fundamentados em bases de conhecimento se mostraram particularmente adequados para auxiliar processos diagnsticos, que geralmente so formados por um conjunto de informaes a respeito do paciente obtidos atravs de exames clnicos e um apanhado de regras que procuram estabelecer relaes de causa e efeito na sade do paciente. No campo dos jogos digitais, sistemas especialistas podem ser utilizados no processamento de linguagem natural em jogos que envolvam uma interao mais humanizada com o jogador. Nota-se, no entanto, que, a exemplo do ocorrido com rvores de busca sem qualquer capacidade de aprendizagem, este sistema imita um comportamento inteligente, pr-programado e condicionado pela qualidade de sua base de regras. Sistemas baseados em regras no devem ser confundidos com mquinas finitas de estado, descritas em seo futura.

2.3. Sistemas Multi-Agentes


Um dos elementos principais dos sistemas multi-agentes so os agentes em si. No existe um consenso sobre a definio de que um agente, sobretudo por que diferentes domnios de aplicao podem valorizar diferentes aspectos deforma que determinados conceitos associados podem receber maior ou menor importncia. Russel e Norvig [3] definem que os agentes so entidades que podem perceber um ambiente, atravs de sensores, e agir sobre ele, atravs de atuadores. No contexto da computao e da inteligncia artificial, tem-se os agentes inteligentes, que por sua vez so programas de computador com controle autnomo, capazes de perceber o ambiente e se adaptarem mudanas. Alm disso, tais agentes possuem um conjunto de capacidades, que designam o que so capazes de realizar, e um conjunto de objetivos a serem alcanados. Numa abordagem aplicada a jogos digitais, os personagens no controlados pelos jogadores poderiam ser modelados considerando o uso de tais agentes inteligentes de forma que seja possvel o surgimento de comportamentos complexos, como trabalho em equipe, e fornecer uma experincia mais rica aos jogadores. Segundo Demazeau [17], sistemas multi-agentes so grupos de agentes, tambm conhecidos como sociedades de agentes, que interagem entre si em um ambiente comum. Atravs dessas interaes, realizadas entre os prprios agentes e com o ambiente, os agentes conseguem fornecer um comportamento global inteligente [3]. Um dos aspectos fundamentais dos sistemas multi-agentes a capacidade destes poderem interagir direta ou indiretamente atravs de um mecanismo de comunicao.

Agente
Sensores

?
Atuadores

Ambiente

Figura 2 Modelo geral da relao entre um agente e o ambiente. Norvig e Russel [3] destacam que a modelagem de problemas em sistemas multi-agentes so frequentemente diferentes de modelagens para sistemas com um nico agente principalmente devido capacidade de comunicao, que em geral emerge como um comportamento racional. Outro aspecto importante destacado pelos autores a respeito da modelagem de tais sistemas o tipo de relao existente entre os agentes. Convencionalmente, pensa-se no uso de sistemas multi-agentes na resoluo de problemas onde os agentes precisam interagir para executarem uma tarefa complexa demais para um nico agente, seja por falta de informao ou por capacidade de realizar as atividades necessrias. Nesse cenrio surge uma relao de cooperao, ou seja, os agentes sinalizam suas necessidades aos demais a fim de receber ajuda para executar uma tarefa maior. Comumente tal cooperao ocorre atravs de duas formas: compartilhamento de tarefas, que ocorre quando um agente necessita realizar uma determinada tarefa e requer auxlio de outros agentes, ou compartilhamento de resultados, que ocorre quando um agente disponibiliza informaes aos demais agentes para que possam utiliz-las na execuo de suas tarefas. Outro cenrio que pode surgir uma situao em que um agente, na medida em que tenta alcanar seus objetivos, acaba impedindo que outro agente possa fazer o mesmo. Em resumo se trata de problemas onde as regras que o regem fornecem uma situao em que maximizar a performance de um agente representa minimizar a performance de outro, como no jogo de xadrez ou jogos qualificados como soma-zero pela Teoria dos Jogos. Existem ainda casos onde existe o misto das duas relaes, onde os agentes podem cooperar e competir at certo nvel para que possam alcanar seus objetivos. Um exemplo dessa relao mista seria um jogo onde existem dois motoristas de taxi trabalhando na mesma regio: eles competem por que disputam os passageiros, mas cooperam por que precisam evitar colises entre si, o que trar benefcio para ambos. Os sistemas multi-agentes possuem aplicaes muito diversificadas e tm um papel relevante nos jogos digitais. Alm das aplicaes convencionalmente associadas ao conceito, como o controle de grupos de entidades em jogos de estratgia ou tiro em primeira pessoa, possvel introduzir tal tcnica na construo de jogos menos usuais. Weiss et al [15] afirmam que os sistemas multi-agentes permitem, entre outras possibilidades, desenvolver e analisar modelos e teorias sobre a interao em sociedades

humanas. Assim, no que se refere aos jogos digitais, possvel introduzir comportamentos complexos em indivduos computadorizados de forma a melhorar significativamente a experincia dos jogadores.

2.4. Redes Neurais Artificiais


Uma rede neural artificial (RNA) um modelo matemtico inspirado no funcionamento dos neurnios presentes no crebro humano. Segundo [9], uma RNA pode ser definida como uma estrutura de processamento, passvel de implementao em dispositivos eletrnicos, composta por um nmero de unidades interconectadas (neurnios artificiais), sendo que cada unidade apresenta um comportamento especfico, determinado pela sua funo de transferncia, pelas interconexes com outras unidades e possivelmente pelas entradas externas. A figura a seguir apresenta o modelo de uma rede neural onde as conexes entre os neurnios artificiais procuram simular as conexes sinpticas biolgicas fazendo uso de uma varivel chamada peso. A funo de soma acumula os dados recebidos de outros neurnios e a funo de transferncia, tambm denominada funo de ativao, processa a funo soma transformando-a. Em outras palavras, um neurnio corresponde a uma soma ponderada de entradas, soma esta aplicada a uma funo de transferncia que vai determinar sua ativao.

Figura 3 - Rede neural artificial Existem basicamente trs camadas em uma rede neural artificial, uma camada de entrada, uma camada intermediria (opcional) e uma camada de sada. Existem tambm trs tipos de arquiteturas de RNAs: Redes feedforward de uma nica camada: consiste em uma camada de entrada e uma camada de sada, onde a propagao do sinal ocorre apenas da entrada para a sada. Rede feedforward de mltiplas camadas: possuem uma ou mais camadas intermedirias. A sada da camada intermediria utilizada como entrada para a camada seguinte. Em geral, o algoritmo de treinamento para esse tipo de rede envolve a retropropagao do erro entre a sada da rede e uma rede desejada conhecida. Redes recorrentes: esses tipos de rede possuem pelo menos um lao realimentando a sada de neurnios para outros neurnios da rede (conexo cclica).

O processo de aprendizagem das RNAs uma das importantes qualidades dessas estruturas. O termo aprendizagem corresponde ao processo de ajuste de parmetros livres da rede atravs de um mecanismo de apresentao de estmulos ambientais, conhecidos como padres (ou dados) de entrada ou treinamento: Estimulo -> adaptao -> novo comportamento da rede Existem basicamente trs paradigmas de aprendizado: Aprendizado supervisionado: tambm conhecido como aprendizado com professor, em que o professor tem o conhecimento do ambiente e fornece o conjunto de exemplos entrada-resposta desejada. O treinamento feito usando a regra de aprendizagem por correo de erro. Aprendizado no-supervisionado: no existe supervisor para avaliar o desempenho da rede em relao aos dados de entrada. Nenhuma medida de erro utilizada para realimentar a rede. Geralmente elas empregam um algoritmo competitivo de aprendizagem (os neurnios de sada da rede competem entre si para se tornarem ativos, com um nico neurnio sendo o vencedor da competio). Aprendizado por reforo: no existe uma interao direta com um supervisor ou modelo especfico do ambiente. Geralmente a nica informao disponvel um valor escalar que indica a qualidade do desempenho de RNAs. Durante o processo de aprendizagem, a rede testa algumas aes (sadas) e recebe um sinal de reforo (estimulo) do ambiente que permite avaliar a qualidade de sua ao.

2.5. Logica Fuzzy


A lgica fuzzy a lgica baseada na teoria dos conjuntos fuzzy. Nesta lgica, o raciocnio exato corresponde a um caso limite do raciocnio aproximado, sendo interpretado como um processo de composio de relaes nebulosas. Na lgica fuzzy, o valor verdade de uma proposio pode ser um subconjunto fuzzy de qualquer conjunto parcialmente ordenado. Na lgica fuzzy, os valores verdade so expressos linguisticamente (e.g.: verdade, muito verdade, no verdade, falso, muito falso etc), onde cada termo lingustico interpretado como um subconjunto fuzzy do intervalo unitrio. Outras caractersticas da lgica fuzzy podem ser sumarizadas como segue: na lgica fuzzy os predicados so nebulosos (e.g.: alto, baixo, ...). e h uma variedade de modificadores de predicados possveis (e.g.: muito, mais ou menos). Estes modificadores so essenciais na gerao de termos lingusticos (e.g. : muito alto, mais ou menos perto etc). A lgica fuzzy admite, em adio, uma ampla variedade de quantificadores (e.g.: pouco, vrios, usualmente, frequentemente, em torno de cinco etc).

Na lgica fuzzy existe a opo adicional de se empregar probabilidades lingusticas (e.g.: provvel, altamente provvel, improvvel etc), interpretados como nmeros fuzzy e manipuladas pela aritmtica fuzzy [10] e o conceito de possibilidade interpretado utilizando-se subconjuntos fuzzy no universo dos reais [11]. A modelagem e o controle fuzzy [12] so tcnicas para se manusear informaes qualitativas de uma maneira rigorosa. Tais tcnicas consideram o modo como a falta de exatido e a incerteza so descritas e, fazendo isso, tornam-se suficientemente poderosas para manipular de maneira conveniente o conhecimento. A sua utilizao em sistemas de controle de processos em tempo real, em computadores ou micro-controladores, das mais convenientes, dado que, geralmente, no envolvem nenhum problema computacional srio. A teoria de modelagem e controle fuzzy trata do relacionamento entre entradas e sadas, agregando vrios parmetros de processo e de controle. A grande simplicidade de implementao de sistemas de controle fuzzy pode reduzir a complexidade de um projeto a um ponto em que problemas anteriormente intratveis passam agora a ser solveis.

2.5.1. Variveis Linguisticas


As variveis lingsticas so elementos que permitem a descrio de informaes que esto normalmente disponibilizadas de forma qualitativa. Por exemplo, a temperatura de um determinado processo pode ser uma varivel lingstica assumindo valores baixa, mdia, e alta [13]. Estes valores so descritos por intermdio de conjuntos fuzzy, representados por funes de pertinncia, conforme mostrado na figura a seguir.

Figura 4 Variveis lingusticas Em termos gerais, os valores de uma varivel lingustica podem ser sentenas em uma linguagem especificada, construdas a partir de termos primrios (alto, baixo, pequeno, mdio, grande, zero, por exemplo), de conectivos lgicos (no, e e ou), de modificadores (muito, pouco, levemente, extremamente) e de delimitadores (como parnteses). A principal funo das variveis lingusticas fornecer uma maneira sistemtica para uma caracterizao aproximada de fenmenos complexos ou mal definidos. Em essncia, a utilizao do tipo de descrio lingustica empregada por seres humanos, e no de variveis quantificadas, permite o tratamento de sistemas que so muito

complexos para serem analisados atravs de termos matemticos convencionais. Formalmente, uma varivel lingustica caracterizada por uma quntupla (N, T(N), X, G, M), onde: N: nome da varivel T(N): conjunto de termos de N, ou seja, o conjunto de nomes dos valores lingusticos de N X: universo de discurso G: regra sinttica para gerar os valores de N como uma composio de termos de T(N), conectivos lgicos, modificadores e delimitadores M: regra semntica, para associar a cada valor gerado por G um conjunto fuzzy em X.

No caso da varivel temperatura da Figura XXX, teriamos: N: temperatura T(N): {baixa, mdia, alta} X: 0 a 100 C (por exemplo) G: temperatura no baixa e no muito alta (por exemplo) M: associa o valor acima a um conjunto fuzzy cuja funo de pertinncia exprime o seu significado.

2.5.2. Funes de Pertinncia


As funes de pertinncia podem ter diferentes formas, dependendo do conceito que se deseja representar e do contexto em que sero utilizadas. Para exemplificar o quanto o contexto relevante na definio de funes de pertinncia e de sua distribuio ao longo de um dado universo, considere-se a varivel lingustica estatura (de pessoas) constituda dos seguintes termos: T(estatura) = {baixa, mdia, alta}. A esses valores faz-se corresponder os conjuntos fuzzy A, B e C, respectivamente), definidos por suas funes de pertinncia [13]. Uma escolha possvel de funes de pertinncia seria:

Figura 5 Funes de pertinncia Na definio acima, estaturas de at 1,5 metros apresentam grau de pertinncia igual a 1 no conjunto A; o grau de pertinncia neste conjunto decresce medida que a estatura aumenta. Considera-se que uma estatura de 1,75 metros "totalmente compatvel" com o conjunto B, ao passo que estaturas acima de 1,8 metros (aproximadamente) apresentam grau de pertinncia diferente de zero em C. Pessoas com estatura acima de 2 metros so "definitivamente" altas. Observe-se que, nesta definio das funes de pertinncia, estaturas no em torno de 1,75 metros tm grau de pertinncia diferente de zero somente no conjunto B, o que poderia parecer inadequado para alguns observadores. Estes prefeririam que as funes de pertinncia de A e B se interceptassem em 1,75 metros (com graus de pertinncia nulos, a exemplo daquelas da Figura 1), por exemplo. Funes de pertinncia podem ser definidas a partir da experincia e da perspectiva do usurio, mas comum fazer-se uso de funes de pertinncia padro, como, por exemplo, as de forma triangular, trapezoidal e Gaussiana. Em aplicaes prticas as formas escolhidas inicialmente podem sofrer ajustes em funo dos resultados observados.

2.5.3. A Inferncia Fuzzy


O processo de inferncia fuzzy ou raciocnio aproximado permite o mapeamento do conhecimento a respeito de um determinado sistema atravs de regras fuzzy do tipo se-ento podendo determinar o comportamento de sada do mesmo [13]. As regras associadas ao processo possuem a seguinte forma: Se (condio) Ento (ao) antecedente conseqente

Assim, dado que x e y so variveis lingsticas compostas respectivamente por um conjunto de termos. A = {A1, A2,...., An} e B = {B1, B2, ...,Bn}. Ento, o problema bsico do processo de inferncia encontrar uma funo de pertinncia B` que representa a conseqncia da aplicao simultnea de regras da forma se (condio), ento (ao). Normalmente, os processos de inferncia fuzzy aplicados nas regras acima so baseados nas regra modus ponens generalizada que definida por: Fato: X A` Regra : X A, entao y B Consequencia : y B` A regra de inferncia anterior pode ser interpretada por: se x A` e sabe-se que quando X A ento y B, verdade que y realmente B`. Logo se o conjunto A implica diretamente no conjunto B ento essa operao de implicaes pode ser transformada em uma relao de implicao R (x,y). Alternativamente ao modelo ponens, podese utilizar nos processos de inferncia fuzzy a regra de modus-tolens generalizada. Este procedimento aplicado em regras do tipo:

Fato: y B` Regra : Se x A, ento y B Conseqncia: x A` Utilizando a mesma anlise feita anteriormente para a regra de modus ponens, obtm-se o conjunto A` que dado por: A`(x) = R (x, y) o B`(y) A regra modus ponens bastante utilizada em processos de estimao/ controle fuzzy, enquanto que a regra de modus tolens aplicada em processos envolvendo sistemas especialistas.

2.5.4. Controlador Fuzzy


Segundo Pedriycz e Gomide [18], o diagrama esquemtico de um controlador fuzzy pode ser representado, como na figura abaixo:

Figura 6 Funes de pertinncia A descrio dos blocos que compem o diagrama da Fig. 6 dada a seguir: Interface de Fuzzificao: obtm os valores das variveis de entrada, faz um escalonamento para condicionar os universos de discurso, transformando nmeros em conjuntos fuzzy. Base de Conhecimento: consiste de uma base de regras, caracterizando a estratgia de estimao e suas metas. Base de Dados: armazenam as definies necessrias sobre discretizao, definio de funes de pertinncia e etc. Procedimento de Inferncia: processa os dados fuzzy de entrada, juntamente com as regras, de modo a inferir as aes de sada fuzzy. Interface de Defuzzificao: Transforma as aes de sada fuzzy inferidas em aes/respostas no fuzzy. Em seguida, efetua um escalonamento de modo a compatibilizar os valores normalizados vindos do passo anterior com os valores reais dos universos de discurso das variveis.

Como mencionado, os sistemas fuzzy permitem a manipulao de informaes inexatas como tambm a modelagem de processos descritos qualitativamente. Estas informaes compem uma famlia de conjuntos fuzzy que representam as entradas e sadas do controle atravs de variveis lingsticas.

2.6. Mquinas de Estado Finitos


Historicamente, uma Mquinas de Estados Finitos (Finite State Machine) tambm denominada FSM, um dispositivo com uma formalizao rgida, usado por matemticos para resolver problemas baseados em eventos discretos. Dentre as FSMs historicamente conhecidas est a clebre Mquina de Touring, que definida em um artigo de 1936 que ainda prope a seguinte definio gerica de FSM: uma FSM um dispositivo, ou um modelo de um dispositivo, no qual temos um nmero finito de estados num dado momento qualquer e que pode ser operado efetuando-se transies de um estado para outro. Uma FSM pode ter somente um estado por vez. Segundo Bourg [5], uma FSM uma abstrao de uma mquina que conduz diversos estados predefinidos, definindo condies que determinam quando um estado muda. O estado atual determina como a mquina se comporta.

Figura 7 Mquina de estado simples A idia de uma FSM decompor um comportamento de um objeto em estados facilmente gerenciveis. Podemos compreender facilmente a idia com um simples exemplo proposto por Buckland [6]: Um interruptor de luz possui dois estados: ligado e desligado. Transies entre os estados so feitas por uma ao de um dedo considerado com uma entrada. Clicando para cima feita uma transio de desligado para ligado, e clicando para baixo feita uma transio de desligado para ligado. No h sada associada com o estado desligado, mas quando o estado ligado, a eletricidade conduzida atravs do interruptor clareando uma sala atravs de um filamento de uma lmpada. Em jogos as FSMs so aplicadas de maneiras abrangentes e j eram utilizadas por exemplo com os fantasmas de Pac Man. Estes podem perambular livremente, perseguir o jogador, ou fugir do jogador. Em cada estado h um comportamento diferente, e estas transies so determinadas pelas aes do jogador. Por exemplo, se o

jogador comer uma plula de fora, os estados dos fantasmas mudam de perseguir para fugir. O diagrama da figura a seguir ilustra um simples modelo de uma FSM.

Figura 8 FSM dos fantasmas de PAC-MAN A figura apresenta uma Maquina Finita de estados que demonstra um modelo similar ao comportamento dos fantasmas de Pac man. Cada retngulo representa um possvel estado (perambular, caar e fugir). A condio blue atende a ao de o jogador utilizar uma plula de fora, enquanto a condio see identifica a condio de o fantasma encontrar o jogador. Buckland [6] apresenta algumas vantagens na utilizao de Mquina Finita de Estado: Facilidade e rapidez: existem diversas formas para programar uma mquina finita de estados, e quase todas elas so simples de programar. Facilidade de depurar: quando um comportamento de um agente estiver sendo interpretado de forma incorreta, este pode ser facilmente depurado rastreando o cdigo entre os estados. Intuitivo: os estados so interpretados de maneira similar ao pensamento humano. Flexibilidade: um agente pode ser facilmente ajustado e evoludo em um projeto de jogo digital, podendo receber novos estado e condies. Tcnicas de lgica fuzzy e redes neurais podem ser combinadas lgica de uma Mquina finita de estados. Uma desvantagem da utilizao de Mquinas Finitas de Estados so as aes repetitivas quando uma determinada condio atendida, os estados podem se tornar limitados (quanto mais complexo for o ambiente, maior o nmero de estados e transies na qual a mquina ter de prever (Karlsson, 2006)).

3. Aplicaes em Jogos
Nesta seo descrevemos algumas das principais aplicaes de IA em jogos digitais. Para cada uma delas, procuraremos apresentar uma descrio que claramente referencia o mecanismos de IA (dentre os apresentados na seo anterior) que podem ser empregados para se obter o resultado esperado.

3.1. Estratgia
Um jogo de estratgia tem como caracterstica explorar as habilidades lgicas de um jogador, tais como gerenciamento de recursos, anlise de cenrios e oportunismo. Segundo [7] a inteligncia em jogos de estratgia pode ser dividida em dois nveis: Navegao de unidades: geralmente utilizado algoritmo de vida artificial (A*), ou alguma tcnica que considere planejamento em tempo real. Planejamento estratgico: determina caminhos de rvores, ritmos de produo, freqncia de ataques, deslocamentos e posicionamento.

Nestes nveis podemos encontrar mtodos aplicados como: mquinas de estados combinados com sistemas baseados em regras, permitindo ajuste de dificuldade e jogabilidade. Do gnero estratgia, em destaque esto os jogos de tabuleiro, normalmente jogados por duas pessoas, mas que podem admitir um nmero arbitrrio de participantes. Como jogos de tabuleiro mais populares podemos citar xadrez, damas, ludo e gamo. Tomando como base um jogo de xadrez, a metodologia para se desenvolver esse tipo de jogo (programa) pode ser dividida em trs partes, sendo a primeira, um cdigo deve ser escolhido para o posicionamento das peas no tabuleiro. Uma estratgia deve ser encontrada para escolher os movimentos a serem feitos e essa estratgia deve ser traduzida numa seqncia de ordens elementares. O movimento especificado pelo cdigo do lugar onde a pea est e pelo cdigo da localizao de destino. O segundo problema a definio da estratgia do jogo, um processo direto deve ser encontrado para calcular um movimento razoavelmente bom para qualquer posio corrente. O programa pode usar o principio das jogadas registradas pelos jogadores de xadrez, que podem dar alguma ordem ao labirinto de possibilidades de variaes do jogo. No momento de montar a estratgia, deve existir um mtodo de avaliao para qualquer posio do xadrez. Um jogador pode estimar qual dos lados tem a vantagem (branco ou preto), alm disso pode fazer julgamentos sobre o valor de cada pea. Ele faz isso baseado em uma longa experincia. Por exemplo, pode-se encontrar escrito que uma rainha vale nove pees. Em um primeiro momento, uma posio pode ser avaliada medindo-se as foras de cada lado em termos da unidade de peo. No entanto outros fatores devem se levados em conta: A mobilidade e a colocao das peas, a fragilidade na proteo do rei, a formao dos pees e outros. Esses podem ter seus pesos e serem combinados na avaliao. Por isso o conhecimento dos jogadores deve ser incorporado em regras heursticas. O gnero de estratgia evoluiu de jogos de tabuleiro, como WAR, para os computadores. Como os computadores so capazes de anotar dados e dar informaes

em tempo real para o jogador, os jogos puderam atingir um novo grau de maturidade e dinamismo, tornando o gnero nico. Cronologicamente, os primeiros jogos de estratgia eram adaptaes simples de jogos de tabuleiro e, por isso, ainda mantinham a caracterstica de jogos baseados em turnos, ou seja, cada jogador pode realizar suas aes separadamente, enquanto o outro jogador aguarda. Jogos baseados em turnos permitem ao jogador analisar o impacto de cada um de seus movimentos, olhar com cuidado o que seus oponentes esto fazendo e planejar meticulosamente as suas aes. Estratgia baseada em turnos, um dos jogos mais famosos do gnero, o Civilization, uma adaptao de um jogo de tabuleiro chamado Advanced Civilization. O jogo permite mais de uma forma de vitria, uma dela por meio militares e outra por meios tecnolgicos. Tambm inclui meios polticos de resolver conflitos, um sistema de comrcio entre as civilizaes e as unidades no agressivas, diplomatas. Os jogos de estratgia em tempo real (RTS) empregam um modelo de inteligncia artificial hierrquico tendo seus programas divididos em camadas de deciso de estratgia e ttica. A camada de estratgica possui mdulos de planejamento, usando arvores para navegao entre recursos, matrizes e processamento de imagens para localizao de problemas na formao do jogador ou mesmo partes do cdigo desenhadas para definir derrota ou vitria. J a camada ttica, pode-se basear em mquinas de estado, lgica fuzzy e rvores de deciso para definir possveis situaes de ataque e defesa. Um dos jogos de estratgia em tempo real (RTS), Dune the building of a dinasty, da Westwood Studios, ou simplesmente Dune 2, com tema baseado nos livros de Frank Herbert, o jogo definiu o gnero e tinha todos os elementos que encontramos em um bom RTS de hoje: diferentes unidades militares, necessidade de minerao de recursos emisses entre fases. Certamente os jogos de estratgia tiveram grande impacto com as series Warcraft, Starcraft , Command e Conquer. Houve melhorias na capacidade das unidades de se locomoverem no mapa (pathfinding), e nas estratgias desempenhadas pelo computador.

3.2. Sensoriamento do Ambiente


Atualmente a modelagem de percepo chave para a sustentao da iluso de ateno de um agente [6]. Estas modelagens tem o intudo de simular decises lgicas dos sentidos, como audio, viso e olfato, de modo que um agente possa perceber um ambiente de forma similar humana. Alguns comportamentos inadequados so claros nos jogos digitais, como por exemplo: Um jogador se aproxima silenciosamente de um inimigo, este s identificado quando se encontra no raio de ao do agente. Quando o jogador corre e se esconde, o inimigo vai diretamente ao ponto onde o jogador se escondeu. Holofotes de luzes cruzam um campo de viso, deixando pontos cegos, o jogador passa pelos pontos cegos sem ser visto, mesmo assim ele se depara com um guarda que desceu a torre a seu encontro.

Estes eventos so acionados porque os dados do jogo so acessveis pela inteligncia artificial, entregando aos agentes um sensoriamento onipotente. Isto acontece pela no separao da percepo x realidade [6]. Para prevenir estas inconsistncias, os sentidos dos agentes devem ser filtrados, capacitando estes de forma consistente, por exemplo: Se um jogador humano tem a capacidade de viso de 90 graus, a capacidade de viso de um agente dever compartilhar a mesma restrio. Se o jogador no pode ouvir um agente piscar, um agente tambm no deve ouvi-lo. Um agente no deve enxergar um jogador na escurido. Em outros jogos, o erro no est no excesso de informaes dos agentes, mas sim na falta de variveis para interpretao de uma ao, causando uma ineficincia aos agentes para identificar eventos e entidades, como por exemplo: Um jogador controla uma nave, duas naves inimigas atiram em direo ao jogador, uma delas atingida e ocorre uma ampla exploso, capaz de danificar a outra nave inimiga, esta por sua vez sai intacta da exploso. O jogador atinge um guarda, o corpo dele fica estendido no cho, com o movimento aparecem novos guardas, estes no tomam conhecimento do corpo estendido, chegando at mesmo pisar no corpo. Em uma batalha com um inimigo, o jogador est com pouca energia, este sai da batalha para obter suprimentos, o inimigo no sai da sala em sua procura, e ao retornar tudo se recomea.

Figura 9 Campos de viso de agentes Na figura 9, observamos Basher e Gnasher no campo de viso de Billy. No segundo momento Billy ataca Basher, este perde a viso de Gnasher, ficando exposto ao ataque [14]. De acordo com as situaes apresentadas, a iluso de inteligncia quebrada, os agentes no se comportam de maneira esperada, em acordo com uma capacidade de percepo consistente. Segundo [6] estas inconsistncias podem ser evitadas, isolando tarefas, filtrando percepes e simulando lembranas sensoriais.

3.3. Path-Finding
Path-finding, ou simplesmente navegao, uma das aplicaes mais corriqueiras em jogos eletrnicos. De fato, a construo de um mundo virtual habitado por agentes autnomos que se movem em busca de algum objetivo frequentemente caa do personagem controlado pelo jogador requer a introduo de mecanismos que suportem essa navegao. Os mtodos mais comuns de navegao so aqueles baseados em regras simples e com caractersticas reativas. Um exemplo deste tipo de mecanismo, conhecido como crash and turn pode ser descrito pelas seguintes regras:

1) Verifique se a prxima posio em direo ao alvo est vazia; se estiver, mova-se. 2) Seno, vire-se na direo cuja movimentao o coloque mais prximo de seu alvo. Se no houver uma escolha nica, selecione uma aleatoriamente. Mova-se. No h nada realmente inteligente nesta tcnica. Segundo ela, agentes adquirem a propriedade da navegao sem que tenham qualquer conhecimento prvio do terreno por onde devero se movimentar, o que demonstra a ausncia da caracterstica de aprendizagem. Este mecanismo pode, no entanto, ser estendido e sofisticado com o auxlio de tcnicas de IA para se tornar verdadeiramente inteligente. Uma pequena alterao que proporciona uma significativa melhora no processo de navegao a introduo de uma memria de mapeamento em cada agente. Atravs desta tcnica, cada agente mantm em memria um mapa que construdo medida que se movimenta pelo terreno ou labirinto. Com isso, seu mecanismo de navegao pode ser incrementado com processos de busca semelhantes aos vistos na seo 2.1 para selecionar previamente o melhor caminho rumo ao objetivo. Neste caso, o algoritmo de navegao seria semelhante a: 1) Considerando-se a posio atual do alvo, procure no mapa em memria o melhor caminho at ele. 2) Se o prximo movimento no estiver mapeado em memria, faa: a. b. Verifique se a prxima posio em direo ao alvo est vazia; se estiver, mova-se. Seno, vire-se na direo cuja movimentao o coloque mais prximo de seu alvo. Se no houver uma escolha nica, selecione uma aleatoriamente. Mova-se. Marcar a posio atual no mapa em memria.

c.

Este tipo de abordagem emula um processo hipottico de aprendizagem, mas ainda est distante de algo verdadeiramente inteligente porque as informaes disponveis ao agente incluem elementos que, numa situao real, no existiriam, como o conhecimento da posio de seu alvo em um labirinto. Pode-se modelar este conhecimento atravs da abordagem sensorial apresentada na seo anterior, mas neste caso o nvel de percepo seria limitado por conta das barreiras fsicas existentes no cenrio. Num jogo digital o desenvolvedor dispem de todas as informaes que precisa para definir o mecanismo de navegao a ser empregado pelos agentes. Desta forma, possvel construir um mecanismo relativamente simples e que caa seus alvos com preciso e eficincia absolutas. Essa onipresena de informaes acerca do estado do jogo torna o uso do termo IA questionvel, porque no estamos emulando um comportamento verdadeiramente humano em nosso agente. Mecanismos sofisticados de navegao, como os empregados, por exemplo, para a definio de rotas em mapas de cidades, podem sim utilizar tcnicas de IA para contornar a complexidade computacional de se lidar com representaes de estado

muito detalhadas (mapas com informaes de trnsito em tempo real, por exemplo). Entretanto, no campo dos jogos digitais essas abordagens so no s desnecessrias como tambm proibitivas, j que a navegao deve-se dar em tempo real e no se dispe de recursos computacionais de alto desempenho para realiz-la. Tcnicas de IA, como a combinao de um sistema especialista auto-alimentado com modelos sensoriais, podem ser empregados em jogos que se proponham a simular o comportamento dos agentes tal como o de seres vivos. Entretanto, voltamos a colocar que, para isso, tcnicas mais simples e computacionalmente mais econmicas podem ser utilizadas. Acreditamos que, com a contnua evoluo do poder computacional disponvel aos consoles de vdeo game, poder se imaginar uma modelagem genrica de agentes totalmente autnomos que agiro como seres naturalmente inteligentes na descoberta de terrenos e na aplicao de tcnicas de navegao.

3.4. Combate
Uma situao muito comum em jogos, principalmente nos de ao e estratgia, a presena de combates entre grupos de entidades onde, em geral, tm-se entidades controladas pelo jogador combatendo entidades computadorizadas. Nesses casos, os jogos precisam dispor de mecanismos que permitam controlar a forma como as entidades computadorizadas iro coordenar as aes e cooperar entre si, visando o objetivo maior que frequentemente vencer o grupo inimigo. Um exemplo desse cenrio pode ser encontrado no jogo Half-life 2, onde o protagonista precisa combater entidades computadorizadas. Neste jogo, as entidades computadorizadas apresentam um comportamento aparentemente inteligente e atravs de uma simples anlise, puramente emprica, possvel identificar alguns comportamentos bsicos: Cobertura: quando uma entidade computadorizada est recarregando sua arma, as demais entidades fornecem cobertura, continuando a disparar contra o protagonista. Isso ocorre tambm quando uma entidade inimiga est ferida, situao onde entidades mais saudveis tomam a frente do combate. Os inimigos tendem a se protegerem atrs de paredes, barris ou outros elementos do cenrio durante o combate e enquanto recarregam suas armas a fim de evitar serem atingidos. Alm disso, raramente os inimigos recarregam suas armas ao mesmo tempo ou em momentos muito prximos. Recuo: apesar do carter agressivo, entidades computadorizadas ocasionalmente recuam, principalmente em situaes onde detectam que esto em desvantagem. Outra situao onde as entidades recuam quando esto feridas. Avano: ao contrrio do recuo, o avano caracterizado pelo aumento da agressividade e tomada de posio realizada pelas entidades computadorizadas quando detectam que esto em vantagem. Nota-se que o recuo do jogador refora o carter de avano das entidades inimigas.

O jogo Half-life 2 faz uso de sistemas multi-agentes para prover os comportamentos identificados. Nota-se que natural modelar a problemtica de combate entre entidades, abordada no jogo, atravs de sistemas multi-agentes, uma vez que clara a necessidade de que as entidades precisam efetuar algum tipo de

comunicao para que possam coordenar suas aes e trocar informaes. Uma possvel descrio do sistema multi-agentes adotado no jogo pode considerar que as entidades computadorizadas descrevem um agente inteligente que possui o objetivo de vencer o combate atravs da cooperao com outros agentes parceiros. Atravs de comunicao poderiam expor informaes sobre seu estado (ferido, recarregando a arma, disparando etc), alm de poderem interpretar essas informaes a fim de realizarem aes que eventualmente determinariam o sucesso coletivo, como dar cobertura a outra entidade. Outro aspecto relevante em mecanismos de coordenao de grupos, como os sistemas multi-agente, que est presente no jogo Half-life 2 a introduo de uma entidade controlada pelo jogador em um grupo de entidades computadorizadas. Em Half-life 2 ocasionalmente o jogador possui entidades computadorizadas como aliados. Dessa forma, o mecanismo de inteligncia artificial precisa lidar com as decises do jogador e consider-las como peso na definio do comportamento das demais entidades computadorizados. Millington [16] afirma que em geral, mecanismos que coordenam aes em grupo no lidam muito bem com o fato do jogador tomar decises que diferem grandemente com o consenso do grupo formado pelas entidades computadorizadas. Como exemplo, ele cita o caso de um grupo formado pela entidade do jogador e outras entidades computadorizadas, onde o jogador decide seguir um caminho e as entidades planejaram seguir outro. Como sada para o problema, o autor afirma que muitos jogos, principalmente os de tiro em primeira pessoa, tendem a deixar a cargo do jogador o controle de decises de alto nvel permitindo, inclusive, que o jogador possa dar instrues s entidades computadorizadas. Em Half-life 2 tal caracterstica fica muito evidente, pois as entidades computadorizadas aliadas tem o comportamento padro de seguir o jogador e podem ainda serem ordenadas a irem a determinado local atravs de instrues do jogador. Entretanto, o comportamento inteligente ainda permanece para decises mais simples, como a de se defender quando surgem inimigos e recuar quando a situao fica desfavorvel, at mesmo em alguns casos em que o prprio jogador no recua.

4. Consideraes de Desempenho
O estudo da literatura acerca de IA nos mostra claramente que sua definio est longe de ser um consenso e, mais ainda, tm mudado significativamente com o tempo. Ao longo de suas quase oito dcadas de vida, o conceito de inteligncia artificial migrou de algo informalmente definido como o comportamento humano nas mquinas para um conjunto de tcnicas formais que, quando aplicadas nos mais diversos contextos, simulam diferentes aspectos do comportamento e inteligncia humana. A aplicao de IA em jogos digitais pode igualmente ser vista como um campo de estudo em constante mutao. O uso de simples sistemas baseados em regras, presentes nos primeiros videogames para emular comportamentos aparentemente inteligentes, so raramente aceitos hoje em dia como IA. Esta evoluo tem culminado na recente disponibilizao de jogos que empregam avanadas tcnicas de IA para implementar a aprendizagem e o raciocnios em seres virtuais. Essa evoluo observada tanto na IA quanto em sua aplicao nos jogos digitais - deve-se no s aos avanos conceituais da pesquisa nesta rea, quanto ao incrvel crescimento da disponibilidade de poder computacional em computadores de

consoles de vdeo game. De fato, a implementao de complexas redes neurais artificiais de processamento em tempo real em jogos seria algo inimaginvel h 15 anos, mas j uma realidade em ttulos como Creatures e Black & White. Acreditamos que a possibilidade de se aplicar tcnicas sofisticadas de IA em jogos digitais nos auxiliar no processo de definio do que efetivamente IA e o que so simples tcnicas matemticas para a resoluo de problemas de tomada de deciso. Acreditamos que a apario de agentes virtuais dotados de inteligncia na mesma acepo utilizada corriqueiramente quando nos referimos a pessoas nos permitir classificar no futuro um jogo como IA enabled com muito mais propriedade. Neste ponto, cabe mencionar Weiss et al [10], que apontam as implicaes da gradativa migrao das atuais plataformas monolticas para plataformas paralelas (multicore e distribudas). Os autores destacam que tcnicas como a de sistemas multi-agentes se adequam facilmente a este novo paradigma, o que deve incentivar o desenvolvimento de jogos e aplicaes que empregam este modelo. Por fim, cabe citar os MMORPG (Massive Multiplayer Online Role-Playing Game), que j tem se beneficiado desses aspectos, pois so jogos que podem apresentar alto grau de paralelismo e usufruir de arquiteturas de software distribudas para gerenciar e manter a coerncia de ambientes complexos.

5. Concluses
Neste trabalho analisamos algumas das principais tcnicas de inteligncia artificial utilizadas em jogos digitais. Pudemos perceber que, independentemente do aparente comportamento das entidades presentes em um jogo, poucos so os usos legtimos de IA neste campo. De fato, comportamentos aparentemente inteligentes podem ser obtidos atravs de tcnicas simples de busca em rvores de estado, ou atravs da implementao de mquinas finitas de estado. Nenhum destes casos requer necessariamente a introduo da capacidade de aprendizagem. Jogos digitais so um grande sucesso comercial e, como tais, esto sujeitos a todo o tipo de recurso de marketing que suportem suas vendas e seu apelo ante ao pblico-alvo. Uma das killer features de todos os jogos candidatos a vendas macias a presena de IA. Nosso objetivo neste relatrio foi fornecer uma viso crtica que permitisse ao leitor discernir o que pode e o que no pode ser classificado como IA num jogo, independentemente do que diga seu material publicitrio. Infelizmente esta anlise requer o conhecimento de detalhes de desenvolvimento que normalmente no esto disponveis ao usurio normal. Por fim, esperamos que, com este texto, tenhamos oferecido uma contribuio ao desenvolvedor de jogos que considerar a introduo de mecanismos de IA em seus jogos como alternativa a outras formas de implementao de comportamento inteligente.

Referncias
[1] [2] von Neumann. J., Morgenstem, O.. Theory of Games and Economic Behavior, Princeton University Press, 1944 Deloura, M., Game Programming Gems (Vol. I), Charles River Media Ed.. 2000. 550 P. ISBN 1584500492.

[3] [4] [5] [6] [7] [8] [9]

Russel, S., Artificial Intelligence: A Modern Approach, Prentice Hall, 2a edio, 2002, ISBN-10: 0137903952 Campbell, M., Hoane, A. J., Hsu, F-h., Deep Blue, Artificial Intelligence, Volume 134, Issues 1-2, Janeiro 2002, Pginas 57-83 Bourg, D. M., Seemann, G., AI for Game Developers, California, 2004 Buckland, M., Progamming game AI by example, Texas, 2005 Tatai, V. K.. Tcnicas de Sistemas Inteligentes Aplicadas ao Desenvolvimento de Jogos de Computador. Tese de Mestrado, FEEC/UNICAMP, 2003. Ramsey, M, Designing a Multi-Tiered AI Framework, AI Game Programming Wisdom 2 (ed. S. Rabin), Charles River Media. (2004) Von Zuben, F. J.; Introduo a computao natural, DCA/FEEC/UNICAMP, 2008.

[10] Kaufmann, A. ; M. Gupta (1985) - Introduction to Fuzzy Arithmetic - Van Nostrand, NY. [11] Zadeh, L. (1988) - Fuzzy Logic - IEEE Computer, April, pp. 83-92 [12] Lee, C.C (1990). Fuzzy Logic in Control Systems: Fuzzy Logic Controller, part I and II. IEEE Trans. onSystems, Man and Cybernetics, vol. 20, pp 404-435 [13] Tanscheit, R; Sistemas Fuzzy, DEE-PUC-Rio, Rio de Janeiro (2004) [14] Buckland, M., Progamming game AI by example, Texas, 2005 [15] Weiss, G, Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence, MIT Press, Massachusetts, [16] Millington, I., Artificial Intelligence for Games, Elsevier, California, 2006. [17] Demazeau, Y., Muller, J. P., Descentralized articifial intelligence, Amsterdam, Elsevier Science Publishers, 1991 [18] Pedrycz, W.; Gomide, F., An Introduction to Fuzzy Sets Analysis and Design. MIT Press: Cambridge, USA, 1998

You might also like