Vous êtes sur la page 1sur 4

Algoritmos Evolutivos no Desenvolvimento de Jogos Adaptativos

MARCIO KASSOUF CROCOMO


MAURO MIAZAKI
EDUARDO DO VALLE SIMES
Universidade de So Paulo Instituto de Cincias Matemticas e de Computao
mkc@grad.icmc.usp.br, {mauro,simoes}@icmc.usp.br
__________________________________________________________________________________________

Resumo
Este artigo apresenta uma implementao de vida artificial utilizando Algoritmos
Evolutivos para serem utilizados em jogos adaptativos. O objetivo proporcionar
novas experincias e desafios ao jogador a cada vez que ele joga, aumentando
assim a atratividade e jogabilidade. Assim, um ecossistema virtual e um Algoritmo
Evolutivo foram desenvolvidos. So apresentados as implementaes, os
experimentos com o ambiente e os resultados encontrados.
Palavras Chave: Inteligncia Artificial, Ecossistema Virtual, Algoritmos Evolutivos.
__________________________________________________________________________________________

1 Introduo
Estratgias adaptativas [1] no contexto de jogos
podem ser valiosas para entreter e cativar o
usurio, pois interessante que assim que o
jogador se adapte ao jogo, um novo desafio seja
elaborado. Para buscar uma soluo para este
problema, este artigo sugere a adoo de
tcnicas de Algoritmos Evolutivos [2] (AEs)
para gerar jogos que se adaptem ao usurio.
O objetivo deste trabalho aplicar AEs na
determinao automtica de parmetros de
controle para os personagens no controlados
(NPCs Non-Player Characteres) [3], em jogos
de estratgia [4] e em MMORPGs (Massive
Multiplayer Online Role- Playing Game) [5].
Assim, poder se proporcionar novas
experincias e desafios ao jogador a cada vez
que ele joga, aumentando a atratividade e
jogabilidade do software.
2 Desenvolvimento
Foi desenvolvido um ecossistema virtual
controlado por um AE utilizando a linguagem
C++. Nesse ambiente, os seres virtuais devem se
adaptar e sobreviver, tornando-se carnvoros,
herbvoros ou onvoros. O funcionamento dos
mesmos ser explicado nas subsees a seguir.

2.1 O Ambiente e os Indivduos


O ambiente (Figura 1) possui uma resoluo de
640x480 pixels. Nele, habitam 3 populaes de
10 indivduos cada, sendo que cada indivduo
possui resoluo de 32x32 pixels. As pequenas
rvores espalhadas pelo cenrio representam a
vegetao.

Figura 1: O Ambiente

2.2 Populaes
Cada membro que compe uma populao
apresenta os seguintes parmetros:
Fome: Este parmetro inicia em zero e, com o
passar do tempo, vai sendo incrementado. A
velocidade tambm influencia na fome. Quanto

mais rpida a velocidade, mais rpido o


incremento do parmetro fome. O alimento
tambm influencia de forma inversa, reduzindo
a fome. O indivduo morre quando fome = 1000.
Herbcarn: Varia no intervalo [0,6], indica se a
criatura carnvora (valor 0), herbvora (valor
6) ou onvora (valor intermedirio). Herbcarn
define o nvel de eficcia de cada tipo de
alimento (planta ou carne) em reduzir a fome, de
acordo com as equaes:
fome = fome herbcarn x 100, para plantas.
fome = fome - (6-herbcarn) x 150, para carne.
Assim, quando herbcarn=0, o indivduo s
come carne, e a cada vez que se alimenta sua
fome reduz 900 (6 x 150) pontos. E quando
herbcarn=6, de forma semelhante, o indivduo
s come planta e a cada vez que se alimenta a
sua fome reduz 600 (6 x 100) pontos. No caso
dos valores intermedirios, de 1 a 5, o indivduo
onvoro e o valor subtrado da fome
calculado pelas equaes apresentadas. Criaturas
com herbcarn menor podem se alimentar de
criaturas com herbcarn maior, criaturas com
herbcarn de valores iguais ou de uma mesma
populao no podem se alimentar umas das
outras.
Velocidade: Varia no intervalo [1,5], representa
o quo rpido um indivduo. Quanto maior o
atributo velocidade mais rpido o atributo fome
incrementado com o tempo. A equao abaixo
regula este fator.
fome = fome+velocidade, se o individuo anda.
fome = fome+(velocidade x 2), se o individuo
corre.
Navegador: As entradas do navegador so
informaes sobre o que se encontra perto do
indivduo. As possveis sadas do navegador so
10, e esto descritas a seguir:
0: Andar aleatoriamente para uma direo.
1: Correr aleatoriamente para uma direo.
2, 4, 6 e 8: Perseguir respectivamente uma
planta, ou um membro da populao 1, 2 e 3.
3, 5, 7 e 9: Fugir respectivamente de uma
planta, ou um membro da populao 1, 2 e 3.
A cada ao de andar tomada pelo
indivduo, este se move 1 unidade do cenrio na
direo desejada e sua fome aumenta no valor

de seu parmetro velocidade. Quando o


indivduo corre, persegue ou foge, sua fome
aumenta em 2 x velocidade e ele se move na
direo desejada em velocidade unidades.
3 O Algoritmo Evolutivo
O AE utilizado tem como papel adaptar os
parmetros
velocidade,
herbcarn
e
navegador para uma populao. O conjunto
destes parmetros ser chamado de cromossomo
a partir daqui.
Inicialmente, tais parmetros so gerados
aleatoriamente. As populaes so testadas no
ambiente, e o membro da populao que
sobrevive por mais tempo ento selecionado
para se tornar o pai da prxima gerao desta
populao. Caso mais de um indivduo
sobreviva pelo mesmo tempo, o atributo fome
serve como desempate, sendo selecionado o
indivduo com menor fome. So aplicadas, em
seguida, as funes de crossover e mutao para
produzira prxima gerao.
Na etapa de Crossover, os indivduos
possuem 50% de chance de ter cada parmetros
substitudos pelo correspondente do pai.
Na
Mutao,
cada
parmetro
do
cromossomo apresenta 2% de chance de ser
substitudo por um valor aleatrio dentro do
intervalo apropriado.
4 Experimentos Realizados e Anlise dos
Resultados
Foi elaborado um experimento com 2
populaes: uma populao evoluda pelo AE
(populao 1), e outra populao esttica
(populao 2), onde todos so herbvoros. Neste
ltimo, a populao de herbvoros tem seus
parmetros programados previamente como
indicado a seguir: herbcarn = 6, velocidade = 1,
navegador com prioridade para fugir da
populao 1 e ento perseguir vegetao.
O AE responsvel por evoluir a populao 1
responsvel por ajustar apenas os parmetros
herbcarn e velocidade. O navegador pr
programado para perseguir os membros da
populao 2, e, na ausncia destes, correr para
onde se encontra a vegetao.

O experimento foi repetido novamente, mas


agora com uma outra populao carnvora
(populao 3) caando a populao 1. Foi
verificado que continuaram aparecendo as 2
formas de sobrevivncia mais encontradas
anteriormente. Agora, no entanto, a situao de
que a populao 1 se torna carnvora mais
comum (25 casos no experimento 5, 16 casos no
experimento 4). Inicialmente, a Populao 1
seguiu por um caminho que consistia em fugir
dos predadores, mas devido ao grande nmero
de caadores, conseguiu viver mais tempo
morrendo de fome (tornando-se uma populao
com herbcarn 0) do que sendo predada.
Evoluo do Experimento 5
3500
3000
2500

Fitness

O experimento 1 resultou em uma


populao onvora e foi repetido com outra
populao de herbvoros idntica populao 2.
No novo cenrio, a disponibilidade de carne
aumentou, e a populao evoluda pelo AE se
tornou mais agressiva (parmetro herbcarn em
geral menor que os do experimento anterior).
Um terceiro experimento foi realizado
diminuindo a quantidade de vegetao pela
metade. A populao evoluda pelo AE se
tornou ainda mais agressiva: as mdias do
parmetro herbcarn encontradas em cada um dos
experimentos foram 3.94, 3.07 e 2.68,
respectivamente aos experimentos 1, 2 e 3.
Um outro experimento foi realizado: a
populao
2
teve
seus
parmetros
reprogramados para simular uma populao
carnvora, com seu navegador sempre
perseguindo a populao 1 com parmetros
herbcarn = 0, e velocidade = 1. O navegador da
populao 1 agora consiste em fugir de
predadores, e perseguir plantas quando nenhum
membro da populao 2 se encontrar prximo.

2000
1500
1000
500

49

43

46

40

37

31

34

25

28

22

Geraes

herbcarn
velocidade

7
6

herbcarn e velocidade

19

13

Experimento 4

16

10

Figura 3:
Fitness/Gerao

Evoluo

do

Experimento

5,

5
4
3
2
1

49

43

46

40

34

37

31

28

25

19

22

13

16

10

Geraes

Figura 2:Variao dos parmetros durante o experimento4

O AE fez com que a populao 1 se


adaptasse a nova situao (Figura 2), variando
sua velocidade entre os intervalos 1 e 3, o que
suficiente para fugir dos predadores, e mantendo
seu parmetro herbcarn geralmente entre os
intervalos (3 e 6). No entanto, nas geraes mais
avanadas, existem alguns casos onde a
populao 1 tornou-se tambm estritamente
carnvora (herbcarn 0), no podendo por isso ser
predada pela populao 2, morrendo no entanto
de fome.

O grfico da Figura 3 mostra a pontuao


(fitness [6]) de cada gerao, que indica o tempo
que o indivduo melhor adaptado conseguiu
sobreviver. Foi observado, quando o fitness da
populao comea a subir, que o melhor
indivduo na populao apresenta parmetro
herbcarn 0 e parmetro velocidade igual a 1, no
podendo dessa forma ser predado pelas outras
populaes. Dessa maneira, o indivduo no
comia, mas conservava suas energias, vivendo
mais tempo. Morrer de fome se tornou uma
melhor soluo do que ser morto rapidamente
pelo excesso de predadores no ambiente.
O software foi transformado em um jogo,
onde um membro da populao era controlado
por um jogador, com o objetivo de sobreviver no
ambiente artificial. Alm da criatura controlada
pelo jogador (com parmetros herbcarn 2 e
velocidade 1), existe tambm uma populao de
seres estritamente herbvoros (herbcarn = 6) e

velocidade 2. Para que o jogador sobreviva neste


cenrio, no deve deixar sua energia acabar,
para isso, deve se alimentar das plantas ou das
outras criaturas do ambiente.
No primeiro experimento com o novo
software, o navegador da populao herbvora
substitudo por valores aleatrios a cada novo
jogo. No segundo experimento, o navegador das
criaturas herbvoras foi pr-programado com a
inteno de tornar o jogo mais difcil. No
terceiro experimento, um AE foi utilizado para
evoluir os navegadores das criaturas herbvoras.
Neste primeiro experimento, mesmo
havendo imprevisibilidade no jogo (devido aos
navegadores aleatrios), isso no foi suficiente
para criar um bom desafio para o jogador (2
derrotas, 2 empates, 36 vitrias), pois a
diferena entre o nmero de vitrias e o nmero
de (derrotas + empates) se mostrou muito grande
com relao aos demais experimentos.
No segundo experimento, o jogo se tornou
muito difcil (15 derrotas, 25 empates). Nem um
nico jogo foi vencido por nenhum jogador.
No terceiro experimento, a diferena citada
no experimento 1 (vitrias-(empates+derrotas))
diminuiu: 7 derrotas, 3 empates e 30 vitrias. O
desafio para o jogador surgiu da adaptatividade
das criaturas proporcionada pelo AE.
5 Concluses
Com os experimentos realizados, foi constatada
uma adaptao das populaes evoludas pelos
AEs em resposta ao ambiente em que se
encontravam. Aplicaes como esta podem ser
possveis em uma variedade de jogos, como os
de estratgia, sendo cada populao de um
grupo estratgico especfico evoluda pelo AE.
Como exemplo, pode-se citar populaes de
infantaria, cavalaria e artilharia, em jogos de
estratgia tradicionais e tambm os MMORPGs
(Massive Multiplayer Online Roling Playing
Games), onde os NPCs que devem ser mortos
pelos jogadores seriam evoludos por um AE,
adaptando-se situao atual do jogo. Neste
caso, os NPCs podem fugir quando um grupo de
jogadores experientes comeam a atac-los, ou
se tornarem mais agressivos quando jogadores
inexperientes se aproximam.

Nos experimentos 4 e 5 a adaptao da


populao foi considervel, encontrando
solues alternativas quelas pr-concebidas
pelos desenvolvedores. Tal imprevisibilidade
pode tambm tornar os jogos mais interessantes
se for dirigida para o usurio final.
Embora o mtodo adaptativo possa ser
utilizado para aumentar o nvel de dificuldade
do jogo, esta no a principal funo do mesmo.
Aumentar a dificuldade pode ser utilizado como
uma ferramenta para aumentar o engajamento
do usurio final. Uma aplicao possvel do
mtodo apresentado tambm seria a simulao
de personalidades em NPCs, j que os membros
da populao no so totalmente iguais. A
variedade gentica da populao pode dar
caractersticas diferentes para cada indivduo.
No ltimo experimento realizado, foi
apresentado um exemplo de um jogo utilizando
um AE no controle das criaturas que interagem
com o jogador. Foi constatado que os NPCs
foram capazes de se adaptar diferentes estilos
de jogo dos jogadores. Como os controladores
das criaturas so inicializados aleatoriamente, no
inicio do jogo existe uma grande diversidade de
comportamentos onde vencer bem mais fcil.
Depois de vrias rodadas, as criaturas se
adaptam ao estilo do jogador que comea a ser
derrotado mais freqentemente. Este, ento deve
mudar seu estilo, para continuar ganhando.
6 Referncias
[1] Watson, R. A., Ficici, S. G. and Pollack, J. B.,
Embodied Evolution: Distributing an Evolutionary
Algorithm in a Population of Robots, Robotics and
Autonomous Systems, Vol. 39, pp. 1-18, 2002.
[2] Holland, J. H. Outline for a Logical Theory of
Adaptive Systems, Journal of the Association for
Computing Machinery, Vol. 3, pp. 297-314, 1962.
[3] Wikipedia. NPC, http://en.sikipedia.org/wiki/Nonplayer_character (15/09/05).
[4] Wikipedia.
Strategy_game,
http://en.wikipedia.org/wiki/Strategy_game
(15/09/05).
[5] Wikipedia.
MMORPG,
http://en.wikipedia.org/wiki/MMORPG (15/09/05).
[6] Tomassini, M. A Survey of Genetic Algorithms,
Annual Reviews of Computational Physics, World
Scientific, pp. 87-118, 1995.

Vous aimerez peut-être aussi