Вы находитесь на странице: 1из 22

i11111111 1111i1 11 11111

1li11111 11i1111 1111i1 11 1111


1LLMMMLLW @L 1M11 lMhL1 M M WL M&U 11 WL &U
1l1 1111
11l1 11 1i111l1]11
11 1l 1i1111i11 11111111
1L1WM 1M1Lh
LL1M 1MMhM
lM1LM MWLh
11M1LhhM1 1MW1L 1MMLM
2
M11Lh _MMMM WL &MM&
3
l1111
1i111]11.......................................................................................................................4
1_LMh ...............................................................................................................................5
& 1h1LM................................................................................................................................5
VLMLh 1MMLML Wh .......................................................................................10
. l@MMh WL 1hWMh 1MMh .....................................................................................10
.& 11 1LMhL ...............................................................................................................11
. VLMLh WL 1MhL .......................................................................................................12
.H l@MMh WL 1@1LMWWM.........................................................................................15
. 111L 11L...............................................................................................................18
.M M11L 1LLM@LMLM 1h [11h .......................................................................19
MMLMhM...............................................................................................................................21
1M11............................................................................................................................22
4
1i111]11
5
1_LMh
Os jogos, hoje em dia, utilizam tcnicas de IA na tentativa de embutir uma inteligncia
no caracterstica deles, mas desenvolvida ou simulada por tais tcnicas. Os jogos mais
comuns onde podemos perceber a aplicao dessas tcnicas so jogos clssicos, como o jogo
de Damas, Xadrez e Jogo da Velha.
A utilizao de tcnicas de IA faz com que o jogo se torne mais real e por
conseqncia, mais envolvente e desafiador para o jogador. A aplicao de IA constitui um
fato imprescindvel para um bom um jogo atualmente.
& 1h1LM
Os jogos computadorizados surgiram na dcada de 60, em verses para mainframes.
Devemos considerar que os primeiros jogos foram experimentos para verificao de
tcnicas para soluo de problemas, principalmente no que diz respeito a jogos clssicos,
como xadrez, Go, damas, entre outros. Porm, importante frisar que, durante o surgimento
dos jogos computadorizados interativos, a principal preocupao dos desenvolvedores era
com o visual, de certa forma descartando a utilizao de tcnicas de IA. Para simular um
comportamento inteligente por parte dos elementos do jogo, muitos desenvolvedores
freqentemente utilizavam-se de artifcios de programao que fizessem com que o jogo
enganasse o jogador, fazendo com que personagens inimigos tivessem acesso a dados como
a posio do jogador em um mapa, por exemplo.
Um dos primeiros jogos de computador foi Core Wars
(http://www.ecst.csuchico.edu/~pizza/koth), para ambientes UNIX, onde dois ou mais
programas de computador jogavam entre si, cada um tendo como objetivo impedir a
execuo do(s) outro(s) programa(s). Em 1961, Steve Russel desenvolve Space War
(http://www.wheels.org/spacewar/creative/SpacewarOrigin.html) um dos primeiros jogos
interativos criados com uma aparncia grfica (os grficos deste jogo eram representados por
caracteres ASCII). Neste jogo, dois jogadores se confrontavam com pequenas naves espaciais.
A partir dos anos 70, j havia um bom nmero de jogos em modo texto, tambm conhecidos
como Multi User Dungeons. (MUDs) sendo executados, tambm, em maiframes.
interessante notar que, j nesta poca, os MUDs eram jogados em rede. Cada jogador
assumia o papel de um personagem do jogo e comeava a desenvolv-lo.
6
O primeiro jogo a ter grande sucesso comercial foi Pong, criado em 1972 por Nolan
Bushnell, fundador da Atari, uma das mais conhecidas companhias especializadas em projetar
e construir jogos computadorizados. Com o sucesso de Pong, vrios outros jogos foram
criados, cada um com uma srie de inovaes. Como exemplo de jogos que marcaram poca,
podemos citar:
Breakout: o objetivo deste jogo destruir blocos situados no topo da
tela utilizando uma bolinha. Quanto mais blocos destrudos, maior a pontuao
do jogador (http://www.io.com/~vga2000/manuals/a2600/a26m0029.txt);
Space Invaders: Em Space Invaders, o jogador deve destruir hordas de
aliengenas que surgem do topo da tela
(http://www.io.com/~vga2000/manuals/a2600b/a26m0190.txt);
Asteroids: O jogador deve destruir asterides. Quanto mais asterides
forem destrudos, maior a quantidade de pontos recebidos
(http://www.io.com/~vga2000/manuals/a7800/a78m0003.txt);
Pac-Man: o jogador deve coletar pequenos pontos dentro de um
labirinto, enquanto perseguido por fantasmas. Quanto mais pontos forem
coletados, maior a pontuao final do jogador.
Os anos 80 foram marcados pela grande diversidade de jogos oferecidos. O destaque foi
o jogo Donkey Kong (http://www.io.com/~vga2000/manuals/a2600/a26m0063.txt), que deu
origem ao personagem Mrio, que esteve presente no jogo Mrio Brothers
(http://www.smbhq.com/marframe.htm), criado pela Nintendo em 1984. Neste jogo, o jogador
comanda um personagem que deve salvar uma princesa de um rei enlouquecido. O sucesso de
mercado atingido por Mrio Brothers foi suficiente para tornar o personagem, criado por
Shigeru Miyamato, o principal mascote da Nintendo.
Com o surgimento dos primeiros computadores de 16 bits, como o IBM Personal
Computer (PC), Atari ST e AMIGA 500, os jogos computadorizados tiveram uma melhoria
significativa, no que se refere interface e interao. Alguns jogos de simulao em 3
dimenses (3D) comearam a surgir, como:
Flight Simulator (http://www.crosswinds.net/~andysflightsim ): um
simulador de vo que hoje, aps muitas verses, utilizado para treinamento de
pilotos;
7
Wing Commander (http://www.wingcommander.com ): lanado pela
primeira vez em 1990, este jogo basicamente se trata de uma batalha espacial entre
humanos a aliengenas.
A grande revoluo no jogos computadorizados na plataforma IBM PC surgiu em 1993,
quando uma empresa chamada ID Software criou Doom (http://www.doomworld.com ), uma
seqncia do jogo :Wolfenstein 3D, tambm da mesma empresa. Em Doom, o jogador
controlava um personagem que tinha como objetivo destruir os mais variados tipos de
monstros. O grande diferencial do jogo foi a inovao tecnolgica associada ao ambiente
sombrio de Doom, onde o jogador visualizava o ambiente pela perspectiva do personagem.
Esta tecnologia chamada de First Personal Perspective (Perspectiva em Primeira Pessoa).
Doom foi um grande passo em termos de evoluo tecnolgica, tanto no mbito grfico,
quanto na rea de IA.
Aps o lanamento de Doom, muitos outros jogos inspirados nele surgiram.
Alguns com um certo sucesso de mercado, como:
Heretic (http://www.planetheretic.com): Heretic um jogo ambientado
na idade mdia, onde o jogador deve destruir minotauros e outros monstros
mitolgicos;
Hexen (http://www.planethexen.com): este jogo a seqncia de
Heretic, onde o jogador pode escolher entre mais de um personagem para jogar.
Jogos computadorizados em 3D marcaram esta poca, em especial Duke Nuke em 3D,
(http://www.dukeworld.com/), um jogo no mesmo estilo de Doom, onde o personagem
principal deve proteger a Terra de uma invaso aliengena. O interessante neste jogo, no que
tange a aplicao de tcnicas de IA em jogos computadorizados, que o jogador, atravs de
uma ferramenta que acompanha o jogo, pode modificar o nvel de IA dos personagens
inimigos, tecnologia esta chamada de Extensible AI (IA extensvel) que, a partir de ento, foi
implementada em vrios jogos. Esta tecnologia ser descrita de forma mais detalhada na
prxima seo.
Quando a ID Software lanou, em 1996, Quake (http://www.quakeworld.com), o
primeiro jogo em 3D real para PCs, at ento se utilizavam tcnicas onde o ambiente 3D era
simulado, isto , se criava a iluso de elementos tridimensionais, sem efetivamente s-los.
Porm, apesar de implementar a tecnologia de IA extensvel, permitindo inclusive que os
jogadores criassem seus prprios personagens, a aplicao de tcnicas de IA nos elementos do
jogo no evoluiu da mesma forma que a computao grfica. A inovao, no que tange a
utilizao de tcnicas de IA, veio com ReaperBot
8
(http://www.geocities.com/~macweb/reapermadness), um oponente especialmente criado para
ser utilizado em Quake utilizando-se da capacidade de IA Extensvel implementada neste
jogo. Este oponente, criado por Steve Polge (que mais tarde seria o desenvolvedor do sistema
de IA do jogo Unreal), exibia um comportamento bem mais realstico do que o restante dos
elementos do jogo, procurando o jogador por toda a fase, ou se escondendo ou buscando
energia para sobreviver quando necessrio.
Unreal (http://unreal.epicgames.com/), um jogo do mesmo estilo de Quake, lanado em
1998 pela empresa (Epic Megagames), mostrou um avano significativo no s nas aplicaes
de tcnicas de computao grfica, mas tambm no que se refere ao uso de tcnicas de IA
aplicada a jogos computadorizados. Foram utilizadas tecnologias de IA baseada em regras,
como as Finite State Machines (FSM) e Fuzzy State Machines (FuSM), alm da
implementao da tecnologia de Extensible AI, permitindo enorme flexibilidade, fazendo com
que os personagens inimigos demonstrassem mais esperteza e agilidade, freqentemente
desviando dos ataques do jogador, chamando reforos, ou fugindo quando necessrio. Em
Unreal o jogador entra em um mundo que mistura aliengenas hostis e seres msticos. O
objetivo do jogo salvar o planeta e sua civilizao dos ataques aliengenas. Unreal um jogo
importante, no que tange o histrico da evoluo das tecnologias utilizadas em jogos
computadorizados, pois ele mostra que o real impacto de um futuro jogo de sucesso no ser
somente o seu potencial grfico, mas tambm o nvel de tcnicas de IA que ele utilizar.
Hoje os jogos computadorizados so criados como grandes produes de cinema, com
oramentos que facilmente chegam a milhes de dlares. Para criar e desenvolver um jogo de
sucesso no mercado atual, leva-se, em mdia, trs anos. Neste tipo de projeto, a equipe
composta por:
Programadores: encarregados de dinamizar o jogo. Geralmente
oriundos da Informtica ou Cincia da Computao, os programadores
implementam tcnicas de computao grfica, IA e aplicam conceitos de Fsica
para implementar o jogo;
Artistas Grficos: so os responsveis pelo layout do jogo, criando os
objetos, personagens, texturas, etc;
Projetistas de Nveis/Fases: oriundos das mais variadas reas, os
projetistas de nveis so aqueles que criam as fases dos jogos e esto associados a
sua modelagem;
9
Projetistas de jogos: mais conhecidos por game designers, os projetistas
so considerados os administradores dos projetos, por terem envolvimento em
quase todas as reas da produo de jogos computadorizados. So eles os
responsveis pela criao das idias para a concepo do jogo e pela elaborao do
Design Document, um documento detalhado contendo as caractersticas e
especificaes do jogo;
Planejador de Software (Software Planner): a tarefa do Software
Planner dividir o design do jogo (elaborado pelo game designer) em um conjunto
de requisitos tcnicos e estimar o tempo e esforo necessrio para implementar tais
caractersticas.
Arquiteto-Chefe (Lead Architect): a tarefa do Lead Architect trabalhar
em conjunto com o Software Planner para produzir um conjunto de especificaes
de mdulos, baseados nos requisitos tcnicos identificados pelo Software Planner.
O Lead Architect o responsvel pela arquitetura geral do projeto.
Gerente de Projeto (Project Manager): a tarefa do Project Manager
balancear a carga de trabalho gerada pelo Software Planner e pelo Lead Architect
produzindo um planejamento eficiente e organizado.
Msicos e sonoplastas: geralmente vindos de reas relacionadas arte e
msica, so os responsveis por compor trilhas sonoras, vozes e efeitos especiais
para os jogos;
Testadores: geralmente surgindo nas fases finais do projeto, os
testadores, como o prprio nome j diz, so incumbidos de testar o jogo,
procurando por falhas e possveis erros (Bugs).
Alm de especialistas nas reas citadas acima, h tambm envolvimento de
profissionais de marketing, relaes pblicas, entre outros.
Os jogos computadorizados mais atuais possuem grficos 3D avanados, sendo jogados
em rede, cooperativamente ou competitivamente, com um nvel razovel de IA aplicada sobre
os elementos do jogo. Podemos citar como exemplos de jogos de ltima gerao, que
possuem estas caractersticas:
Diablo 2 (http://www.blizzard.com/diablo2): uma produo da Bilzzard
entertainment onde o jogador pode assumir o papel de cavaleiros, brbaros,
amazonas e magos, com o objetivo de destruir um demnio. O interessante neste
jogo est na gerao dinmica dos elementos, feita de forma randmica, fazendo
10
com que cada vez que o jogador entre no jogo, as fases, itens e inclusive alguns
inimigos, sejam diferentes;
Quake III: Arena (http://www.q3arena.com): produzido pela, ID
Software, Quake III: Arena um jogo com perspectiva em primeira pessoa (assim
como Quake) onde o jogador, em diferentes arenas, enfrenta robs (tambm
chamados de bots) com um nvel aperfeioado de IA, se comparado a jogos
anteriores. O jogador vencedor na arena se derrotar todos os robs um
determinado nmero de vezes. Este estilo de jogo, mais conhecido como
deathmach, surgiu com Doom, mas se tornou popular entre jogadores de Quake na
Internet.
Unreal Tournament (http://unreal.epicgames.com): criado pela (Epic
Megagames, o concorrente de Quake III: Arena com a mesma proposta de
estilo de jogo. Ambos so muito populares entre jogadores via ,Internet e redes
locais.
A evoluo dos jogos computadorizados est fortemente ligada aos avanos das
tecnologias associadas aos sistemas computacionais. Cada avano no hardware repercute em
novas possibilidades para o software. A busca de um maior realismo e interatividade tm
levado os projetistas a ampliarem a pesquisa tanto em nvel de computao grfica como IA.
A seguir faremos uma anlise das tcnicas de IA utilizadas nos jogos comerciais e alguns
experimentos ligados a grupos de pesquisa em universidades.
VLMLh 1MMLML Wh
Do conjunto de tcnicas de IA disponveis, no momento algumas esto sendo utilizadas
com uma certa freqncia na construo de jogos computadorizados. O conjunto destas
tcnicas que compem o estado-da-arte, no que tange o uso de tecnologias de IA aplicado a
jogos, descrito a seguir.
. l@MMh WL 1hWMh 1MMh
Enfoques baseados em regras, como as FSMs e as FuSMs, so as tecnologias de IA
mais utilizadas atualmente pelos desenvolvedores de jogos computadorizados. De acordo com
eles, o uso em larga escala destas tecnologias est associado ao fato de que sua
11
implementao relativamente simples, alm de serem tcnicas j consolidadas no mercado
de jogos computadorizados.
Uma FSM composta por um conjunto de estados (incluindo um estado inicial), um
conjunto de entradas, um conjunto de sadas e uma funo de transio de estado. A funo de
transio recebe as entradas e o estado atual e retorna um nico novo estado e um conjunto de
sadas. As mquinas de estados finitos so normalmente representadas por diagramas de
transio de estados.
Para a realizao de modelagens mais complexas, as FSMs podem ser hierarquizadas,
de forma que cada nodo de uma hierarquia possa expandir uma nova hierarquia, e assim
sucessivamente, at o ltimo nvel, expandindo uma FSM. Esta tcnica chamada de
1LLLLL 1L CLL 1LLL (HFSM), e fornece uma forma conveniente para uma
modelagem modular de FSMs.
As FuSMs so baseadas em cadeias de Markov. Pesos (probabilidades) so associados
aos estados e s transies de estado, e regras so estabelecidas para calcular pesos de estados
futuros. Um jogo que utiliza FuSMs !L 11L (http://www.calltopower.com), um jogo
de estratgia onde o jogador controla civilizaes, sendo que o perfil e os traos
caractersticos de cada civilizao foi modelado com a utilizao de FUSMs.
A utilizao de mquinas de estados finitos permite criar elementos com
comportamentos relativamente complexos, como mostrado no jogo LL, descrito na seo
anterior, onde os inimigos tomavam uma srie de decises baseadas nas aes do jogador,
alm de elementos adicionais do jogo, como pssaros, coelhos e outros animais exibindo
algoritmos de aglomerao e formao (flocking algorithms), tambm controlados por FSMs;
.& 11 1LMhL
Vrios jogos lanados nos ltimos anos implementaram a tcnica de IA Extensvel,
mantendo uma tendncia que surgiu com 1L 1L LH O1 L _LL. Atravs de linguagens
de L[, o jogador pode criar seus prprios oponentes e/ou modificar o nvel de IA dos
personagens inimigos. A forma como a IA Extensvel apresentada ao usurio varia de
L[ semelhantes a linguagens como C e C++ at conjuntos de ordens que podem ser
passadas ao elemento do jogo.
A maioria do jogos que utilizaram a tcnica de IA Extensvel so do gnero de
Perspectiva em Primeira Pessoa, como por exemplo LL e 1L] 1]L mas existem alguns
jogos de outros gneros que esto utilizando esta tecnologia, como o caso de 1LM !LL
12
(http://www.interplay.com/product.asp?GameID=299), um 1L 1L)@ !LHL (RPG) criado
pela ,1L[L) onde as classes de personagens do jogo so controlados por L[. Estes
L[ podem ser definidos pelo jogador, permitindo que este especifique as reaes bsicas
dos personagens do jogo em vrias situaes de combate. Desta forma, os jogadores podem
adaptar o jogo de forma particular, ou ento criar novas classes de personagens.
Como forma de exemplo da tcnica de IA Extensvel, a listagem abaixo mostra um
trecho de um L[ criado para ser utilizado no jogo 1LM !LL. O trecho faz parte de um
L[ que cria um novo personagem para ser utilizado no jogo:
IF
// If my nearest enemy is not within 3
!Range(NearestEnemyOf(Myself),3)
// and is within 8
Range(NearestEnemyOf(Myself),8)
THEN
// 1/3 of the time
RESPONSE #40
// Equip my best melee weapon
EquipMostDamagingMelee()
// and attack my nearest enemy, checking every 60
// ticks to make sure he is still the nearest
AttackReevalutate(NearestEnemyOf (Myself),60)
// 2/3 of the time
RESPONSE #80
// Equip a ranged weapon
EquipRanged()
// and attack my nearest enemy, checking every 30
// ticks to make sure he is still the nearest
Pode-se visualizar que o L[ se baseia em chamadas de funes definidas do sistema
interno de IA do jogo. importante notar que a tcnica de IA Extensvel permite que sejam
feitas vrias modificaes no nvel de IA dos personagens, mas ela no permite que o jogador
possa modificar o sistema interno de IA do jogo.
. VLMLh WL 1MhL
13
Dos algoritmos de busca disponveis, o A-star (A*) o mais utilizado em jogos
computadorizados, sendo que os desenvolvedores de jogos fizeram suas prprias verses
deste algoritmo, adaptando-o a cada projeto. O A* um algoritmo que utiliza uma funo
heurstica que determina a qualidade de cada um dos estados possveis (nodos), atravs de
uma estimativa do custo da melhor rota at o destino, passando pelo nodo atual. O custo
determina a qualidade de um nodo, sendo que quanto menor o custo, melhor a sua qualidade.
A funo heurstica possui o seguinte formato:
]]/ @]/ ]/
Onde:
f(n): valor da funo associado a um nodo _;
g(n): funo que calcula o custo da rota do nodo de origem at _;
h(n): funo que prev o custo da rota de _ at a soluo.
O desempenho do A* depende da funo heurstica selecionada. Uma funo heurstica
ruim pode reduzir drasticamente a velocidade do algoritmo, ou fazer com que este produza
rotas incorretas. Para que o A* calcule sempre as melhores rotas, a funo heurstica deve ser
admissvel, ou seja, deve fazer estimativas menores do que o custo real do caminho.
O A*, pelo seu funcionamento, considerado um algoritmo completo e timo, ou seja,
dada uma funo heurstica admissvel, se o problema tiver uma soluo, esta vai ser
encontrada, e a soluo encontrada ser sempre a de menor custo. A listagem em
pseudocdigo abaixo mostra o funcionamento do A*:
bool AStarSearch()
{
priorityqueue OPEN
list CLOSED
NODE node
node.application_stuff=(start conditions of application
specific stuff)
node.cost = 0;
node.heuristic = GetNodeHeuristic( node )
node.f = node.cost + node.heuristic
node.parent = null
push node on OPEN
// esse o corpo da busca
while OPEN is not empty {
node = Pop the best node from OPEN
14
// exemplo: remove o nodo da open list
if node is a goal node {
construct path (by following the parent pointers)
return success
}
// seno necessrio encontrar quais nodos podem ser
gerados a partir deste
NodePushSuccessors( OPEN, CLOSED, node ); // ver codigo da
funo abaixo
push node onto CLOSED list //como este nodo j foi examinado
}
// aqui a open list foi esvaziada e no foram encontrados
GOAL states. A busca falhou
return FALSE
}
// Cria os sucessores para o dado nodo e os adiciona para a open
list ou closed list
void NodePushSuccessors( priorityqueue OPEN, list CLOSED,
parent_node ){
// Aqui so aplicadas regras vlidas para o nodo sendo
analisado. No caso de um pathfinder, por exemplo, uma regra seria a
direo do movimento
for each rule we can apply create the successor new_node {
new_node.cost = (application specific cost of this node) +
parent_node.cost
new_node.heuristic = GetNodeHeuristic( new_node )
new_node.f = new_node.cost + new_node.heuristic
if the new_node is on CLOSED but the node on CLOSED has a
lower 'f' {
continue;
}
if the new_node is on OPEN but the node on OPEN has a lower
'f' {
continue;
}
remove new_node from the OPEN list if it is on it
remove new_node from the CLOSED list if it is on it
new_node.parent = parent_node
push new_node on to the OPEN list
}
15
}
Considerando busca em jogos computadorizados, o A* principalmente utilizado na
aplicao de tcnicas de [L]M@, que consiste na computao e execuo de um caminho
partindo de um ponto de origem, dado pela posio do prprio elemento, para um destino
qualquer.
De modo geral, os desenvolvedores de jogos j possuem um certo domnio sobre as
tcnicas de busca, direcionando seu foco para implementaes em casos especficos, como
[L]M@ associado com anlise de terreno (LL LL)), situao encontrada
freqentemente em jogos de estratgia, como por exemplo .@L ] 1H[L 11. JL .@L ]
1@ (http://www.ensemblestudios.com/aoeii/index.shtml), um jogo onde o jogador deve
desenvolver civilizaes antigas. A anlise de terreno identifica pontos em mapas que podem
dificultar o movimento dos elementos de um ponto para outro, como por exemplo pontes ou
travessias entre montanhas. Uma boa anlise de terreno pode produzir informaes
importantes para o sistema de [L]M@ do jogo para resolver problemas complexos de
busca. A anlise de terreno fornece informaes adicionais sobre o terreno para auxiliar na
resoluo de problemas de pathfinding mais complexos.
.H l@MMh WL 1@1LMWWM
As tcnicas de Mquinas de Aprendizado (Machine Learning) esto comeando a ter
mais espao em jogos computadorizados, e vrios enfoques esto sendo analisados pelos
desenvolvedores. Um jogo que implementou uma tcnica de aprendizado interessante foi
1L@L C 1L)LH (http://www.mythosgames.com/magicandmayhem.htm) criado pela 1)
!LHL, onde o jogador comanda um mago que deve destruir monstros, feiticeiros e escapar
de armadilhas. O jogo periodicamente grava informaes sobre as disputas com o jogador em
um arquivo de dados. Antes de iniciar uma nova batalha, o subsistema de IA do jogo compara
a tcnica de ataque a ser utilizada com esta base de dados, para determinar o grau de
efetividade deste tipo de ataque. Desta forma, o jogo se adapta ao tipo de jogador.
Outros enfoques de 1LLL 1LL@, com maior embasamento cientfico, esto sendo
explorados.
Redes Neurais
16
As redes neurais empregam uma interligao macia de clulas computacionais simples
denominadas neurnios ou unidades de processamento. As ligaes entre os neurnios,
tambm chamadas de sinapses, possuem um valor associado, chamado de peso sinptico, que
utilizado para armazenar o conhecimento adquirido.
O algoritmo de aprendizagem de uma rede neural tem como funo modificar os pesos
sinpticos, desta forma aperfeioando a rede neural. O processo de aprendizagem de uma rede
neural dito ser supervisionado se a sada desejada j conhecida; j quando no h
exemplos rotulados da funo a ser aprendida pela rede, o processo de aprendizagem dito
no-supervisionado.
Um dos primeiros jogos computadorizados a utilizar redes neurais foi 1LL!L.
O .1 (http://www.bc3000ad.com), um simulador espacial, onde os elementos do jogo
eram controlados por uma rede neural. Um ponto interessante neste jogo que foi
desenvolvida uma linguagem, denominada .]LL 1L@LLL LM 1@L (AILOG), para
com ela implementar o sistema de IA do jogo. A AILOG utiliza uma rede neural para, no
jogo, efetuar tomadas de deciso e busca de melhores rotas. Em relao a aprendizagem da
rede neural, foram utilizadas variaes do algoritmo de 1LL[[L@L e algoritmos no-
supervisionados. Existem L[ com redes neurais supervisionadas pr-treinadas
programados para serem executados em momentos especficos do jogo, como por exemplo no
incio de guerras, ou no planejamento de invases. A AILOG tambm emprega alguns
conceitos de lgica difusa (]) @L) em momentos nos quais a utilizao de uma rede
neural no suficiente.
Algoritmos Genticos
Os algoritmos genticos so modelos computacionais inspirados pela evoluo humana,
tipicamente representando o conhecimento atravs de atributos binrios ou booleanos. Uma
implementao de um algoritmo gentico comea com um conjunto (populao) de atributos,
ou cromossomos. Estas estruturas so ento avaliadas e oportunidades de reproduo so
alocadas, de forma que os atributos que representarem uma melhor soluo para o problema
em questo possuiro mais chances de se reproduzirem do que os outros atributos, da o
conceito de evoluo, que est associado com o mtodo de aprendizagem utilizado nos
algoritmos genticos. A qualidade de uma soluo tipicamente definida de acordo com o
conjunto atual de atributos. O funcionamento de um algoritmo gentico pode ser descrito da
seguinte forma:
17
1. Gera uma populao randmica de _ cromossomos (solues
aceitveis para o problema em questo);
2. Avalia a ]L (qualidade, ou grau de ajuste) de
cada cromossomo na populao;
3. Cria uma nova populao, repetindo os seguintes passos at que a populao esteja completa:
4. Seleciona dois cromossomos de uma populao de acordo com a sua qualidade (quanto maior a
qualidade do cromossomo, maior a chance deste ser escolhido);
5. Com uma probabilidade de cruzamento, cruza os cromossomos para formar novos descendentes. Se o
cruzamento no for efetuado, os descendentes so uma cpia exata dos cromossomos originais;
6. Com uma probabilidade de mutao, executa a mutao em uma parcela dos novos indivduos;
7. Insere os novos indivduos em uma nova populao;
8. Usa a nova populao gerada para uma nova iterao do algoritmo;
9. Se a condio satisfeita, termina o algoritmo e retorna a melhor soluo baseada na populao atual;
10. Volta para o passo 2.
Um dos primeiros jogos comerciais a utilizar algoritmos genticos foi !L 1L@@L
LM 11.
(http://gamesdomain.co.uk/directd/pc/windows/puzzle/cddna.html), lanado em 1995
pela 1ML C)LH. A verso original deste jogo de estratgia vem com quatro seqncias
de DNA, que so conjuntos de regras que ditam o comportamento dos oponentes do jogador.
A medida que cada um desses conjuntos de regras participa das jogadas, o jogo armazena
dados que informam como foi a performance do conjunto de regras em questo em cada
disputa com o jogador. Entre as disputas, o jogador pode fazer que as diferentes seqncias
de DNA realizem competies entre si, permitindo a evoluo destes conjuntos de regras.
Existem, tambm, alguns projetos que exploraram combinaes entre algoritmos
genticos e redes neurais, como o caso de 1LL1
(http://www.botepidemic.com/neuralbot), um oponente especialmente criado para ser
utilizado no jogo _LL 11 ]http://www.quakeworld.com). Este oponente utiliza uma rede
neural para controlar suas aes e um algoritmo gentico para treinar sua rede neural. Isto
faz com que o oponente seja totalmente autnomo, sem nenhuma espcie de comportamento
pr-programado. Um outro exemplo desta combinao de tcnicas de HLLL LL@
!LLL (http://www.creaturelabs.com), um simulador de formas de vida em um ambiente
interativo, onde o jogador controla a evoluo de criaturas. O aspecto interessante deste jogo,
no que tange a utilizao de tcnicas de IA, utilizao de uma tecnologia denominada
!)L1]L, que basicamente consiste de uma combinao de redes neurais heterogneas e um
conjunto de algoritmos genticos que realizam um processo de seleo, fazendo com que as
criaturas evoluam. Isto faz com que a !)L1]L seja, efetivamente, uma rede neural com
18
auto-aprendizado, de forma que as criaturas aprendem o que elas devem fazer, do que elas
gostam e no gostam, ou at o que elas acham divertido.
. 111L 11L
Segundo os desenvolvedores de jogos computadorizados, as tcnicas de representao
de vida artificial (A-Life) fornecem formas flexveis para a criao de comportamentos
realsticos nos elementos do jogo. As tcnicas de .1]L tm suas origens no estudo dos
organismos vivos do mundo real. A .1]L busca simular o comportamento destes organismos
atravs de uma variedade de mtodos, tais como a implementao de regras, algoritmos
genticos, entre outros. Ao invs de tentar implementar uma grande variedade de
comportamentos complexos, a idia dividir estes comportamentos em partes menores,
simulando comportamentos mais simples.
Estas partes so ento interligadas por uma forma de hierarquia de tomada de deciso,
utilizada pelos elementos do jogo para determinar que aes devem ser tomadas para
satisfazer as necessidades destes elementos. Desta forma, combinaes e seqncias de
comportamentos mais simples geram comportamentos complexos de forma automtica, sem a
necessidade da implementao direta destes.
A simplicidade deste enfoque foi utilizada na implementao de JL CH
(http://www.thesims.com), criado pela 1L onde o jogador controla elementos que simulam
pessoas vivendo vidas normais, de forma que estas pessoas possam seguir diferentes
carreiras profissionais, fazer amigos ou at ter uma famlia, entre uma srie de outras
possibilidades. Creatures, citado no item anterior, um outro exemplo da aplicao de
tcnicas de .1]L.
As tcnicas de .1]L so utilizadas, na sua maioria, em simuladores, mas a tendncia
que seu uso se expanda para outros diferentes gneros de jogos, como j acontece com alguns
enfoques de .1]L como as tcnicas para coordenar agrupamentos e aglomeraes, mais
conhecidas como fL@ L@H. Utilizados para controlar o movimento de grupos de
elementos, os fL@ L@H j foram utilizados em vrios tipos de jogos
computadorizados, desde jogos do tipo ] [L [L[LL1L, como LL onde as tcnicas
de ]L@ eram utilizadas para controlar o movimento conjunto de cardumes de peixes ou
grupos de pssaros, at jogos de estratgia, como .@L ] 1H[L para controlar formaes de
soldados.
19
.M M11L 1LLM@MLM 1h [11h
Um enfoque que est sendo explorado atualmente a utilizao de Software
Development 1 (SDKs), ou simplesmente , especficos em uma ou mais tcnicas de
IA, que auxiliam na utilizao destas tcnicas, agilizando o processo de desenvolvimento da
aplicao. Alguns SDKs foram criados especificamente para serem utilizados em jogos,
enquanto outros tm um escopo de utilizao mais genrico. Como exemplos de SDKs
disponveis no mercado podemos citar:
11LL (http://www.motion-factory.com): este SDK permite a criao
de mquinas de estado para personagens animados, fazendo com que os
movimentos de personagens sejam dinamicamente computados, de acordo com as
mudanas no ambiente. Alguns jogos j utilizaram as tecnologias disponibilizadas
neste SDK, como por exemplo 1LL ] 1LL O1
(http://www.pop3d.com/main.html), um jogo de aventura onde o jogador deve
resgatar uma princesa;
C[L. (http://www.louderthanabomb.com): este SDK basicamente
um editor de lgica difusa (])@L), direcionado para desenvolvedores de
sistemas de IA para jogos computadorizados. Dos SDKs disponveis, o C[L. a
soluo de menor custo. O editor possui uma interface grfica para a criao e
modificao de sistemas de lgica difusa, sendo que estes sistemas podem ser
depurados sem a necessidade de recompilao da aplicao. Para a integrao com
a aplicao, o C[L. disponibiliza uma API escrita em C++. O ainda est
em verso preliminar;
1LL1. (http://www.animaths.com): criado pela Mathmatiques
Appliques, este SDK, baseado em tecnologia de agentes, pode criar elementos
com caractersticas humanas, incluindo estados fisiolgicos, psicolgicos e
emocionais. Estes estados internos motivam os agentes, alimentando-os com
desejos, necessidades e emoes. O SDK tambm permite a criao de agentes
com capacidade de aprendizado, criando elementos que podem se beneficiar de
suas experincias anteriores. Para a criao dos agentes, o SDK se baseia em
modelagem biolgica e cognitiva. Estes dois enfoques de modelagem definem o
estado atual do agente em tempo real. O sistema de comportamento do 1LL1.
pode ser comparado com uma mquina de estados infinitos pois, anlogo a
noo de estados discretos presentes em FSMs, a noo de estados
20
dinamicamente alterados geram o comportamento do agente de uma forma mais
prxima da realidade e no-determinstica. O SDK inclu alguns mdulos, como
por exemplo, mdulos para controle de agentes reativos, percepo e motivaes.
O desenvolvedor que utilizar o SDK pode desenvolver seus prprios mdulos,
desta forma personalizando o SDK. O 1LL1. tambm possui uma linguagem de
L[, semelhante a lngua inglesa, para o desenvolvedor construir seus prprios
modelos de IA, podendo atravs desta linguagem acessar vrios mtodos internos
do SDK. Esta linguagem se baseia em regras de produo de uma forma diferente
das regras de produo tradicionais de IA, no sentido de que as regras no definem
diretamente o comportamento do agente, mas definem a influncia de fatores
internos ou externos na evoluo do estado dinmico interno do agente. Estas
regras podem ser ativadas a cada instante de tempo, de forma a influenciar o
comportamento em qualquer momento.
As tcnicas de IA descritas acima mostram o que est sendo amplamente explorado e
utilizado, atualmente, em termos de IA aplicada a jogos computadorizados. Algumas destas
tcnicas podem ser utilizadas de forma combinada, gerando sistemas mais complexos.
21
MMLMhM
22
1M11
SEWALD, Leonardo. Aplicao de Tcnicas de IA em Jogos Computadorizados Interativos.
Porto Alegre: Pontifcia Universidade Catlica do Rio Grande do Sul, 2001. Disponvel na
WWW em: http://www.inf.pucrs.br/~sewald. 02/06/2003.
SEWALD, Leonardo. Tecnologia de Agentes aplicada a Jogos Computadorizados Interativos.
Porto Alegre: Pontifcia Universidade Catlica do Rio Grande do Sul, 2001. Disponvel na
WWW em: http://www.inf.pucrs.br/~sewald. 02/06/2003.
POZO, Aurora Trinidad Ramirez. Aprendizado de Mquina. Curitiba: Universidade Federal
do Paran. Disponvel na WWW em: http://www.inf.ufpr.br/~aurora. 01/06/2003.
Louder Than A Bomb. Sparky! Fuzzy Logic Editor. Disponvel na WWW em:
http://www.louderthanabomb.com/spark.htm. 04/06/2003.
Epic Megagames. Unreal Tournament AI and Gameplay for Level Designers. Disponvel na
WWW em: http://unreal.epicgames.com/UT_AI.htm. 04/06/2003.
Creatures Community. Disponvel na WWW em: http://www.creaturescommunity.com.
05/06/2003.

Вам также может понравиться