O trabalho que inspirou o desenvolvimento desta pesquisa aqui apresentada é o de [Fa- yard 2005]. Nesse, o autor propõe o uso de busca estocástica para atingir uma determinada quantidade de recursos em um determinado tempo. O objetivo é obter diferentes quanti- dades de recursos para as diversas classes presentes em um jogo RTS. Uma vez que esses recursos são obtidos, é feita uma série de comparações em relação a essas quantidades, para verificar se as diferentes classes possuem quantidades de recursos semelhantes em suas produções. Essa verificação visa descobrir se essas diferentes classes do jogo possuem seus recursos balanceados, ou seja, todas as classes do jogo apresentam produtividade semelhante em relação a produção de recursos.
No trabalho de [Fayard 2005], caso seja feita a geração de recursos para uma dada classe com um determinado tempo limite, e o resultado for superior ao de outra classe, significa que essas estão desbalanceadas. Isso significa que uma classe consegue produzir recursos com mais rapidez ou eficácia que outra. Em seu trabalho, o autor propõe que sua abordagem de produção de recursos pode ser usada para verificar se as classes de um
dado jogo de RTS estão com sua produção de recursos equilibrada. Se houver algum tipo de desequilíbrio entre as classes, é preciso alterar os diferentes parâmetros que os recursos dessas possuem, tais como: Quantidade de recursos consumida, tempo de construção, quantidade de recursos que produz, etc.
Em sua abordagem de balanceamento de parâmetros, o autor também utiliza o SA como algoritmo de busca estocástica. Nele, o SA é responsável por inserir, retirar e trocar ações de lugar para que sejam gerados novos recursos. O intuito é de conseguir obter diferentes quantidades de recursos dependendo do tempo limite. O tempo limite é um limitador que o autor usa para determinar o quanto o SA pode buscar por uma quantidade de recursos. Essa quantidade de recursos é também um plano de ações, assim como já estamos usando o plano de ações como uma forma de se obter recursos dentro de um jogo. O tempo limite usado pelo autor não é relativo ao makespan do plano, e sim um tempo (runtime) em minutos que o algoritmo pode ficar sendo executado.
O domínio de recursos utilizado por [Fayard 2005] é do jogo StrarCraft o qual também é utilizado nesta pesquisa, representado de forma parcial pela Figura 3.11. O autor justifica o uso do StarCraft pelo fato deste ser um dos jogos RTS com maior quantidade de recursos e quantidade de pré-condições entre suas ações. Com o objetivo de estender sua abordagem para outros jogos do tipo estratégia em tempo real, ele cita que obter sucesso dentro do domínio do StarCraft qualifica sua abordagem para tal objetivo.
No trabalho de [Fayard 2005], o autor não deixa muito claro os detalhes relativos a implementação de sua abordagem, nem tão pouco faz demonstrações de algoritmos e as técnicas utilizadas. Entretanto, em seus resultados foi visto que a produção de recursos funcionou bem, onde para diferentes classes foi possível obter diferentes quantidades de recursos utilizando planos de ações válidos, ou seja, nenhum recurso foi produzido sem que todas suas pré-condições fossem totalmente satisfeitas. Tais resultados foram um dos motivadores para o desenvolvimento da abordagem aqui proposta. Mas, o que de fato inspirou a construção dessa pesquisa foi o uso de busca estocástica para alcançar recursos em um jogo RTS.
Em relação aos experimentos do trabalho de [Fayard 2005], em um deles o autor demonstra que entre as classes Terran e Protoss do jogo StarCraft existe um desequilíbrio entre seus recursos. A classe Terran conseguiu obter uma quantidade de recursos maior em relação à quantidade obtida pela classe Protoss. De fato, tal desequilíbrio reflete diretamente sobre o usuário do jogo, que ao optar por uma classe pode ter seu desempenho reduzido em relação ao seu nível como jogador, caso opte por uma classe com recursos desbalanceados.
Vamos a um exemplo que ilustre o balanceamento de parâmetros. Neste, SA foi utilizado para gerar 6 diferentes quantidades de recursos entre as classes Terran e Zerg. Será feita uma média da quantidade de recursos gerados por essas classes em todas as execuções, para ter um valor médio que represente os recursos gerados. Os recursos
possuem um peso em relação ao seu tipo, quanto mais recursos forem necessários para se construir um determinado recurso melhor avaliado ele será. Esse peso ajuda a avaliar a quantidade de recursos que uma classe pode produzir, não usando somente o critério de quantidade, que pode gerar resultados que não refletem corretamente as características de cada recurso. A Figura 3.22 mostra a médias das 6 execuções relativa as duas classes.
Figura 3.22: Média de recursos encontrados e seus respectivos pesos na abordagem de balanceamento de parâmetros.
Na Figura 3.22, é mostrado a média relativa à quantidade de recursos encontrados nas 6 execuções do SA para as classes Terran e Zerg. Para cada quantidade de recursos é exibido o peso atribuído a essa. O peso varia em relação ao custo para construir cada recurso, onde quanto mais dispendioso for ele em relação ao consumo de outros recursos maior será o seu peso. Recursos mais poderosos ou mais importantes para o desenvolvimento de novos recursos costumam ser mais caros, ou seja, consomem mais recursos na hora de serem produzidos. Nesse experimento, foi constatado que as duas classes possuem seus recursos balanceados, pois mesmo com diferentes quantidades de recursos produzidos a média final foi à mesma. Caso o resultado tivesse apontado que uma das classes estava inferior à outra, os parâmetros de ambas deveriam ser alterados e novos testes executados para verificar se o equilíbrio foi alcançado. Neste experimento, para cada execução o tempo limite de execução para o SA foi de 20 minutos. Uma das desvantagens dessa abordagem é o tempo gasto pelo SA em suas execuções, de tal forma que esse tempo a impede de ser utilizada no ambiente de tempo real do jogo.