Resumo |
Neste trabalho, procuramos criar uma ferramenta que facilite a escrita de programas para jogos RTS, intuitiva e de funcionamento simples, que possa ser usada em colaboração com pesquisas na área de Inteligência Artificial, quando a participação de pessoas de fora da equipe for uma opção desejável. RTS é uma categoria de jogos de estratégia em tempo real (Real Time Strategy) em que dois ou mais jogadores batalham até restar um vencedor. Neste estilo de jogo, os competidores disputam por recursos presentes em um mapa em comum e têm como objetivo destruir as bases inimigas. Para isso, unidades balanceadas entre si são criadas de acordo com o que jogador acha adequado a cada momento, sendo necessária habilidade em gerenciamento de recurso e de unidades, assim como o ataque e defesa nos eventos de cada partida. Jogos com esse tipo de configuração, são ótimos objetos de estudo na área da Inteligência Artificial devido a enorme variedade de ações e suas ramificações do decorrer do tempo. Baseado em jogos RTS, foi criado o µRTS com uma implementação simplificada, que permite testes teóricos rápidos com IA. Sendo assim, são possíveis simulações com diversos conjuntos de ações utilizando diferentes algoritmos de busca. Partindo desse recurso já existente, buscamos criar uma interface que tornasse a criação de scripts mais visual, em que não fosse necessário o contato direto com código. Os scripts (programas que definem as ações do jogador) são montados pelo usuário através de comandos como construir, treinar, coletar, e seus parâmetros, como por exemplo: tipo de unidade, quantidade e direção de criação, exigidos no comando treinar. A ordem em que os comandos são definidos indica a sua prioridade de execução, por isso a interface permite a reordenação, adição e exclusão deles separadamente. A interface também permite carregar, salvar scripts, e testá-los em diferentes mapas, além de viabilizar uma melhor interação do usuário com as simulações, como pausa, reinício, e a troca dos lados dos jogadores. A implementação da interface utiliza Swing para exibição das partidas e JavaFX na montagem e gerenciamento visual dos comandos. Usamos também um compilador que facilita a construção textual de scripts, que são lidos e executados pelo µRTS durante as partidas. Como resultado, temos um sistema que pode ser utilizado em pesquisas que envolvam criação de scripts por humanos e permite a participação tanto de programadores, quanto de jogadores de RTS que não tenham conhecimento aprofundado em programação. Atualmente, a interface está sendo utilizada para coleta de dados em uma pesquisa que busca auxiliar o usuário na criação de scripts, sugerindo desde pequenas melhorias nos parâmetros de suas ações, até estratégias completamente novas e mais efetivas contra um conjunto maior de adversários. |