Professional Documents
Culture Documents
Itajub
2007
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
RESUMO
Os jogos digitais so uma das formas de entretenimento de mais sucesso no mundo.
Desde a sua criao eles esto em um processo de constante evoluo, onde os fabricantes
procuram melhorar a sua qualidade empregando tcnicas de diversas reas de pesquisa da
computao no seu desenvolvimento.
A Inteligncia Artificial uma rea da computao que bastante empregada nos jogos,
pois ela responsvel por deixar os personagens e objetos do jogo inteligentes,
proporcionando maior realismo ao jogo e atraindo mais jogadores.
O artigo apresenta as principais tcnicas de Inteligncia Artificial utilizadas nos jogos,
mostrando o seu funcionamento e discutindo a causa que levam elas a serem as tcnicas mais
empregadas. No fim so apresentadas as tendncias da Inteligncia Artificial para o mercado
dos jogos de computador.
Palavras-chave: jogos de computador, inteligncia artificial, aplicaes de inteligncia
artificial, desenvolvimento de jogos.
ABSTRACT
The computer games are one of the most successful ways of entertainment in the
world. Since its beginning, they are in continuous evolution, and the manufacturers aim to
improve its quality on its development by using techniques from several areas of research in
computing.
The Artificial Intelligence is an area of computing widely used on games, once it is
responsible for making characters and objects intelligent, providing more reality and
attracting more players.
This article presents the main techniques of Artificial Intelligence used in the games,
demonstrating and discussing the causes that make them the most used techniques. Finally, it
is presented the tendencies of Artificial Intelligence in the field of computer games.
Keywords: computer games, artificial intelligence, artificial intelligence applications,
games development.
2
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
Sumrio
1 Introduo ........................................................................................................................4
2 Reviso Bibliogrfica .......................................................................................................6
3 Tcnicas de IA utilizadas no desenvolvimento de jogos de computador ............................8
3.1 Mquinas de Estado Finito .........................................................................................8
3.2 Path-Finding ............................................................................................................10
3.3 Padres de Movimento.............................................................................................10
3.4 Sistemas baseados em regras ....................................................................................11
3.5 Lgica Fuzzy ...........................................................................................................12
4 Futuro da IA nos jogos de computador............................................................................13
5 Concluso .......................................................................................................................13
6 Referncias bibliogrficas ...............................................................................................13
3
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
1 Introduo
Segundo Luz (2004), uma das primeiras tentativas de se criar um jogo eletrnico foi a
de Willy Hinginbothan, que em 1958 criou um prottipo de jogo de tnis usando um
osciloscpio como display. Essa foi uma das primeiras tentativas de se criar um jogo
eletrnico, mas para os amantes de jogos clssicos o primeiro jogo eletrnico chama-se
Spacewar!, criado por Steve Russel durante a sua graduao no MIT (Massachussets Institute
of Technology).
Desde ento, a criao de jogos evoluiu, segundo PJMOO (2007), ao ponto da
indstria de jogos superar a indstria do cinema, movimentando em 2003, US$ 28 bilhes no
mundo inteiro. Essa grande movimentao de dinheiro fruto da criao de jogos cada vez
mais sofisticados, aplicando novas tecnologias de computao, e a inteligncia artificial uma
delas.
Na computao existem vrias reas de pesquisa como computao grfica que so
aplicadas nos jogos de computador e este artigo tem como objetivo principal estudar as
aplicaes da IA (Inteligncia Artificial) no desenvolvimento dos jogos de computador.
Os jogos de computador procuram se tornar cada vez mais realistas, o que atrai novos
jogadores e aumenta o lucro dos fabricantes. Nesse processo de busca por mais realismo
pode-se citar a melhoria dos grficos do jogo, o que implica em melhoria dos componentes de
hardware, melhoria dos enredos e jogabilidade, dentre outros. Os jogadores sempre buscam
um jogo no muito fcil, mas nem to difcil ao ponto de ser impossvel de se completar o
objetivo, eles buscam um jogo onde predomine o equilbrio de dificuldade. Para se chegar ao
equilbrio necessrio utilizar a IA, pois ela que proporciona inteligncia aos NPCs (non-
player characters, personagens do jogo que no so controlados pelo humano). A IA fica
responsvel de possibilitar aos NPCs a inteligncia que somente os humanos possuem
proporcionando ao jogador inmeras situaes diferentes no jogo, o que deixa o jogo mais
real e interessante para o jogador.
A seguir mostrada uma tabela que mostra a histria do uso de IA nos jogos
eletrnicos.
4
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
5
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
2 Reviso Bibliogrfica
A definio de inteligncia artificial segundo o dicionrio The American Heritage
Dictionary of the English Language : A habilidade de um computador ou outra mquina
executar atividades que normalmente se acredita requerer inteligncia.
Segundo Bourg e Seemann (2004), mais apropriado pensar que IA o
comportamento inteligente demonstrado pela mquina que foi criada, ou talvez o crebro
artificial por trs daquele comportamento inteligente. Ainda Bourg e Seemann citam que
para outros estudiosos o estudo de IA no necessariamente tem o propsito de criar
mquinas inteligentes, mas o propsito de conseguir o melhor entendimento da natureza da
inteligncia humana. Ainda outros estudiosos estudam os mtodos de IA para criar mquinas
que demonstram alguma forma limitada de inteligncia.
Segundo Russel e Norvig (2004), os trabalhos em torno da IA comearam logo aps a
Segunda Guerra Mundial, e o prprio nome foi cunhado em 1956. Mas o primeiro trabalho
reconhecido como IA foi realizado por Warren McCulloch e Walter Pitts em 1943, eles
propuseram um modelo de neurnios artificiais, onde cada neurnio tinha dois estados:
ligado ou desligado. Um neurnio mudava para o estado ligado em resposta ao
estmulo de um nmero suficiente de neurnios vizinhos. Em 1949, Donald Hebb
demonstrou uma regra de atualizao simples para modificar as intensidades de conexo entre
neurnios. Essa regra, batizada de aprendizagem de Hebb, continua a ser um modelo influente
at hoje. (Russel e Norvig, 2004).
Vrios trabalhos que podem ser caracterizados como IA surgiram desde ento, mas
Alan Turing ao publicar em 1950 o seu artigo Computing Machinery and Intelligency
articulou uma viso completa da IA, onde apresentou o teste de Turing, aprendizagem por
reforo, aprendizagem de mquina e algoritmos genticos.(Russel e Norvig, 2004).
J a definio de jogos de computador, segundo Battaiola (2000), pode ser definido
como um sistema interativo que permite ao usurio experimentar, uma situao de conflito.
Quase sempre, como plano de fundo dessa situao, existe um enredo, que define do que se
trata o jogo, as regras que o jogador deve seguir e os objetivos que ele deve se esforar para
atingir.
Nos jogos de computador, os desenvolvedores e os jogadores sempre esto interessados
em atribuir aos personagens que no so controlados por um humano, caractersticas de
inteligncia humana, para melhorar assim a qualidade do jogo e atrarem mais consumidores.
6
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
Para isso so utilizadas diversas tcnicas de IA, segundo Karlsson (2005), algumas das
principais so:
Mquinas de Estado Finito: so as porcas e parafusos da IA dos jogos
(Bourg e Seemann, 2004). As mquinas de estado finito so compostas de um
conjunto de estados predefinidos e um conjunto de regras que definem a
transio entre os estados, geralmente os estados so alguma ao ou tipo de
comportamento que o personagem deve executar e podem tambm representar
algum evento a ser executado no ambiente do jogo;
Path-Finding: a busca de caminho entre dois pontos do cenrio. Para isso
utilizam-se algoritmos especficos, como o A* (l-se a-estrela) que determinam
os caminhos a serem percorridos para o desvio de possveis obstculos, inimigos
etc.;
Padres de Movimento: so tcnicas que determinam o comportamento de
objetos e/ou personagens do jogo durante a movimentao dos mesmos, essas
tcnicas pertencem ao conjunto de tcnicas que so chamadas de A-Life
(Artificial Life);
Sistemas baseados em regras: so sistemas onde existe um conjunto de
parmetros e um conjunto de regras, que trabalham sobre os parmetros de modo
a processarem essas regras e exibirem uma sada que pode ser uma ao do
personagem;
Lgica Fuzzy: a lgica fuzzy ou difusa uma lgica que admite valores
intermedirios entre o falso e o verdadeiro, como o talvez. Esse tipo de lgica
analisa as sentenas de forma incerta e procura representar as tomadas de deciso
humana;
Muitos estudos foram realizados na rea, e segundo Russel e Norvig (2004), IA continua
a ser estudada pelos pesquisadores com diversas aplicaes como: Planejamento autnomo e
escalonamento, controle-autnomo, diagnstico mdico, planejamento logstico, robtica,
reconhecimento de linguagem e resoluo de problemas. H uma diferena entre a IA
estudada e aplicada nas reas citadas acima e a que aplicada nos jogos. Segundo Kishimoto
(2004), a inteligncia artificial aplicada nos jogos de computador tem um objetivo mais
prtico que a IA aplicada no meio acadmico, enquanto no meio acadmico busca-se utilizar
IA para resoluo de problemas complexos, como reconhecimento de sinais e imagens, no
7
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
Escapou
Fora de Inimigo no
Recuperado Pouca sade alcance
alcance
Pouca sade
8
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
9
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
3.2 Path-Finding
Nos jogos de computadores os NPCs se movimentam de um ponto ao outro e durante
essa movimentao eles tm de se desviar de obstculos, demonstrando um sinal de
inteligncia. Para se determinar qual caminho que o NPC deve seguir faz-se o uso de
algoritmos de path-finding (busca de caminho).
Segundo Karlsson (2005), o modo como feito essa busca de caminho executando um
algoritmo de busca sobre os dados do cenrio para encontrar o melhor caminho entre a
posio de origem e posio de destino.
O algoritmo A* foi descrito pela primeira vez em 1968 por Peter Hart, Nils Nilsson, e
Bertram Raphael e foi chamado inicialmente de algoritmo A. Por ser um algoritmo fcil de
implementar e tambm por ser rpido para calcular o menor caminho entre dois pontos, o A*
um dos algoritmos de busca de caminho mais utilizados no desenvolvimento dos jogos.
Para se efetuar a busca de caminho os cenrios geralmente so organizados em formas
de ns no grafo em que os objetos e personagens podem ocup-los, mas essa representao
pode variar dependendo do tipo de jogo. Quando o jogo utiliza um ambiente contnuo, o
nmero de ns muito grande e a busca de caminho toma muitos ciclos de CPU (Central
Processing Unit unidade central de processamento). Por isso Karlsson (2005) sugere a
realizao de um balanceamento entre a qualidade do caminho encontrado e o tempo de
processamento. Ainda segundo Karlsson (2005), o A* demonstra dificuldades ao lidar com
mudanas e objetivos dinmicos no cenrio. Para melhorar o desempenho do A* feita a
simplificao da rea de busca diminuindo o nmero de ns existentes que so marcaes no
ambiente que ajudam os NPCs a se moverem e os ns, tambm chamados de waypoints,
podem representar pontos de interesse para o NPC, como a entrada de uma casa. Essa
representao atravs de waypoints bastante til para diminuir as chances de ocorrerem
problemas como personagens ficarem vagando pelo cenrio ou presos nos cantos do mesmo.
10
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
11
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
12
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
repostas intermedirias necessrio o uso de muitos estados, o que leva ao perigo de haver
exploses da quantidade de regras (Karlsson, 2005).
A lgica difusa por ser capaz de tratar o grau de verdade das situaes permite lidar
com problemas complexos com custo computacional relativamente baixo, (Karlsson, 2005)
alm de possuir outras vantagens como sntese, adaptao, flexibilidade e versatilidade,
importantes na modelagem da inteligncia artificial em um jogo (Karlsson, 2005).
Karlsson (2005), cita que pesquisadores buscaram resolver os problemas de
comportamentos previsveis das FSMs criando as Fuzzy FSMs (FuSMs), onde nas regras de
transio existissem valores fuzzy para determinar a mudana ou no de estado. Segundo
Karlsson (2005), alguns jogos fizeram uso de FuSMs dentre eles: Unreal, S.W.A.T. 2 e
Civilization: Call to Power.
5 Concluso
Ao final do trabalho obteve-se o conhecimento das principais tcnicas de IA aplicadas
no desenvolvimento dos jogos de computador e foi constatado que essas tcnicas so de
extrema importncia para a qualidade final do jogo, visto que a IA o ramo da computao
que tem mais poder de prover realidade aos elementos do jogo. Essa realidade gerada pela
IA o que prende o jogador, pois quanto mais situaes imprevisveis o jogo possui mais
prximo da realidade ele se situa e o tempo de vida do mesmo aumenta e como foi visto no
final do artigo, o futuro da IA nos jogos de computador tentar fornecer o maior nmero de
situaes imprevisveis para o jogador, aproximando-se cada vez mais da realidade, uma vez
que todos so sujeitos situaes adversas na vida real.
6 Referncias bibliogrficas
Luz, M. H. G. C. da. Desenvolvimento de Jogos de Computador Trabalho de
Concluso de Curso, Universidade Federal de Itajub, 2004.
13
Inteligncia Artificial aplicada no desenvolvimento de jogos de computador
14