Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS Autor:Thiago França Naves 1, Orientador: Carlos Roberto Lopes 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade Federal do Uberlândia (UFU) Uberlândia MG Brasil tfnaves@mestrado.ufu.br, crlopes@facom.ufu.br Nível: Mestrado Ano de ingresso no programa: 2010 Época esperada de conclusão: Abril / 2012 Etapa concluída: Defesa da proposta de dissertação Resumo. Planejamento voltado para produção de recursos em jogos de estratégia em tempo real (RTS Games) apresenta uma grande quantidade de desafios, tais como restrições temporais, efeitos numéricos e satisfação de pré-condições para execução de ações, características típicas do domínio e importante objeto de estudo para a área de pesquisa. Um jogo de RTS pode ser dividido em duas partes, a primeira onde o jogador procura reunir o máximo de recursos possíveis a fim de alcançar um estado em que esses estejam maximizados, e a segunda onde ele utiliza desses recursos para combater o seu oponente. Com isso, a primeira parte do jogo torna-se de vital importância para o sucesso do jogador e é o foco deste trabalho, que tem por objetivo ir além do desenvolvimento de um planejador de ações entre um estado inicial e um estado final pré-estabelecidos, e sim buscar qual o melhor estado objetivo a ser alcançado baseado nas propriedades do domínio. Para tais tarefas, será utilizado o algoritmo Simulated Annealing junto com dois planejadores desenvolvidos para este trabalho. Palavras-Chave. Jogo RTS, recursos, planejamento, busca.
1. Introdução e Motivação Jogos de estratégia em tempo real, popularmente conhecidos como RTS (Real Time Strategy) são uma das categorias de jogos mais famosas e cultuadas no mundo, lançamentos recentes como Starcraft II e World of Warcraft são exemplos dessa categoria. Esses jogos são caracterizados por possuírem duas fases distintas, a primeira onde o jogador deve reunir e construir o máximo de recursos possíveis e a seguinte com o uso dos recursos adquiridos em combates contra outros inimigos ou jogadores. A primeira fase é caracterizada por desafios como: Reunir o máximo de recursos no menor tempo o possível, gerenciar as pré-condições de cada recurso antes e depois de sua construção e conseguir elevar ao máximo a força do exército que está sendo desenvolvido. Durante essa fase o jogador precisa usar toda a sua habilidade e rapidez e o foco dessa pesquisa é nesta, não considerando a etapa de batalha contra os inimigos. Recursos em jogos de RTS são todos os tipos de materiais, construções, bases militares e soldados [Buro and Furtak 2003]. Para alcançar um determinado conjunto de recursos é preciso seguir uma série de ações que levam de um estado inicial a um estado final de recursos desejados. Podemos identificar dois tipos claros de ações, as que coletam e reúnem recursos tais como, mineral, gás ou madeira e as que consomem esses recursos quando são construídas, como barracas, fábricas ou bases militares. Para conseguir sucesso na coleta e desenvolvimento de recursos, são desenvolvidos planejadores que estabelecem um conjunto de ações necessárias para sair de um determinado estado dentro do jogo e chegar até outro com um número maior de recursos. Para que esse plano seja executado o mais rápido o possível, é preciso diminuir o tempo dele através do escalonamento das ações para que essas possam ser realizadas em paralelo. Esse ganho de performance é alcançado através da redução do makespan do plano, um das metas comuns a serem alcançadas em pesquisas como essa. Este trabalho tem como um dos objetivos a redução do makespan. Para a geração dos planos que contém as ações a serem executadas são utilizados dois planejadores, o primeiro que busca obter um plano sequencial linear e outro que utiliza o princípio de plano e ordem parcial e gera um conjunto de ações já escalonadas. Esse último planejador foi desenvolvido especialmente para esta pesquisa e possui diversas técnicas que buscam obter o melhor escalonamento para o domínio em questão. Os dois planejadores serão melhor descritos mais adiante na seção 3. O foco deste trabalho é a busca pelo melhor conjunto de ações possíveis, que representam o estado objetivo a ser alcançado por um planejador de ações. Esse estado objetivo é um conjunto de ações que maximize a força do plano e diminua o tempo de execução deste, dessa forma ao invés de pré-estabelecer esse sem critério como é feito na maioria dos trabalhos, é feita uma busca por qual o melhor estado objetivo a se chegar. Para isso, é utilizado o algoritmo de meta-heurística Simulated Annealing, que recebe o plano de ações e busca através de operações sobre esse obter um novo conjunto de ações que maximize a força desse exército e também diminua o seu makespan. A pesquisa é motivadora, uma vez que não existem muitos trabalhos ou referências que utilizam a abordagem de busca pelo melhor objetivo ou estado final a ser alcançado em um planejamento de ações. Esse trabalho é inspirado nos resultados encontrados em [Fayard 2005], [Chan et al. 2008], [Chan et al. 2007] e [Branquinho et al. 2011] e tem como objetivo compreender o uso de planejamento em jogos RTS e desenvolver planejadores que possam obter resultados melhores que os destes.
2. Trabalhos Relacionados A pesquisa foi motivada inicialmente pelo trabalho [Fayard 2005], onde o autor busca estabelecer uma maneira de avaliar se diferentes classes dentro de um mesmo jogo possuem seus respectivos recursos balanceados em termos de custo e ganho para o jogador. Para tal, ele propõe o uso do Simulated Annealing [Kirkpatrick et al. 1983] para encontrar o melhor conjunto de ações a serem alcançadas dado um conjunto de condições, entre essas está o tempo máximo que o plano final pode obter, além disso, o algoritmo trabalha com a função objetivo voltada para maximizar a força de ataque do plano final. Com a abordagem de [Fayard 2005], foi possível vislumbrar uma forma de preencher uma lacuna encontrada em grande parte das abordagens sobre planejamento para Jogos RTS, pois essas buscam formas de obter planos entre estados iniciais e finais, mas não exploram qual seria o melhor estado final a ser alcançado dado um determinado momento do jogo e os recursos disponíveis nesse. Para completar a pesquisa os trabalhos de [Chan et al. 2008] e [Branquinho et al. 2011] deram as premissas necessárias para o desenvolvimento dos algoritmos que completam a pesquisa. As duas abordagens buscam desenvolver um planejador que estabeleça um plano de ações dado dois estados um inicial e outro final, esse plano é então submetido a outro algoritmo que fica encarregado de escalonar as ações a fim de encontrar o menor tempo de execução possível para ele. Com os trabalhos relatados anteriormente, foi possível estabelecer o corpo desta pesquisa. As abordagens de [Chan et al. 2008] e [Branquinho et al. 2011] estão sendo usadas para inspirar a construção dos planejadores utilizados, que tem a função de estabelecer o conjunto de ações a serem executadas dado um limite máximo de tempo, além de trazer essas ações já escalonadas. Já a abordagem de [Fayard 2005] traz a ideia de aplicar uma meta-heurística a fim de buscar maximizar algumas características desse plano obtido, tendo ao fim um resultado final ótimo em termos de força e tempo de execução do conjunto de ações, representando o melhor plano objetivo. 3. Contribuição do Trabalho Diante dos desafios que envolvem o planejamento em jogos de RTS tais como: obtenção de um plano de ações, escalonamento e principalmente a busca por melhorias no plano já estabelecido através da inserção e remoção de novas ações, as contribuições do trabalho buscam atingir todos esses segmentos de tarefas. As contribuições são: Desenvolvimento de um planejador sequencial linear. Desenvolvimento de um planejador de ordem parcial, que escalona as ações baseado nas restrições do domínio de jogos de RTS. Desenvolvimento de um algoritmo de verificação que avalia a consistência de um plano de ações a cada vez que esse sofre uma operação do S.A. Análise das possiblidades de representação e ordem das ações do plano para um melhor escalonamento União de duas abordagens diferentes de planejamento para a otimização deste em domínios com restrição de tempo, pré-condições e maximização de função objetivo. 4. Metodologia e Estado da Pesquisa Para alcançar os objetivos desta pesquisa primeiramente foi feito um estudo sobre os principais trabalhos de planejamento em jogos de RTS, para através destes obter a configuração atual das
pesquisas nesta área afim de encontrar possíveis espaços para contribuição. Em seguida, iniciamos a busca por algum tipo de simulador ou jogo de RTS que pudesse servir como ferramenta de testes práticos para os resultados que seriam obtidos durante os experimentos. Dentre os modos de jogos e ferramentas de simulação pesquisadas, a que melhor atendeu as necessidades desta pesquisa foi a API chamada Bwapi (Broodwar API) [Bwapi 2011], com ela é possível introduzir algoritmos dentro do jogo Starcraft e dessa forma gerenciar e controlar o ambiente do jogo. A escolha da BWAPI está fortemente ligada ao fato da sua integração com o Starcraft, pois esse é considerado um dos jogos de RTS mais completos e com maior número de restrições e pré-condições entre seus recursos, validando ainda mais os resultados obtidos no decorrer do trabalho. Dentre os algoritmos propostos para o trabalho o primeiro a ser desenvolvido foi o planejador sequencial linear, que é responsável por encontrar um plano linear de ações dado um determinado tempo limite. O plano gerado foi usado junto com o S.A. a fim de obter um conjunto de ações que aumentasse a força de ataque desse, durante os experimentos foi notado que o S.A. consegue em todos eles retornar um plano com força de ataque maior que o inicial e esse novo plano possui também tempo menor de execução, proporcionando outro ganho ao planejamento. O segundo planejador foi desenvolvido baseado no principio de plano de ordem parcial e tem por objetivo além de desenvolver um plano de ações para alcançar um estado final dado um determinado tempo, também o de escalonar essas ações. O escalonamento é feito ao mesmo tempo em que as ações vão sendo planejadas, e o planejador leva em conta diversas características presentes em domínios de jogos RTS para conseguir um escalonamento perto do melhor resultado possível, como por exemplo: Antecipar a execução de um recurso que contribui na obtenção de mais recursos para o plano, não buscar escalonar recursos que são pré-condições de outros em sequência, e sim em intervalos entre outros recursos. Esse plano de ações também é submetido ao S.A a fim de encontrar um plano com força de ataque maior e tempo de execução baixo. Nos testes feitos até o momento o algoritmo consegue encontrar planos com força de ataque maximizado, mas nem sempre com o tempo final menor do que o do plano inicial. 5. Cronograma do Trabalho até a Defesa Cronograma do Trabalho até a Defesa 1. Implementação e testes com o plano parcial escalonado e S.A; 2. Escrita de artigos científicos ; 3. Implementações necessárias para otimizar os algoritmos; 4. Testes com as implementações desenvolvidas; 5. Escrita da dissertação; Figura 1. Cronograma de atividades
Referências Branquinho, A., Lopes, C. R., and Naves, T. F. (2011). Developing strategies for improving planning and scheduling of actions in rts games. 23rd IEEE International Conference on Tools with Artificial Intelligence. Buro, M. and Furtak, T. (2003). Rts games as test-bed for real-time research. Workshop on Game AI, JCIS, 481-484. Bwapi (2011). BWAPI - An API for interacting with Starcraft : Broodwar. Chan, H., Fern, A., Ray, S., Ventura, C., and Wilson, N. (2008). Extending online planning for resource production in real-time strategy games with search. Workshop on Planning in Games ICAPS. Chan, H., Fern, A., Ray, S., Wilson, N., and Ventura, C. (2007). Online planning for resource production in real-time strategy games. In ICAPS. Fayard, T. (2005). Using a planner to balance real time strategy video game. Workshop on Planning in Games, ICAPS 2007. Kirkpatrick, S., Gelatt, C. D., and Vecchi, M. P. (1983). Optimization by simulated annealing. Science 1983.