• Nenhum resultado encontrado

DA SILVA, Bruno Machado. Universidade Federal de Pelotas. Universidade Federal de Pelotas. Universidade Federal de Pelotas

N/A
N/A
Protected

Academic year: 2021

Share "DA SILVA, Bruno Machado. Universidade Federal de Pelotas. Universidade Federal de Pelotas. Universidade Federal de Pelotas"

Copied!
8
0
0

Texto

(1)

DESENVOLVIMENTO DE SISTEMA AUTOMATIZADO PARA TESTE DE JOGOS DO TIPO RPG

DA SILVA, Bruno Machado Universidade Federal de Pelotas

ARAUJO, Ricardo Matsumura de

Universidade Federal de Pelotas

AGUIAR, Marilton Sanchotene de

Universidade Federal de Pelotas

1 RESUMO

Jogos de interpretação de personagem, também conhecidos como de RPG, representam um grande desafio para o jogador, pois requerem o calculo do melhor caminho e das melhores escolhas. Do ponto de vista da computação, este cálculo é bastante complexo, pois envolve muitos fatores inerentes à constituição e estrutura do jogo.

O trabalho proposto tem por objetivo o desenvolvimento de um sistema de inteligência artificial que seja capaz de jogar um jogo de interpretação de personagem e encontrar caminhos ótimos ou próximos do ideal, dentro de uma simplificação do famoso jogo de RPG, Mafia Wars.

Este trabalho surge como alternativa para verificação do equilíbrio de um jogo de RPG, automatizando o processo de validação e teste dos jogos. Através do uso de técnicas e algoritmos genéticos, uma família de modelos computacionais inspirados na teoria da evolução das espécies, pretende-se simplificar o problema e diminuir os custos computacionais do cálculo dos caminhos ótimos e subótimos, além de comparar o desempenho da máquina com o desempenho de humanos jogando.

2 INTRODUÇÃO

Jogos de RPG consistem basicamente em interpretação de personagem. Cada jogador possui seu personagem e um leque comum de ações possíveis que eles podem executar. Cabe a cada pessoa escolher qual a melhor estratégia para evoluir e maximizar os atributos do personagem, bem como dinheiro para comprar propriedades que geram mais lucro, energia para executar missões, atributo de ataque e defesa para sair-se bem em desafios entre jogadores.

Então o problema do jogo de RPG consiste em achar o melhor caminho dentro do conjunto de ações do jogo com a finalidade de maximizar ganhos e

(2)

melhorar certos atributos. Ou seja, é necessário encontrar tanto a melhor seqüência de ações como a melhor estratégia de distribuição de pontos.

Por possuírem grande número de variáveis, os jogos de RPG são um grande desafio para a computação. Muitas vezes é difícil prever ou conhecer o comportamento de tais variáveis que os envolvem.

No jogo Mafia Wars, por exemplo, o jogador pode adotar a estratégia de focar acumulo de dinheiro. Assim ele deve maximizar o ganho de dinheiro em missões, ganho com propriedades e brigas. O jogador também pode adotar a postura de acumular atributos de defesa e ataque para brigas, com objetivo de tornar-se assim invencível em combates.

No ramo da Inteligência Artificial existem muitas estratégias de algoritmos que tentam encontrar a melhor resposta, algumas usando busca em profundidade, bem como o algoritmo A*. Porém, para problemas como o jogo de RPG, que possuem grande número de possibilidade de estratégias e ações, o algoritmo tomaria longo tempo para sua execução.

Uma alternativa para tentar minimizar o tempo para construir um jogador eficiente é utilizar algoritmo genético. Algoritmos genéticos utilizam o principio da evolução biológica, encontrado em sistemas naturais, para encontrar soluções em problemas algorítmicos (SCHWAB, 2004).

Esse trabalho propôs o uso de algoritmos genéticos para construir um agente inteligente, ou seja, uma máquina capaz de jogar eficientemente um jogo de interpretação de personagem. Com uma modelagem minimizada da estrutura do jogo Mafia Wars, foi construído um jogador que consegue jogador o jogo de forma eficiente encontrando possíveis brechas e falhas no jogo, explorando-as ao máximo.

3 METODOLOGIA

3.1 Modelagem do jogo de RPG

Neste trabalho, primeiramente foi desenvolvido um modulo que representasse de maneira mais fiel possível os jogos de RPG presentes nos sites de rede social como Facebook. Para fins de teste do algoritmo desenvolvido, foi minimizado o jogo Mafia Wars e principalmente sua estrutura.

Por ser um jogo executado em browser e rico em componentes gráficos, além da necessidade de sucessivas execuções do jogo para treinamento da máquina, não seria possível executar o algoritmo genético rapidamente, pois haveria constante necessidade de carga de elementos gráficos na página. Além disso, o algoritmo necessita ter acesso aos dados de jogador e alguns atributos de missões, o que necessitaria ser feito através de algum outro artifício extra.

Então, nessa minimização, foram modelados o jogador com seus atributos (stamina, energia, saúde, dinheiro, XP, level, ataque, defesa) e as ações possíveis, como execução de missão comum, realização de missão principal, briga entre jogador, compra propriedade, retirada de dinheiro de propriedade.

Algumas ações do jogo não foram modeladas nesse trabalho, como a compra de itens. Em especial a aquisição de itens necessitaria inclusão de muitos testes durante a realização das outras ações, o que tornaria os testes do algoritmo muito custosos e demorados. Porém o algoritmo genético pode

(3)

ser facilmente expandido e assim absorver futuras implementações para tornar o jogo mais semelhante ou até mesmo igual aos presentes nos sites de rede social.

Além disso, o jogo minimizado acontece em turnos. Logo, ao invés de recuperar um ponto de cada um de seus atributos flexíveis (stamina, energia e saúde) ao decorrer de determinado tempo, o jogo foi modelado para que o jogador recupere um ponto de cada atributo variável a cada passagem de turno.

3.2 Algoritmos Genéticos

Algoritmos Genéticos é uma técnica algorítmica baseada na evolução biológica. Segunda definição de Michalewicz(2003), algoritmos genéticos são algoritmos estocásticos que usam métodos de busca que modelam o fenômeno que ocorre na natureza, a herança genética e a teoria Darwiniana a respeito de sobrevivência. A idéia do algoritmo genético então é fazer o que a natureza faz na evolução das espécies.

Na evolução que ocorre na natureza, pelo principio Darwiniano, o problema consiste em encontrar adaptações beneficentes para um complexo ambiente. (DAVIS,1987).

Por exemplo, uma população de coelhos que necessitam ser rápidos para fugirem de raposas. Coelhos rápidos tendem a sobreviver mais do que coelhos lentos. Ou seja, numa população onde existem coelhos rápidos e coelhos lentos, equilibradamente, coelhos rápidos tendem a deixar suas características genéticas através das gerações (incluindo a velocidade muscular). Logo, gerações seguintes de coelhos provavelmente sejam mais rápidas, em média, do que a população original.

Nesse exemplo dos coelhos, e na natureza, os mais adaptados ao meio possuem mais chance de sobrevivência e de influenciarem as gerações seguintes, através da recombinação genética. Então, de acordo com definição de Mitchell(data), algoritmos genéticos usam esta analogia para fazer buscas de hipóteses gerais para específicas ou de respostas simples para complexas do problema.

Algoritmos genéticos usam vocabulário vindo da genética natural. Esses algoritmos mantêm uma população de indivíduos, também chamados cromossomos, normalmente representados por strings.

De acordo com Michalewicz(2003), cada cromossomo (fenótipo) representa uma potencial solução do problema . O algoritmo é inicializado com uma população de cromossomos aleatórios, que pertencem ao espaço potencial de soluções.

Nesta abordagem o grau de adaptação dos indivíduos é calculado através da função fitness, função esta que ranqueia o indivíduo dentro da população, retornando valores altos para indivíduos mais adaptados. (RUSSEL, 2003)

O algoritmo mantém uma população de n indivíduos por t gerações. A cada geração o fitness de cada um dos indivíduos é mensurado. Uma nova população é criada através da seleção dos indivíduos mais adaptados. Alguns membros da população sofrem transformações chamadas de operadores genéticos. (MICHALEWICZ, 2003)

(4)

3.3 Adaptação do problema

Primeiramente é necessária uma maneira de representar a solução para o jogo (michalewicz). No caso do jogo de RPG, é necessário apenas indicar qual ação o jogador tomará, além do subtipo em que ela se divide. Logo, se existem n possibilidades de ação principal, existem n possibilidades de escolha por parte do jogador. Em contrapartida o número de subtipo de ações em que cada uma das principais se divide não é fixo.

Cada pedaço do cromossomo, chamado gene, foi então modelado para indexar diretamente ações dentro do jogo. Assim, cada objeto gene é composto pelo atributo acaoPrincipal e uma lista chamada subTipoAcao. Houve a necessidade de ser implementado o subtipo em uma lista, pois há ações principais que necessitam dupla indexação de subtipo, como a execução de missão comum que necessitam indicar o level e a missão dentro do level.

Cada cromossomo representa então uma sequência de ações dentro do jogo (BUCKLAND, 2002). Os cromossomos possuem tamanho variável, pois não se sabe exatamente qual o tamanho ideal de ações que maximizem o ganho, e ainda deseja-se conseguir o máximo de ganho com o mínimo de ações possíveis.

4 RESULTADOS

Os primeiros experimentos foram feitos apenas com jogadores máquina. Foram feitas 100 execuções do algoritmo, após foram verificados os gráficos de convergência das respostas. Em todos os experimentos citados, o jogador possuía todos os atributos inicializados em 10 e dinheiro inicial igual a 200. Cada cromossomo foi inicializado com tamanho mínimo de 5 ações e máximo de 20.

O primeiro experimento foi feito com um jogo desequilibrado, no qual existia uma ação que gerava renda muito acima da média. Usando técnica de algoritmo guloso, a sequência de ações ótima seria comprar propriedade 2 que custava 200 de dinheiro e logo após explorar ao máximo a retirada de dinheiro a cada turno, rendendo 500 a cada turno.

Neste primeiro experimento foram testadas diferentes funções fitness. A primeira função testada foi dada em função do dinheiro e do tamanho da parte de ações do cromossomo. Usando subtração, a função foi dada por Dinheiro – k* tamanho ações cromossomo.

(5)

Figura 1 - Gráfico do tamanho médio do melhor cromossomo, ao longo das gerações, para constantes diferentes.

As funções de subtração dependentes do tamanho do cromossomo e de uma constante, constante k x tamanho do cromossomo para k>=1, possuem a tendência de aumentar o cromossomo, na tentativa de suprir a multiplicação da constante pelo tamanho das ações do cromossomo.

Função Fitness Dinheiro - k*tamanho Cromossomo

0 1000 2000 3000 4000 5000 6000 7000 8000 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 Geração S ta tu s A tr ib u to D in h e ir o ( $ ) k = 20 k = 40 k = 50

Figura 2 - Gráfico do rendimento médio do melhor cromossomo ao longo das gerações, para constantes diferentes.

Ocorre problema no algoritmo quando a constante é demasiadamente alta, pois com isto o algoritmo tende a aumentar o tamanho do cromossomo ao máximo. Na tentativa de suprir o valor do produto de k pelo tamanho da lista de ação do cromossomo, o algoritmo faz cruzamento e seleção inadequados. Com isso, para valores muito altos de K, o algoritmo se perde e não converge para boas respostas, obtendo valores muito baixos.

(6)

Um segundo tipo de função testada, foi função de divisão, também dependente de uma constante k. Cada função é dada pela divisão do valor do montante acumulado pelo produto do tamanho do cromossomo por k.

Figura 3 - Gráfico do tamanho médio do melhor cromossomo ao longo das gerações, para constantes diferentes.

Para este tipo de função, em relação as funções de subtração a tendência é a diminuição do cromossomo, até se estabilizar em um tamanho médio. Porém, ao contrário das funções de subtração, o cromossomo tenta refinar ao máximo os cromossomos com melhores ações, selecionando os com menor tamanho e melhores ganhos.

Figura 4 - Gráfico do ganhob médio do melhor cromossomo, ao longo das gerações, para constantes diferentes.

O grande problema neste tipo de função acontece quando a constante k é igual a 1. Nesta situação podemos ter, por exemplo, uma sequência de duas

(7)

ações rendendo 1000 em dinheiro, sendo cada uma delas individualmente rendendo 500, e uma ação com 1530 de dinheiro, com uma ação que rende 230, uma segunda ação rendendo 200 e uma ultima ação rendendo 1000. Para o computador, a segunda sequência de ações teria maior valor fitness do que a sequência 1(fitness 530 sequência 2, fitness 500 sequência 1), neste contexto sendo a preferida.

Porém, como este trabalho visa minimizar o número de ações e maximizar o lucro, essa situação apresentada tende a não trazer benefícios ao jogador máquina, dificultando a convergência para respostas curtas e que maximizem a eficiência por turnos.

Testes com constantes demasiadamente altas também demonstraram resultados insatisfatórios, pois não eram encontradas boas sequência de ações.

Diante de todos os experimentos realizados, optou-se pelo cálculo que lança mão da divisão pelo número de ações presentes no cromossomo, com constante k fixa em 10, por apresentar velocidade alta de ganho a cada ação e por encontrar brechas no jogo.

Outro experimento preliminar realizado foi o duelo de rendimento do jogador máquina e humano. Os primeiros levantamentos de comparação, demonstraram que a máquina possui rendimento bom já nas primeiras gerações do algoritmo genético, enquanto que jogadores humanos demoram tanto para se ambientar no jogo, entender a lógica, como para conseguir boas sequências de ações.

Em estudos preliminares, o computador sempre teve rendimento superior ou no mínimo equivalente ao humano. Em especial, no jogo desequilibrado o computador conseguiu fazer a “jogada perfeita”, consumindo o mínimo de ações e atingindo o máximo de lucro possível. Essa conclusão foi feita comparando com um algoritmo de busca gulosa.

5 CONCLUSÕES

Para o problema do jogo de RPG, é viável a utilização de algoritmos genéticos para construção de um agente inteligente que jogue de maneira satisfatória o jogo proposto. O algoritmo é facilmente adaptável e pouco depende da estrutura do jogo em si.

Em estudos preliminares, o algoritmo conseguiu convergir para boas respostas em comparação com jogadores humanos, conseguindo grande parte das vezes superar o desempenho de jogadores humanos, se mostrando extremamente poderoso para problemas complexos de decisão.

Os próximos passos do trabalho serão o aprofundamento dos estudos comparativos dos resultados de humanos e máquina, verificando com maiores detalhes e dados a eficiência da máquina treinada.

6 REFERÊNCIAS

RUSSEL, S.; NORVIG, P. Artificial Intelligence: A Modern Approach. 2.ed. USA: Prentice-Hall, 2003. 1132p.

(8)

MICHALEWICZ, Z. Genetic Algorithms + Data Structures = Evolution Programs. 3.ed. USA: Springer, 2003. 387p.

GOULD, Sthepen Jay. The structures of evolutionary theory. USA: Havard University Press, 2002. 1433 p.

KARP, Gerald. Biologia celular e molecular. 3.ed. Editora Manole, 2005. 832 p.

BUCKLAND, Mat Jay. All techniques for game programming. USA: Cengage Learning, 2002. 448p.

SCHWAB, B. AI Game Engine Programming. USA: Charles River Media, 2004, 594p.

Davis, L. and Steenstrup, M. Genetic Algorithms and Simulated Annealing: An overview. London: Pitman, 1987.

Referências

Documentos relacionados

Vale ressaltar que o PNE guarda relação direta com o Plano de Aceleração do Crescimento (PAC) que tem como objetivo o desenvolvimento econômico e social, além de

O caso de gestão a ser estudado irá discutir sobre as possibilidades de atuação da Pró-Reitoria de Assistência Estudantil e Educação Inclusiva (PROAE) da

Depois de exibido o modelo de distribuição orçamentária utilizado pelo MEC para financiamento das IFES, são discutidas algumas considerações acerca do REUNI para que se

Em 2008 foram iniciadas na Faculdade de Educação Física e Desportos (FAEFID) as obras para a reestruturação de seu espaço físico. Foram investidos 16 milhões

Não obstante a reconhecida necessidade desses serviços, tem-se observado graves falhas na gestão dos contratos de fornecimento de mão de obra terceirizada, bem

Apesar da melhora de desempenho nas compras dos setores pesquisados, os instrumentos de pesquisa utilizados permitiram verificar que na Universidade Federal de

intitulado “O Plano de Desenvolvimento da Educação: razões, princípios e programas” (BRASIL, 2007d), o PDE tem a intenção de “ser mais do que a tradução..

No Brasil, a falta de uma fiscalização mais rigorosa é uma das razões que possibilitam que certas empresas utilizem os estágios como forma de dispor de uma mão-de-obra qualificada,