Post on 06-Feb-2023
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, cesar.roberto.slj@gmail.com.2 Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, elenadiasbastos@gmail.com.3 Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, munirzin@gmail.com.4 Bacharelando em Sistemas de Informação, Faculdade Metodista Granbery, pjcanete@hotmail.com.5 Mestre em Ciência da Computação, UNICAMP, smblima@granbery.edu.com.
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.