IA - Máquinas de Estados Finitos Aplicados a Jogos Eletrônicos

31
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 César Roberto de Sousa Loureiro Júnior 1 Elena Dias Bastos 2 Munir CheikKaled de Moraes 3 Paola Jenifer Cañete Rodrigues Gonçalves 4 Sérgio Muinhos Barroso Lima 5 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 1 Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected]. 2 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].

Transcript of IA - Máquinas de Estados Finitos Aplicados a Jogos Eletrônicos

1

Revista Eletrônica da Faculdade MetodistaGranbery http://re.granbery.edu.br - ISSN1981 0377

Curso de Sistemas de Informação – N.14, JUL/DEZ2013

Máquinas de Estados Finitos Aplicados a Jogos

Eletrônicos

César 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 de1 Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected] Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected] Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected] Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, [email protected] Mestre em Ciência da Computação, UNICAMP, [email protected].

2

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 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

3

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

fantasma, o jogo ganha uma imagem de desafio e superação, pois

4

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

5

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.

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

6

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 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.

7

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

8

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.

Figura 2 - Imagem do jogo Pac-Man, lançado em 1980. Fonte:

(ZAGALO, 2011).

9

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 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.

10

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á

11

abordada pelas técnicas de IA de maneira a facilitar o

processo de desenvolvimento de jogos.

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

12

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 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 é

13

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 eraciocínio, próprio de seres inteligentes. Assim,ao longo dos anos, a área de jogos tem sido umlaboratório importante para o desenvolvimento devarias técnicas de IA. Atualmente, vários jogos deúltima geração agregam técnicas de IA, o quesignifica que os personagens controlados pelamáquina têm o seu comportamento alterado dependendodo tipo de comportamento do usuário ou, ainda,modificam sua estratégia após uma derrota,caracterizando um aprendizado com a sua própriaexperiê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

14

das informações em uma ordem cronológica ao acontecimento do

jogo. Sendo assim, o algoritmo se torna uma I.A 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

15

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.

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

16

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.

Figura 4: Exemplo de Máquina de Estados com situações

típicas de jogos. Fonte:(SANTOS, 2004) .

17

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

encontra-lo. 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.

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

18

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.

19

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 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

20

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)

21

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.

22

Figura 6: Movimentação baseada em máquina de estados. Fonte: (LIMA,

2012).

B) Fugir: Quando a ação FUGIR é acionada, cada fantasma

movimenta-se mais lentamente com movimentos aleatórios como

demonstra figura 7.

23

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).

24

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 é

25

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).

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, movimenta-se em direção ao canto da tela

procurando encurrala-lo, como demonstra a figura 11.

26

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).

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

27

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

28

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.

REFERÊNCIAS BIBLIOGRÁFICAS

A História do Pacman, Disponível em:

<http://www.webartigos.com/artigos/a-historia-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ógicadigital II. Disponível em: <http://wiki.icmc.usp.br/images/6/60/Aula_3_-_StateMachine-SSC0110_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 dastécnicas de Inteligência Arti cialfi . Disponívelem:<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-

29

inteligencia-artificial-em-jogos-de-rh?page=1>. Acessado em:12/10/2013.

FILGUEIRAS, Fernando; LIMA, Sérgio M. B. Inteligência artificialaplicada aos jogos eletrônicos. Dissertação(artigo), FaculdadeMetodista 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/searc

h/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 NAINTELIGÊNCIA ARTIFICIAL. Disponívelem:<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

KISHIMOTO, Andre. Inteligencia Artificial em Jogos

Eletronicos. Disponível em:<

http://www.programadoresdejogos.com/trab_academicos/andre_kish

imoto.pdf >. Data de acesso: 04/12/2013.

30

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.unicamp.br/cursos/EA876/apostila/HTML/node46.html>. Data deacesso: 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-nos-games-%E2%80%93-categorias-e-aplicacao > Acessado em: 09/11/2013.

31

ZAGALO, Nelson. Virtual ILLusion. Disponível em: <http://virtual-illusion.blogspot. com.br/2011/05/video jogos-no-smithsonian-american-art.html >.2013.