Algoritmos evolutivos no desenvolvimento de jogos adaptativos

download Algoritmos evolutivos no desenvolvimento de jogos adaptativos

of 4

description

Autores: Marcio Kassouf Crocomo, Mauro Miazaki, Eduardo do Valle Simões

Transcript of Algoritmos evolutivos no desenvolvimento de jogos adaptativos

  • 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

    [email protected], {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 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.

    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 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.

    Figura 3: Evoluo do Experimento 5, Fitness/Gerao

    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

    Experimento 4

    0

    1

    2

    3

    4

    5

    6

    7

    1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49

    Geraes

    herb

    carn

    e v

    eloc

    idad

    e

    herbcarnvelocidade

    Evoluo do Experimento 5

    0

    500

    1000

    1500

    2000

    2500

    3000

    3500

    1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49

    Geraes

    Fitn

    ess

  • 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/Non-player_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.