Você está na página 1de 9

Tcnicas de Inteligncia Artificial em Jogos Eletrnicos

Roger Ritter
1
, Guilherme Daronch Taufer
Instituto de Cincias Exatas e Geocincias Universidade de Passo Fundo (UPF)
Caixa Postal 611 99.001-970 Passo Fundo RS Brasil
rogerritter@upf.br, 110532@upf.br
Abstract. Since many years ago, the usage of artificial intelligence in
softwares are increasing. Due to this, the curiosity make us know better how
these practices function at the attractive world of games. How there are
several techniques of artificial intelligence used by game developers, we chose
to study and describe in this article just the techniques more used today.
Resumo. H muitos anos a utilizao de inteligncia artificial em softwares
vem crescendo. Devido a isso, a curiosidade nos leva a conhecer melhor como
funcionam essas prticas num mundo to atraente para ns jogadores, que o
mercado dos jogos eletrnicos. Como existem diversas tcnicas de
inteligncia artificial utilizadas pelos desenvolvedores de jogos, escolhemos
estudar e expor nesse artigo apenas algumas das tcnicas mais
implementadas em jogos eletrnicos atualmente.

1. Introduo
Em jogos digitais, o uso de tcnicas de Inteligncia Artificial (I.A.) vem se fazendo cada
vez mais necessrio, e sendo at mesmo indispensvel em certos casos. Estas tcnicas
podem ser aplicadas em diferentes tipos de tarefas: resoluo de problemas (puzzles,
brain-teasers), planejamento de tarefas, planejamento de trajetrias, controle de agentes
autnomos (NPCs Non-Player Characters), entre outras diversas aplicaes.
Crocomo (2006) tem argumentado que a indstria do videogame vem fundindo
tecnologia e criatividade para produzir alguns dos melhores entretenimentos do sculo
21. Nos ltimos anos, muita nfase foi dada ao realismo dos jogos eletrnicos, fazendo
surgir uma variedade de motores grficos, fsicos, de udio e de Inteligncia Artificial
(IA). Grandes esforos foram empregados principalmente na ambientao grfica
utilizada. Sweetser (2002) disse que o prximo foco no mercado de jogos seria a
elaborao de personagens que se comportam de forma realista e podem aprender e se
adaptar, ao invs de personagens com maiores resolues e com mais frames por
segundo.
Bittencourt (2006) destaca que para poder integrar tcnicas de I.A. em jogos
digitais, se faz necessria a incluso de um novo componente em um motor de jogo
(engine), alm dos j tradicionais componentes destas Engines de Jogos: motores
grficos, de udio, de rede, de fsica, de controle de dispositivos de E/S (interao). Este
componente o motor de Inteligncia Artificial I.A





2. Inteligncia Artificial em Jogos
A utilizao de Inteligncia artificial em jogos no novidade, segundo Crocomo
(2006) o seu uso comeou em jogos clssicos como xadrez ou jogo da velha, porm
atualmente difcil encontrar um game que no utilize alguma tcnica de IA em seu
cdigo.
Nos ltimos 25 anos, os esforos empreendidos pela indstria de jogos se
concentraram principalmente na tecnologia grfica produzida, permitindo a criao de
mundos realistas com grficos 3D e avanadas engines fsicas. No entanto, Fairclough
(2001) tambm destaca que sofisticadas tcnicas de Inteligncia Artificial em jogos
esto comeando a ser utilizadas apenas atualmente.
As tcnicas de Inteligncia Artificial, segundo Bittencourt (2006), exploradas
pela indstria de jogos so muito simples quando comparado com as tcnicas
exploradas no meio acadmico e utilizadas em aplicaes industriais. Um dos fatores
que leva a uma menor explorao de tcnicas a falta de tempo disponibilizado ao
desenvolvimento de um jogo digital. Muitas vezes aplicado IA somente aps algumas
partes do jogo j terem sido implementadas, como, por exemplo, os motores grficos.
2.1 - Tcnicas de IA utilizadas nos jogos digitais
Correa e Pastor (2012) frisa que recentemente a indstria de jogos digitais passou a
pesquisar tcnicas no s em seus ambientes grficos, mas tambm, no desempenho e
nos movimentos e estratgias calculadas pelos personagens especialmente em jogos
Role-Playing Game (RPG) e Massive Multiplayer Online Role-Playing Game
(MMORPG).
Um exemplo para que isto acontecesse o jogo de Role-Playing Game (RPG)
Starcraft II desenvolvido pela Blizzard (2010). Quando escolhido o modo difcil, se joga
contra a Inteligncia Artificial, e esta tem uma grande vantagem contra o jogador
humano, j que, pode fazer clculos rpidos e ter um tempo de resposta melhor que o
player. Porm, uma desvantagem neste caso que os movimentos dos personagens
artificiais so previsveis, isso abre a chance de estudar o comportamento de seu inimigo
e definir uma estratgia para venc-lo. Com isso, o mesmo pode ser derrotado
facilmente.
Com base neste caso, a indstria de jogos digitais pretende pesquisar tcnicas
com o objetivo de eliminar a previsibilidade de jogadores humanos, analisando os
movimentos do oponente e realizando movimentos da Inteligncia Artificial de acordo.
Crocomo (2006) salienta que a evoluo das tcnicas utilizadas em jogos
eletrnicos evidente nos ltimos anos, tornando a experincia muito mais imersiva e
trazendo jogos cada vez melhores.
2.1.1 - Mquinas de Estado Finito
Segundo Fairclough (2001) a tcnica de Mquinas de Estado Finito (Finite State
Machines FSM) uma das tcnicas mais utilizadas na implementao de jogos, pois
baseada em regras, tem baixa complexidade e na maioria das vezes, utilizada pelos
desenvolvedores por ser de fcil gerenciamento.



As Mquinas de Estado Finito permitem que sejam armazenados tanto os
estados dos personagens do jogo, como do ambiente. Desta forma, torna-se possvel
gerenciar tanto o cenrio do jogo quanto seus personagens.
Segundo Crocomo (2006) a ideia principal desta tcnica dividir o jogo em
estados, contendo a sua transio para outros estados de acordo com uma determinada
condio, baseadas no comportamento do jogo.


Figura 1. Tabela de transio de estados.

No entanto, por ser determinstica, esta tcnica torna previsvel a estratgia
utilizada pelo computador, como no exemplo citado anteriormente por Correa e Pastor
(2012).
As Mquinas de Estado Finito, quando construdas em maior nmero, podem ser
organizadas em hierarquia. Denominada como Hierarquia de Mquinas de Estado Finito
(Hierarchial Finite State Machines HFSM), serve para implementaes um pouco
mais complexas, no qual a funo de transio de estados recebe as entradas e o estado
atual, que retorna o conjunto de sadas e um novo estado que passa a ser o estado atual.

Figura 2. Hierarquia de mquinas de estado finito.



2.1.2 - Scriptings
Segundo Crocomo (2006) Scripting uma linguagem de programao de alto nvel,
criada para simplificar uma tarefa complexa para um programa em particular, onde o
prprio jogador pode programar o comportamento de seus personagens. Muito popular
entre os desenvolvedores de jogos, tem sua fama devido ao fato de utilizar scripts fceis
de implementar e entender, at mesmo por usurios sem experincia em programao.
Geralmente, os scripts so criados de forma a lembrar uma linguagem natural, como o
ingls, por exemplo.
Scripting podem ser utilizados em vrias partes do jogo por diferentes pessoas:
O programador pode definir nos scripts os comportamentos a serem tomados
pelos personagens do jogo.
O roteirista pode utilizar scripts para implementar suas histrias.
Se o jogo for exposto ao pblico, os prprios jogadores podem utilizar scripts
para personalizar seus personagens, respeitando os limites definidos pelo
programador.
Os artistas grficos usam scripts para automatizar processos de animao com
grande quantidade de repetio.
Esta grande quantidade de aplicaes s possvel porque a linguagem scripting
normalmente separada dos dados do jogo. Desta forma, criado um ambiente seguro
para que no programadores realizem mudanas no programa sem causar problemas.
2.1.3 - Lgica Nebulosa ou Lgica Fuzzy
A Lgica Nebulosa, tambm conhecida como Lgica Fuzzy, foi introduzida em 1965,
pelo matemtico iraniano Lofti Asker Zadeh, [ZADEH, 1976]. Essa lgica seria um
primeiro passo no sentido de se programar e armazenar conceitos vagos em
computadores, tornando possvel a produo de clculos com informaes imprecisas, a
exemplo do que faz o ser humano.
A lgica Fuzzy no deixa de ser uma extenso da lgica booleana, segundo
Pedrycz (2007), pois admite valores lgicos intermedirios entre o FALSO (0) e o
VERDADEIRO (1). Por exemplo, utilizar o valor intermedirio 0,5. Isto significa que
um valor lgico difuso um valor qualquer no intervalo de valores entre 0 e 1.
Nos jogos eletrnicos o papel desta tcnica normalmente limitado a complexos
comandos condicionais. utilizada na seleo de comportamentos e tomada de deciso.
Esta tcnica pode permitir, por exemplo, o clculo de um nvel de medo de um
personagem com relao a um jogador.
2.1.4 - Floking
Crocomo (2006), destaca que a tcnica de floking implementa ao programa a opo de
simular o comportamento natural de um grupo de indivduos, tais como, o movimento
de um cardume de peixes ou at mesmo o voo de um bando de pssaros. uma tcnica
bastante utilizada para simular ambientes com alto grau de realismo, explorados pelo
jogador.
Desenvolvida como uma alternativa a gerar scripts para um nmero grande de
indivduos, na tcnica de flocking cada personagem navega de acordo com sua



percepo e as leis da fsica que governam o ambiente. Nesta tcnica as informaes
no so mantidas de uma etapa para outra, ou seja, no existem estados, de forma a
visar economia de memria. A cada novo ciclo o personagem possui uma nova
percepo do ambiente, atravs do qual realiza uma ao.
Muito utilizada em jogos de primeira pessoa, como Half-life e Unreal, para gerar
comportamentos dos grupos de personagens, e em jogos de estratgia em tempo real,
como Enemy Nations, para gerar movimentao realista dos exrcitos. Embora esta
tcnica tenha aplicaes bem limitadas, muito simples e eficiente para gerar
movimentaes realistas de grupos de indivduos.
2.1.5 - rvores de Deciso
Segundo Sweetser (2002) a tcnica de aprendizado atravs de rvores de deciso
inserida em jogos onde so necessrios predio e classificao. Quando utilizada para
prever uma sequncia de aes traz um bom resultado.
O uso desta tcnica permite um personagem aprender com o jogador ou com
outros personagens no desenrolar do jogo. As experincias armazenadas no decorrer do
jogo com o personagem so organizadas no formato de uma rvore, a partir da entropia,
que uma medida de desordem dos dados armazenados. Com uma estrutura fcil de
serem compreendidas, as rvores de deciso so robustas a rudos e possuem um
aprendizado eficiente.
2.1.6 - Redes Neurais Artificiais
As Redes Neurais Artificiais (RNA), segundo Haykin (2001), so inspiradas em
sistemas biolgicos e possuem uma grande quantidade de aplicaes que utilizam
tomadas de decises, processamento de informaes e otimizao.
Esta tcnica mais utilizada no aprendizado off-line de jogos, treinando os
parmetros de controle dos personagens durante a etapa de desenvolvimento do jogo.
Em jogos on-line ainda no tem grande utilizao por parte dos desenvolvedores, pois o
uso desta tcnica pode gerar comportamentos no aceitveis para seus personagens.
Por possuir diversas arquiteturas diferentes para resolver problemas diferentes,
no uma tcnica simples de ser implementada, pois necessita de muitos ajustes em
seus parmetros.
Nos jogos que utilizam redes neurais, o objetivo que o computador aprenda a
imitar o comportamento do jogador.
2.1.7 - Algoritmos Evolutivos
Os Algoritmos Evolutivos (AEs), segundo Sweetser (2002), tem por objetivo adaptar as
estratgias utilizadas pelo computador em relao s estratgias utilizadas pelo usurio,
ou seja, fazer com que o jogo apresente um grau de adaptabilidade em relao s aes
dos jogadores e s variaes do ambiente de jogo.
Apesar de existir diversas aplicaes para Algoritmos evolutivos, existe uma
grande resistncia de serem utilizadas pelos desenvolvedores de jogos, pois alguns
autores afirmam que est tcnica lenta e (assim como a tcnica de Redes Neurais)
permite a obteno de comportamentos no aceitveis durante o processo de
aprendizado dos personagens. No entanto, reconhecido que AEs possuem o potencial
para atuar em reas nas quais tcnicas tradicionais de IA apresentam deficincia.



Yao (2000) frisa que essa tcnica vem sendo utilizada desde os anos 80 para
evoluir estratgias de jogos como para o jogo Iterated Prisoners Dilemma de grande
importncia para economistas, cientistas sociais e cientistas da computao.
3. Exemplos de jogos digitais que utilizam tcnicas IA
Sweetser (2002), cita tcnicas de IA utilizadas em jogos:

Tabela 1. Tcnicas utilizadas nos jogos eletrnicos.

TCNICA JOGOS

Mquina de Estado Finito
- Age of Empires
- Half Life
- Doom
- Quake
Scripting - Black &White
- Unreal
- Dark Reign
- baldurs Gate

Lgica Nebulosa ou Lgica Fuzzy
- Swat 2
- Call to Power
- Close Combat
- The Sims
rvores de Deciso - Black & White

Flocking
- Half Life
- Unreal
- Enemy Nations

Redes Neurais
- BC3K
- Creatures
- Heavy Gear
Algoritmos Evolutivos - Creatures
- Returm to Fire II



4. Vantagens, Desvantagens e aplicao das Tcnicas de IA em Jogos
Digitais
Correa e Pastor (2012) destaca que as tcnicas para jogos em geral fazem parte de uma
vertente que defende o papel da IA como o de simular um comportamento prximo do
humano, no como em outros ambientes com objetivos, por exemplo, de otimizao
buscam atingir nveis de deciso e velocidade de raciocnio muito acima de um ser
humano comum. A inteligncia articial em jogos tem por princpio maximizar a
diverso emulando um jogador inteligente na medida certa, demonstrando fraquezas
propositais.
Para que cada tcnica seja aplicada importante, inicialmente, conhecer a
aplicabilidade destinada tcnica, juntamente a suas vantagens e desvantagens, segundo
Crocomo (2006) as tcnicas possuem as seguintes aplicabilidades, seguidas de
vantagens e desvantagens:

Tabela 2. Vantagens, desvantagens e aplicao das tcnicas.


Vantagens

Desvantagens

Aplicaes
Mquinas de Estado
Finito
simples, pode ser
utilizada em conjunto
com outras tcnicas,
computacionalmente
barata e com grande
capacidade de
codificao.
Tem uma escalabilidade
ruim, pode ser
fracamente estruturada,
determinstica e tem a
necessidade de
antecipar todas as
situaes.
As mquinas de estado
finito so destinadas
basicamente ao
gerenciamento do
universo do jogo,
objetos e/ou
personagens.
Scripting

simples, no
necessariamente tem
uso apenas por
programadores e tem
um ambiente seguro de
implementao.
determinstica e por
isto, tem a necessidade
de antecipar todas as
situaes.

Scripting pode
facilmente gerenciar
eventos e automatizar
tarefas alm de poder
analisar a IA do
oponente e construir
rvores de conversa.
Lgica Nebulosa

Resolve problemas no
lineares, tem muita
flexibilidade, quando o
conhecimento do
especialista se torna
necessrio e apresenta
uma alternativa para
quando no h uma
soluo simples.

um pouco complicada
de se construir e no
uma alternativa boa
quando se existe uma
soluo simples.
A lgica nebulosa tem
como aplicao a
tomada de deciso,
filtro para entrada/sada
de dados e seleo de
comportamentos, alm
de, algumas vezes,
controlar a situao
emocional dos
personagens juntamente
com sua sade.
Flocking

realista e puramente
reativa, alm de
requerer pouca
memria.
Flocking tem suas
aplicaes limitadas.
Flocking
recomendado para o
controle de movimento
de unidades e de grupos
de animais/monstros



rvores de Deciso

robusta a rudos com
uma estrutura fcil de
compreender e com um
algoritmo de
treinamento/avaliao
eficiente
necessrio ajuste de
parmetros
rvores de deciso
podem ser utilizadas na
classificao, no
aprendizado e na
predio.

Redes Neurais

flexvel, no
determinstica e no
linear.
necessrio o ajuste de
parmetros, se trata de
uma tcnica complicada
no qual exige muitos
recursos do computador
e possui ainda uma
difcil escolha de
variveis.
As Redes Neurais tem
como aplicao o
reconhecimento de
padres e o controle de
comportamento,
juntamente com a
predio, classificao
e memria.
Algoritmos Evolutivos

Tens um mtodo de
busca robusto e efetivo
em espaos de busca
grandes, complexos e
pouco compreendidos,
no linear e no
determinstico.

Exige o uso intensivo
de recursos do
computador e tem a
necessidade de ajuste
de parmetros.
Os algoritmos
evolutivos so
utilizados em
otimizao e
aprendizado, no
desenvolvimento de
estratgias para jogos,
na evoluo de
comportamento e
encontrar caminhos a
serem percorridos.
5. Concluses
Com este estudo foi possvel conhecer e entender melhor a utilizao das tcnicas de
Inteligncia Artificial em jogos eletrnicos. Foi possvel compreender que apesar de
ainda no serem utilizadas em todos os tipos de jogos, num futuro prximo, a tendncia
que ser ampliada a utilizao de IA em jogos eletrnicos. Todas as tcnicas estudadas
tm muito a contribuir e tornar cada vez mais reais as aes tomadas pelos personagens
dos games, o que atrai cada vez mais pessoas a se entreter e se beneficiar com essas
aplicaes.
6. Referncias
BITTENCOURT, J.R.(2006) Motores de Jogos para Criao de Jogos Digitais, In:
Vescola Regional de Informtica de Minas Gerais, Belo Horizonte.
CROCOMO, M. K. (2006) Desenvolvimento de um Ecossistema Artificial Utilizando
Algoritmos Evolutivos como Ambiente de Teste para Sistemas Multi-Rob.
FAIRCLOUGH, C.(2001) Research Directions for AI in Computer Games, In: AICS.
CORREA, D. B., PASTOR, D. T. (2012) A evoluo das tcnicas de Inteligncia
Artificial, In: Proceeding of SBGames.
ZADEH, L. A. (1976) A Fuzzy-Algorithmic Approach to the Definition of Complex or
Imprecise Concepts.



PEDRYCZ, W.(2007) Fuzzy Systems Engineering : Toward Human-Centric
Computing, In: Wiley/IEEE Press.
SWEETSER, P. (2002) Current Al in Games: A review, In: University of
Queensland.
HAYKIN, S. (2001)Redes Neurais: Princpios e Prtica. In: Bookman.
YAO, X. (2000) Genetic Algorithms and Evolutionary Games. In: Cambridge
University Press.