Máquinas de Estados Finitos Aplicados a Jogos
Transcrição
Máquinas de Estados Finitos Aplicados a Jogos
1 Revista Eletrônica da Faculdade Metodista Granbery http://re.granbery.edu.br - ISSN 1981 0377 Curso de Sistemas de Informação – N.14, JUL/DEZ2013 Máquinas de Estados Finitos Aplicados a Jogos Eletrônicos Cesar Roberto de Sousa Loureiro Júnior1 Elena Dias Bastos2 Munir CheikKaled de Moraes3 Paola Jenifer Cañete Rodrigues Gonçalves4 Sérgio Muinhos Barroso Lima5 RESUMO: Atualmente no mercado, percebe-se um crescimento significativo nas tecnologias na área dos jogos eletrônicos. Os games tem conquistado uma posição de destaque. O mercado oferece uma gama de possibilidades de acordo com o gosto de cada usuário. Com o uso da inteligência artificial, os jogos têm proporcionado desafios de forma à atrair usuários de diversas faixas etárias, possibilitando o sentimento e sensação de outra realidade com o uso do mundo virtual. Esse artigo tem por objetivo apresentar a utilização de Máquinas de estados finitos e suas aplicações em Inteligência Artificial (IA) nos jogos, além de um estudo de caso do jogo PAC-MAN. PALAVRAS-CHAVE: Jogos Eletrônicos, Inteligência Artificial, IA, Máquinas de Estados Finitos, Pac-Man. ABSTRACT: Currently on the market, there is a significant growth of the technologies in the field of electronic games. The games have earned a prominent position. The market offers a range of possibilities according to the taste of each user. With the use of artificial intelligence, games have provided challenges in order to attract users of 1 Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected]. Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected]. 3 Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected]. 4 Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected]. 5 Mestre em Ciência da Computação, UNICAMP, [email protected]. 2 2 different ages, allowing the feeling and sense of another reality with the use of the virtual world. This article aims to present the use of handling techniques, finite state machines and their applications in Artificial Intelligence (AI) in games, and a case study of the game PAC-MAN. KEY-WORDS: Electronic games, Artificial Intelligence, Finite State Machines, Pac-Man. 1. INTRODUÇÃO A tecnologia, e o avanço no desenvolvimento de softwares, têm-se reproduzido em máquinas do mundo real. Para que essa interação do mundo virtual com o real ficasse cada vez mais atrativa e parecida com tarefas do nosso cotidiano. Para isso, utilizou-se das técnicas da Inteligência Artificial, que teve seu inicio após a segunda guerra mundial com os estudos do matemático Alan Turing. Desde essa época começaram então um avanço na IA, com aplicações em jogos eletrônicos, no intuito de serem cada vez mais atrativos para seus usuários. Para fazer essa interação da interface dos jogos com os usuários, utilizam-se várias técnicas de movimentação que serão mais aprofundadas no decorrer desse artigo. Mais à frente, surgiu a máquina de estados finitos, que pode ser usada de forma a se estabelecer um padrão de ações ou execuções a partir de condições atendidas no decorrer dos jogos, o que pode levar o jogo a se tornar previsível, como também pode ser programada e configurada, podendo tornar o jogo complexo e imprevisível. A abordagem do estudo de caso Pac-Man, exemplifica o uso da máquina de estado finito. O estudo de caso, o jogo Pac-Man, demonstra o surgimento de um importante marco na aplicação e evolução da IA em jogos. A utilização de máquinas de estados finitos abriu as portas para novas descobertas e melhorias na sua aplicação. O Jogo Pac- Man não foi apenas um novo game, e sim um novo conceito de utilização da IA aliada a Máquina de Estados Finitos em jogos. Com uma interface simples o jogo Pac-Man encobriu sua complexa programação, que o torna dinâmico, mesmo sendo uma máquina que realize sempre o mesmo tipo de execução que se espera em uma máquina de estados finitos. Através das personalidades (algoritmos de busca) implementadas em cada 3 fantasma, o jogo ganha uma imagem de desafio e superação, pois quanto maior o cenário a ser percorrido mais difícil é a tarefa de escapar dos fantasmas inteligentes. 2. Histórico da IA nos Jogos Eletrônicos. As ciências da computação têm explorado estudos sobre as diversas tecnologias e diferentes formas de programar, a fim de desenvolver estruturas capazes de serem inteligentes de maneira que possam ter a capacidade de aprender novas informações, desta forma é possível que uma máquina ou software tenha a capacidade de reagir e ter comportamentos de acordo com regras determinadas, estímulos ou até mesmo ações humanas, isto é, da mesma maneira que um ser humano reagiria, pensaria ou faria. O conceito de I.A(Inteligência Artificial) iniciou-se após a Segunda Guerra Mundial com alguns estudos e trabalhos do matemático Alan Turing que produziu o artigo "Computing Machinery and Intelligence" dando início aos maiores estudos de IA, desde então, vem sendo melhorados e implementados até os dias de hoje. Já para os acadêmicos, a IA é uma gama de possibilidades infinitas de como criar um ser inteligente usando computadores. Em 1958, o cientista William Higinbotham (também conhecido por ter participado do projeto Manhattan, que construiu a bomba atômica), criou o primeiro jogo eletrônico "Tennis for Two", demonstrado na figura 1, e neste mesmo ano, o jogo ficou em demonstração para o público, a fim de exibir a capacidade do laboratório de pesquisa em criar um jogo eletrônico com um computador analógico ligado a um osciloscópio, capaz de simular uma partida de tênis. Porém Higinbotham, nunca registrou legalmente sua criação, e um ano após, o jogo foi descontinuado. No entanto, em 1997, um grupo de engenheiros tentaram recriar o game para as comemorações de aniversário de 50 anos do laboratório de Brookhaven, local onde o game foi inicialmente criado. Willy Higinbotham, ficou conhecido no meio da computação para jogos, somente décadas após sua invenção, Tennis for Two. 4 Figura 1: O Primeiro Jogo Eletrônico com o auxilio de um Osciloscópio Tennis for Two em 1958. Fonte: (FILGUEIRAS, 2012 ) O jogo “Tennis for Two” propunha uma simulação bem simplificada do esporte. Um ponto piscando representava a bola e os jogadores manipulavam seu movimento por cima de uma linha vertical que simbolizava a rede. Não havia na imagem a representação dos jogadores, apenas da ‘bola’ e da ‘quadra’ de tênis, numa vista lateral(figura 1). Este jogo nunca saiu do laboratório. Em 1961 um grupo de estudantes do Massachusetts Institute of Technology (MIT) programou o primeiro jogo eletrônico interativo na história o Spacewar, onde duas pessoas controlavam duas espaço-nave diferentes e que deveriam lutar entre si. O programa foi desenvolvido no DEC PDP-1, um antigo computador com o tamanho de uma mesa. Os criadores de Spacewar não pensavam em ganhar dinheiro com a invenção, já que não havia mercado, pois na época, não existiam ainda os computadores de uso domésticos. Em 1970, Nolan Bushnell inciou o trabalho na versão fliperama do jogo Spacewar, chamada Computer Space e no ano seguinte, a empresa Nutting Associates comprou o jogo, colocando no mercado a primeira máquina de fliperama da história. Na década de 80 surgiram os primeiros videogames 8-bit: Famicom, da Nintendo e Master System, da SEGA (Service Games) e a empresa On-Line Systems (atual Sierra Online) lançaram os primeiros jogos para computador. No ano de 1978 os jogos eletrônicos tiveram uma grande reviravolta, pois todos os jogos eram estáticos e não possuíam qualquer inteligência para tornar o ato de “Jogar” mais divertido e dinâmico. Baseando-se nestes conceitos o inventor Tomohiro Nishikado desenhou o primeiro jogo com I.A no mundo chamado de “Space Invaders”, este jogo fazia grandes referências a invasões alienígenas e lutas 5 com espaçonaves. Seus algoritmos de I.A eram totalmente simples de forma que era possível aprender os padrões de movimentação dos inimigos e prever os seus movimentos. O jogo Space Invaders foi lançado pela empresa desenvolvedora de jogos Japonesa Taito Corporation e logo depois continuado pela Empresa Americana Midway Games. O game fez tanto sucesso que foi um dos primeiros jogos Arcade a ser transferido para o console do antigo Atari. A partir da década de 90, os jogos foram evoluindo de forma significativa e até os dias atuais vem sendo estudados para cada vez mais proporcionar novidades para seus usuários. Para Coppin (2012) “inteligência artificial, envolve utilizar métodos baseados no comportamento inteligente de humanos e outros animais para solucionar problemas complexos”, baseando-se neste principio, o desenvolvimento dos games começaram a se apoiar em diversas técnicas que simulem a realidade com maior número de detalhes possíveis. Para os programadores de jogos eletrônicos o significado de IA, se difere do meio acadêmico, pois para este ultimo a preocupação esta em desenvolver aplicações para resolver problemas complexos, como por exemplo, imitar o reconhecimento fácil de imagens e objetos que o ser humano é capaz de realizar. No entanto, os desenvolvedores de jogos se preocupam com a diversão em que os jogos serão capazes de proporcionar, o objetivo final deles é o resultado e não como o sistema alcança esses resultados, pois os jogos são negócios e seus consumidores não estão preocupados em como a IA foi usada e sim com diversão e desafio que o jogo proporciona para seus consumidores, seus personagens devem tomar decisões coerentes com o contexto em que está sendo aplicado. Os primeiros jogos eletrônicos lançados são considerados muitos simples se comparado com os jogos da atualidade (ver figura 2), pois com a evolução da tecnologia e da IA em jogos, estes foram ficando mais parecidos com a realidade, com imagens de alta resolução (figura 3). Os personagens são programados para usarem técnicas inteligentes de ações humanas, proporcionado mais atração nos usuários de jogos eletrônicos. A visão atual da inteligência artificial é direcionada a contribuir com o gamedesign para facilitar as modificações de acordo com a concepção do jogo, com o intuito de traduzir sentimentos e sensações tornando a imersão dos jogos muito maior e não apenas encarar as técnicas de IA como uma simples ferramenta de melhorar a experiência do usuário. 6 Figura 2 - Imagem do jogo Pac-Man, lançado em 1980. Fonte: (ZAGALO, 2011). Figura 3 - Pac-Man Adventures in Time. Fonte: (UOL JOGOS, 2013). Segundo TURKLE, Os avanços tecnológicos permitiram aos designers criarem jogos que apresentam situações visivelmente atraentes e requerem um conjunto de habilidades diversificadas que constituem um desafio. (...) Os designers estão a começar ultrapassar essas limitações. Novas gerações de gráficos de computador permitirão às 7 personagens dos jogos gestos e expressões faciais mais realistas. (1989, p. 68 apud SENA & MOURA). Além da parte visual, os jogadores buscam jogos com certo equilíbrio de dificuldade, pois eles não querem algo muito fácil de ganhar, nem muito difícil, para chegar nesse equilíbrio de nível de dificuldade do jogo, usa-se então a IA, pois é ela que irá proporcionar a inteligência nos personagens dos jogos que não serão controlados pelos seres humanos e sim irão interagir com os usuários dos games. Vale ressaltar com essa evolução dos games, a necessidade de hardwares potentes para rodar essas aplicações dos jogos de hoje, pois antigamente com um hardware de uma máquina simples era suficiente, já nessa nova era dos jogos implementados com abrangentes técnicas de IA, faz-se necessário máquinas mais eficientes como, por exemplo, mais memória, melhores processadores, entre outros componentes. 3. IA em Jogos e as técnicas utilizadas Uma das mais interessantes áreas de estudo para aplicação da inteligência artificial atualmente, tem sido a utilização em jogos eletrônicos, com o objetivo de tornar o mundo eletrônico mais perto da realidade humana. A Inteligência Artificial sistematiza e automatiza tarefas intelectuais e, portanto, é potencialmente relevante para qualquer esfera da atividade humana. Já os Softwares que usam a IA, são produtos intangíveis que utilizam no seu processo de construção recursos intelectuais humanos, que vão desde sua especificação até sua distribuição e pleno funcionamento. Inteligência Artificial é uma das ciências mais recentes, que atualmente abrange uma variedade enorme de subcampos, que vão desde áreas de uso geral, como aprendizado e percepção, até tarefas mais específicas, como jogos de xadrez. A IA otimiza as tarefas que exigem raciocínio e portanto, é um modo de ampliação nas atividades intelectuais humanas como meio de auxiliar os processos que precisam de uma determinada lógica interativa, que neste caso, será abordada pelas técnicas de IA de maneira a facilitar o processo de desenvolvimento de jogos. 8 3.1. Sistemas especialistas Sistemas especialistas (SE’s) são uma classe de software que atuam como colaboradores na tomada de decisão em áreas da ciência dominadas por especialistas humanos. Um sistema especialista condensa o conhecimento de um ou mais especialistas e utiliza este conhecimento armazenado para auxiliar na resolução de problemas do usuário. Os SE’s são Sistemas Baseados em Conhecimento (SBC’s) que atuam em áreas e em tarefas bem definidas. Estruturalmente, todo SE é constituído de duas partes principais: a Base de Conhecimento (BC), que contém o conhecimento heurístico e fatual sobre o domínio de aplicação do SE, e a Máquina de Inferência (MI), que usa o conhecimento da BC para construir a linha de raciocínio que leva à solução do problema. 3.2. Sistemas Baseados em Regras Uma regra consiste de uma parte “SE”, o lado esquerdo da regra, e de uma parte “ENTÃO”, o seu lado direito. A parte “SE” lista um conjunto de condições combinadas de forma lógica e a parte “ENTÃO” representa a ação a ser executada ou a conclusão a ser deduzido, caso todas as condições da parte “SE” tenham sido satisfeitas. 3.3. Sistemas Fuzzy A Lógica Fuzzy (também chamada de lógica multivalorada) foi primeiramente introduzida em 1930 pelo filósofo e lógico polonês Jan Lukasiewicz através do estudo de termos do tipo alto, velho e quente, ele propôs a utilização de um intervalo de valores [0,1] que indicaria a possibilidade que uma declaração fosse verdadeira ou falsa, podendo assim, ser considerada como um conjunto de princípios matemáticos para a representação do conhecimento baseado no grau de pertinência dos termos (graus de verdade). 3.4. Raciocínio Baseado em Casos Case-Based Reasoning (CBR) é uma técnica que utiliza a experiência passada para resolver problemas. A ideia de CBR é descrever e acumular casos 9 significativos para a área de conhecimento especializado e tentar descobrir, por analogia, quando determinado problema é “similar" a outro resolvido, aplicando a solução armazenada ao novo problema semelhante que surgiu. Um caso é um pedaço de conhecimento contextualizado representando uma experiência. Ele contém a solução do caso e o contexto onde essa solução pode ser usada. Um caso pode ser a descrição de um evento, uma história ou algum registro contendo tipicamente o problema no momento em que o caso ocorreu mais a solução para esse problema. Desta forma, não é necessário saber como resolver os problemas, e sim apenas reconhecer se um problema similar foi resolvido no passado. Por isso, para problemas bem compreendidos que não se modificam com o tempo, um sistema de regras é mais adequado. Para melhor contextualizar a respeito da utilização de IA em jogos, Artero(2009, p.20) explica que: A atuação em um jogo envolve o uso de estratégias e raciocínio, próprio de seres inteligentes. Assim, ao longo dos anos, a área de jogos tem sido um laboratório importante para o desenvolvimento de varias técnicas de IA. Atualmente, vários jogos de última geração agregam técnicas de IA, o que significa que os personagens controlados pela máquina têm o seu comportamento alterado dependendo do tipo de comportamento do usuário ou, ainda, modificam sua estratégia após uma derrota, caracterizando um aprendizado com a sua própria experiência. Pensando nisso, a indústria de jogos eletrônicos tem investido cada vez mais em sistemas de jogos que envolvam raciocínio lógico, despertando assim, o instinto de desafio em seus jogadores. Alguns anos após os lançamentos de jogos com I.A iniciou-se a corrida para se desenvolver cada vez mais técnicas e “Engines” capazes de tornar os games mais interativos, inteligentes e dinâmicos. Foram criadas técnicas para aperfeiçoar todas as atividades e tomadas de decisão que um game precisaria fazer. Desta forma, foi possível ampliar a diversidade, a interatividade e a mobilidade do jogo. Alguns jogos foram desenvolvidos com o Sistema de I.A Scripts associada a Máquina de Estado Finito, neste contexto o jogo é baseado em um algoritmo sequencial que realiza a busca das informações em uma ordem cronológica ao acontecimento do jogo. Sendo assim, o algoritmo se torna uma I.A 10 responsável por entender onde o jogo se localiza e quais as informações ele deve apresentar ao usuário. O Algoritmo é programado para trabalhar uma sequencia que tem Início, meio e fim, desta forma, o mesmo não retorna para funções iniciais obtendo sempre uma nova lógica de busca a cada capitulo do jogo. Aliado neste algoritmo de scripts, foi implementado também a Máquina de Estado Finito, assim, os elementos do jogo poderiam agir de forma autônoma e também interagir com o jogador. Um bom exemplo de jogos que utilizam estas técnicas são os Jogos de Gênero Adventure (do Inglês Aventura). 3.5. Algoritmo Genético Uma nova implementação de algoritmos de I.A em Jogos é o Algoritmo Genético. Este por sua vez foi utilizado em jogos com o intuito de criar características únicas para determinados elementos dos jogos. O Algoritmo Genético trabalha de forma a receber um padrão de seleção e distribuição de conceitos, assim pode selecionar e mutacionar as características dos elementos. Depois que os elementos são parametrizados e selecionados, estes, são armazenados em uma base de dados onde podem por sua vez constituir um grupo de elementos pré-dispostos em um jogo. Além da utilização do Algoritmo Genético, também é empregada a utilização da Máquina de Estados Finitos, esta tecnologia reaproveitada na área automobilística, realizou uma grande ampliação das melhorias de qualidade e confiabilidade nos produtos desenvolvidos. Uma vez que as empresas tiverem acesso a novos meios de prever e se antecipar sobre possíveis falhas que pudessem ocorrer em seus produtos fabricados. Para contextualizar Vieira (2012), exemplifica o uso do algoritmo genético: Com essa realidade, algumas empresas têm utilizado técnicas para automatizar a atividade de balanceamento através de uma simples aplicação de algoritmo genético, modificando os parâmetros de performance dos carros. 11 Um bom exemplo deste tipo de integração de tecnologias são os jogos de corrida, que utilizaram fortemente este tipo de implementação para obter um ambiente mais distinto com carros mais complexos e característicos para cada jogador. 4. Máquina de Estados Máquina de Estados Finito (do inglês Finite State Machine) ou autômato finito, é uma forma matemática de representar programas de computadores, pode ser definido pelo conjunto de estados, alguns dos quais podem ser denominados de estados finais, incluindo-se as transações entre os estados e as ações. Isto é, a medida que caracteres de uma determinada String de entrada são lidos, o controle de uma máquina pode variar de um estado a outro, que será definido de acordo com o conjunto de regras de transição especificadas para o autômato. Dessa forma, caso o ultimo caractere da cadeia de String seja reconhecido, este encontra-se em estado final, do contrario, a String não pertence a linguagem aceita pelo autômato. Um exemplo de Máquina de Estados, com estados e transições A figura 4, apresenta o comportamento de um personagem perante as possíveis situações de um determinado jogo, onde o estado inicial encontra-se ocioso, e permanecerá nesta situação até que um inimigo seja percebido. Ao se encontrar um inimigo, o personagem irá persegui-lo até que esteja tão próximo que possa ataca-lo, passando a efetivar o ataque logo em seguida. Durante a perseguição e o ataque, a “saúde” do personagem sofre decréscimos; dessa forma, quando a “saúde” do personagem tornar-se muito baixa, este deverá abandonar o ataque, e descansar para recuperar a saúde. 12 Figura 4: Exemplo de Máquina de Estados com situações típicas de jogos. Fonte:(SANTOS, 2004) . As regras de transição no exemplo da Figura 3, mostram que o valor de verdade, depende da entrada de dados fornecidos à Máquina pelos processos de decisões. Esses dados são fornecidos a medida que o personagem percebe a existência de um determinado inimigo em uma distância que seja possível encontralo. O estado de Ocioso também envolve uma busca de valores de variáveis que representam a condição do personagem naquele momento. Tais regras de transição podem ser aplicadas de maneira genérica, possibilitando sua interpretação em ambos os tipos de Máquina. A utilização das Máquinas de Estado Finito foi extremamente ampla, em especial na prática de jogos de luta, onde os oponentes tinham uma série finita de movimentações e comportamentos a partir de condições pré-definidas e programadas para os mesmos. Apesar de ser uma funcionalidade que permite um comportamento previsível para os jogadores, esta, pode ser amplamente programada, podendo se tornar extremamente complexa e imprevisível dependendo exclusivamente da programação e do intuito de sua utilização. 13 Máquinas de estados finitos tem o conceito muito importante em diversas áreas da informática e são utilizadas em estudos de processos sistemáticos. As máquinas de estados finitos “[...] são estruturas lógicas compostas por um conjunto de estados e um conjunto de regras de transição entre os estados. São ferramentas úteis em qualquer aplicação que envolva o controle de processos, na qual seja possível descrever cada uma das situações discretas em que os processos podem se encontrar a cada momento”. (SANTOS, 2004, p. 11). Foram essas estruturas lógicas que trouxeram maior dificuldade e inovação para os jogos, seja nos primeiros consoles e até hoje tendo maior participação nos cenários totalmente modificáveis e cada vez mais se aproximando do que é real. É necessário tratar os dois tipos de máquinas de estados, a determinística e a não determinística, mostrando suas diferenças. Em seguida abordaremos um estudo de caso sobre o PAC-MAN, e como funciona toda a lógica de busca de cada um dos fantasmas que estão inseridos no jogo. Numa máquina determinística ou autômato finito determinístico (AFD), as entradas que rotulam as transições de um dado estado, são mutuamente exclusivas, ou seja, não partilham símbolos comuns. Nestas máquinas, se conhecermos o estado inicial e a sequência de entrada então toda a trajetória de estados e a sequência de saída podem ser determinadas. É um padrão muito usado em jogos para definir o comportamento de agentes reativos em games. Como vantagem esses algoritmos são fáceis de programar, depurar e simples de entender além de seu processamento ser de baixo custo; mas possui uma desvantagem, pois a medida que o usuário vai jogando o game, logo ele já sabe as medidas para serem tomadas nas ações, devido a previsibilidade que esta técnica propõe. Nas máquinas não determinísticas a IA, possui um grau de indeterminação, podendo ser variável a cada implementação. Estas técnicas são difíceis de manipular, entender e testar. São mais lentas se comparado com as técnicas determinísticas, além de ser imprevisíveis. Um bom exemplo seria o aprendizado que NPC (Non Player Character – Personagem não controlado pelo jogador), adquire ao jogar com um usuário de game. O comportamento do NPC 14 pode variar de acordo com as medidas tomadas pelo jogador, aumentando assim o tempo do jogo e a diversão. Para este desenvolvimento de IA é necessário mais processamento, os algoritmos são mais complexos, mais difíceis de depurar, mais complicados de entender, ainda exigem uma atenção dos desenvolvedores para que as possíveis ações reações do computador estejam dentro do jogo. 5. Estudo de caso: PAC-MAN. Após o surgimento dos primeiros jogos com I.A, a Empresa Midway Games deu continuidade a esta revolução, dando origem a outro famoso game chamado de Pac-Man. O jogo Pac-Man foi baseado em um algoritmo um pouco mais complexo e com uma lógica simples. A lógica do jogo é basicamente simples, uma vez que foi utilizada a Máquina de Estado Finito. Este jogo foi desenvolvido pela empresa NAMCO na década de 80 onde até então existiam os consoles ATARI. O Jogo consiste em um mapa onde o jogador deve percorrer todo o labirinto de forma a recolher todos os objetos dispostos no mesmo. Além de percorrer o labirinto o jogador também deverá fugir dos fantasmas que o perseguem durante todo o jogo. Os fantasmas são: Inky, Pinky, Blinky e Clyde, o jogo utiliza Máquinas de Estados Finitos ou (Finite State Machines - FSM) para controlar os comportamentos dos fantasmas, os tempos são variáveis de acordo com os níveis do jogo, conforme ilustra figura 5, e a transição dos estados irá variar segundo o comportamento dos fantasmas, que será mostrado logo adiante. Esses fantasmas têm três tipos de comportamentos (também são conhecidos como personalidades), sendo que a forma de implementação para cada personalidade com uma ação, varia com o tipo de cada fantasma. Os comportamentos são: Caçar (Chase) Fugir (Evade) Dispersar (Scatter) 15 Figura 5: Movimentação baseada em máquina de estados: Dispersar, caçar e fugir. Fonte: (LIMA, 2012). Comportamentos: A) Dispersar O estado de Dispersão é responsável por mover os personagens em direção aos cantos e andar em círculos ficando o mais longe possível do PAC-MAN, como demonstra a figura 6. Figura 6: Movimentação baseada em máquina de estados. Fonte: (LIMA, 2012). B) Fugir: Quando a ação FUGIR é acionada, cada fantasma movimentase mais lentamente com movimentos aleatórios como demonstra figura 7. 16 Figura 7: Movimentação: Fugir . Fonte: (LIMA, 2012). C) Caçar: Para este comportamento, existem quatro funções de caçar, implementadas de acordo com a cor de cada fantasma, o algoritmo age de forma diferente. Cada uma destas funções são descritas e exemplificadas abaixo. BLINCK : Nome do fantasma vermelho, que tem como característica movimentar-se de acordo com a posição do PAC-MAN, seguindo-o como demonstra a figura 8. Figura 8: Movimentação: Modo de Caçar do fantasma Blink. Fonte: (LIMA, 2012). 17 PINKY: Fantasma de cor rosa que movimenta-se mirando quatro pontos a frente o PAC-MAN tentando assim prever seu caminho como demonstra figura 9. Figura 9: Movimentação: Pinky prevendo movimentação do PAC-MAN. Fonte: (LIMA, 2012). INKY: Este fantasma azul, movimenta-se mirando em uma combinação da direção e posição do PAC-MAN e do BLINCK, esse é um código mais apurado onde está sempre mais próximo do ator, como demonstra a figura 10. 1. 2. Figura 10: Movimentação: posição e direção x versus. Fonte: (LIMA, 2012). 18 CLIDE: O fantasma de coloração laranja, quando está em uma posição longe do PAC-MAN, movimenta-se em sua direção, quando está perto, movimentase em direção ao canto da tela procurando encurrala-lo, como demonstra a figura 11. Figura 11: Movimentação: encurralar Pac-Man. Fonte: (LIMA, 2012). O jogo não foi feito para ter fim, porém no level 256 o jogo entra em bug. Não foram feitas mais fazes após essa por isso o erro e gerado e o sistema dar erros como: não entende quando o pac-man morre, as esferas que alteram a função do fantasma para fugir não funcionam, metade do mapa fica desconfigurada, entre outros como demonstra a figura 12. Figura 12: Level 256 do Jogo Pac-Man. Fonte: (PITTMAN, 2011). 19 6. CONCLUSÃO A partir dos temas descritos neste artigo percebe-se a grande importância da IA (Inteligência Artificial) nos jogos eletrônicos, sem ela seria praticamente impossível assegurar a atenção dos usuários de games, pois os jogos seriam uma tarefa muito fácil e repetitiva. A IA propõe técnicas de inteligência humana nos games, tornando-os atrativos e desafiadores para seus usuários. Com o avanço significativo da tecnologia, as técnicas de IA vêm sendo cada vez mais aprimoradas, tornando a realidade virtual muito próxima do mundo real. A máquina de estado finito é uma das técnicas de IA mais antigas, no entanto, vem sendo utilizada atualmente, por motivos como rapidez e as facilidades de modificação, facilidade de depuração, além de utilizar pouco processamento, são intuitivas e flexíveis. O estudo de caso do Pac-Man, sendo um dos primeiros jogos a utilizar a IA, exemplificou como a máquina de estado finito pode ser usada em um game. Com o passar dos anos novas técnicas são desenvolvidas e cada vez mais os jogos se parecem com a realidade, sempre utilizando técnicas de inteligência artificial. Atualmente, o mercado oferece uma gama de possibilidades para quem quer trabalhar na implementação de jogos, existem várias áreas de atuação dentro dos games, pois o próprio crescimento desse mercado exige que mais pessoas atuem nesse campo. Para quem gosta dessa área, vale a pena investir nessa carreira. Neste artigo concluímos que os jogos eletrônicos aliados as máquinas de estados finitos, como por exemplo, o Pac-Man, antecessores dos atuais games, demonstraram um grande avanço para sua época. A máquina de estados finitos permitiu o avanço dos investimentos em descobertas de novas implementações em novos gêneros de jogos. Tais descobertas impulsionaram o mercado de jogos eletrônicos uma vez que os mesmos chamaram a atenção dos jogadores (players) por sua inteligência e capacidade de imprevisibilidade unindo também um aspecto simples que se torna extremamente desafiador com o emprego da IA. 20 REFERÊNCIAS BIBLIOGRÁFICAS A História do Pacman, Disponível em: <http://www.webartigos.com/artigos/ahistoria-do-pacman/46005/> Acessado em: 05/11/2013 ARTERO, Almir Olivette. Inteligência Artificial : Teoria e Pratica. Livraria da Física - São Paulo, 2009. BONATO, Vanderlei. Máquinas de Estados. Elementos de lógica digital II. Disponível em: < http://wiki.icmc.usp.br/images/6/60/Aula_3_-_StateMachineSSC0110_2010.pdf >. Data de Acesso: 28/11/2013. COPPIN, Ben. Inteligência Artificial. 1º ed. LTC. 2012 CORREA, Bruno Duarte, THIAGO, Dias Pastor. A evolução das técnicas de Inteligência Artificial. Disponível em:<http://sbgames.org/sbgames2012/ proceedings/papers/tutoriais/tutorial-04.pdf>. Acessado em: 28/11/2013. FERRER, Rafael. Empresa usa inteligência artificial em jogos de RH EXAME.com. Disponível em: <http://exame.abril.com.br/tecnologia/noticias/empr esa-usa-inteligencia-artificial-em-jogos-de-rh?page=1>. Acessado em: 12/10/2013. FILGUEIRAS, Fernando; LIMA, Sérgio M. B. Inteligência artificial aplicada aos jogos eletrônicos. Dissertação(artigo), Faculdade Metodista Granbery, Juiz de Fora, 2012. FILHO, Glauco B.R. Aplicação de Inteligência Artificial em Jogos Eletrônicos. Disponível em: <http://fatecindaiatuba.edu.br/reverte/index.php/revista/search/advan cedResults?subject=jogos%20eletr%C3%B4nicos>. Acessado em : 09/11/2013. GOLDSTONE, Will. Unity Game Development Essentials. Packt Publishin, 2009. LAICHT, Glauco David. A INFLUÊNCIA DOS JOGOS ELETRÔNICOS NA INTELIGÊNCIA ARTIFICIAL. Disponível em:<http://www.ceavi.udesc.br/arquivos/ id_submenu/387/glauco_david_laicht.pdf>. Acessado em: 26/11/2013 LIMA, Edirlei Soares de. Inteligência Artificial. Disponível em : <http://edirlei.3dgb. com.br/aulas/ia_2012_1/IA_Aula_26_Maquinas_de_Estados_Finitos.pdf>. Data de acesso: 07/11/2013 21 KISHIMOTO, Andre. Inteligencia Artificial em Jogos Eletronicos. Disponível em:< http://www.programadoresdejogos.com/trab_academicos/andre_kishimoto.pdf >. Data de acesso: 04/12/2013. PITTMAN, James. The Pac-Man Dossier. Disponível em: < http://home.comcast.net/~ jpittman2/pacman/pacmandossier.html> Data de Acesso: 17/11/2013. RICARTE, Ivan L. M. Autômatos finitos. Disponível em: <http://www.dca.fee.un icamp.br/cursos/EA876/apostila/HTML/node46.html>. Data de acesso: 30/11/2013. SANTOS, Gilliard Lopes dos. Máquinas de Estados Hierárquicas em Jogos Eletrônicos. Disponível em: <http://www2.dbd.puc-rio.br/pergamum/tesesabertas/ 0220940_04_cap_02.pdf>. Data de acesso: 04/11/2013. SENA, Gildeon; MOURA, Juliana. Game cultura. Jogos eletrônicos e Educação: Novas formas de aprender. Disponível em: <http://www.gamecultura.com.br/ index.php?option=com_content&view=article&id=438#axzz2mWUCRqHC>. Data de acesso: 03/12/2013. UOL JOGOS. Disponível em: < http://jogos.uol.com.br/album/pacman_album.htm#foto Nav=13 >. Data de Acesso: 03/12/2013. VIEIRA, Everton. Inteligência Artificial nos Games – Mais Aplicações | Abrindo o Jogo. Disponível em: <http://abrindoojogo.com.br/inteligencia-artificial-nos-games%E2%80%93-mais-aplicacoes>Acessado em: 04/11/2013 VIEIRA, Everton. Inteligência Artificial nos Games – Categorias e Aplicações ....Disponível em: < http://abrindoojogo.com.br/inteligencia-artificial-nosgames-%E2%80%93-categorias-e-aplicacao > Acessado em: 09/11/2013. ZAGALO, Nelson. Virtual ILLusion. Disponível em: < http://virtual-illusion.blogspot. com.br/2011/05/video jogos-no-smithsonian-american-art.html >.2013.
Documentos relacionados
Máquinas de Estados Finitos Aplicados a Jogos Eletrônicos
Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected].
Leia mais