Agentes Autónomos e Sistemas MultiAgente 2º Semestre, 2008-2009 Departamento de Engenharia Informática Enunciado do projecto Agentes em Counter Strike 27 de Abril de 2009
1 Introdução O objectivo do projecto da cadeira de Agentes Autónomos e Sistemas Multiagente é construir uma equipa de agentes inteligentes para o jogo Counter Strike. Este documento apresenta os requisitos pretendidos para a implementação das personagens sintéticas que representarão os elementos de cada equipa. Descreve-se brevemente o jogo e as suas regras; fazendo-se, depois, uma introdução à plataforma para o desenvolvimento do projecto (AASM CS Agents). Por fim, enunciam-se os objectivos do projecto e os critérios de avaliação. Na página da cadeira estão disponíveis referências adicionais úteis para a realização do projecto. 2 Descrição do Jogo Counter Strike O Counter Strike é um jogo do tipo First Person Shooter que confronta duas equipas com objectivos antagónicos. Uma das equipas, os terroristas, tem como missão colocar uma bomba em locais específicos do mapa. Por seu lado, a outra equipa, os contraterroristas, tem como missão impedir os terroristas de conseguirem detonar a bomba, desactivando-a atempadamente ou impedindo que esta seja colocada. Os vários jogadores têm à sua disposição diversas armas que podem usar para eliminar os elementos da equipa adversária. De notar que a opção de fogo amigo estará activada pelo que um jogador pode ferir membros da sua equipa. O jogo contempla outros cenários de conflito como, por exemplo, cenários com reféns. No entanto, apenas os cenários de colocação de bomba serão considerados para este projecto. Para além disso, o jogo apresenta diferentes mapas mas, por razões de simplificação, não se consideram mapas com obstáculos destrutíveis ou portas. Podem encontrar descrições detalhadas dos cenários, mapas e regras do jogo nos recursos disponibilizados na página da cadeira. 3 Plataforma AASM CS Agents O objectivo deste projecto passa pela criação de vários agentes para o jogo Counter- Strike. Os agentes podem ser vistos como personagens sintéticas autónomas que tomam o papel de um elemento de uma equipa (terrorista ou contra-terrorista) como se de um jogador humano se tratasse.
Para o desenvolvimento destas personagens é disponibilizada uma plataforma que fornece uma interface com o motor do jogo e implementa vários sensores e actuadores de base. Os actuadores disponibilizados permitem a movimentação do agente pelo mundo, livre ou suportada em waypoints ; a compra de novo equipamento; a comunicação com outros bots ; e a execução das acções base de combate: apontar, disparar, mudar de arma, recarregar a arma e; armar e desarmar a bomba. Os sensores, permitem aceder ao estado do agente, saber o seu estado de saúde e que armas este possui; e recolher informação sobre o mundo, como olhar para um ponto do espaço e avistar outros agentes, granadas ou bombas. A plataforma providencia alguns exemplos de utilização desses métodos. Uma introdução mais completa a esta plataforma será feita nos laboratórios da cadeira. Relembra-se que a criação de agentes é, desde o aparecimento deste jogo, uma actividade que os seus entusiastas têm desenvolvido tanto para se treinarem, como para animar o jogo com a introdução de um número maior de jogadores (inteligentes). Por isso, podem encontrar-se vários exemplos de agentes na Internet, habitualmente referenciados como bots, que poderão servir de inspiração aos alunos para a realização deste projecto. No entanto, alertamos para o facto destes agentes serem, tipicamente, desenvolvidos por programadores amadores, pelo que, a arquitectura, abstracção e organização do software é normalmente rudimentar. Para além disso, o recurso a ideias de outros agentes na implementação da solução não isenta os alunos da sua compreensão. 4 Objectivos O objectivo geral do trabalho é desenvolver personagens sintéticas inteligentes que consigam jogar em equipa no Counter Strike. Ao contrário do ano passado, este ano será dado o código do agente reactivo como base de trabalho aos alunos. Espera-se portanto um maior trabalho no desenvolvimento da arquitectura BDI, hibrída, e outros componentes avançados. Existem objectivos específicos que o grupo deve atingir na resolução do projecto.
Objectivos 1. Criar um agente com uma arquitectura BDI (beliefs, desires, intentions) que tenha a capacidade de: Se deslocar pelo mundo; Reagir aos inimigos quando os vê, tentando matá-los; Tentar (des)armar a bomba quando os pré-requisitos para tal são satisfeitos; Fazer as escolhas mais adequadas na compra de armas. 2. Criar um agente com uma arquitectura Hibrida com base no agente reactivo fornecido e na arquitectura desenvolvida no ponto 1). 3. Criar mecanismos base de cooperação entre os vários jogadores da equipa. Os agentes devem comunicar e ter a capacidade de seguir estratégias de cooperação. Fica ao critério dos alunos escolher as estratégias a utilizar. Algumas opções podem incluir: escolha de um líder, divisão da equipa em sub-grupos, divisão de tarefas, partilha de informação, etc. 4. Incorporar emoções nos agentes. Os agentes deverão sentir emoções de acordo com o que está a acontecer no mundo virtual, e o seu comportamento deverá ser afectado pelas mesmas. 5. Fazer uma comparação do desempenho dos vários tipos de agente desenvolvidos (deliberativo, híbrido, com cooperação, com emoções, etc). Para isso deve confrontar equipas constituídas exclusivamente por um tipo de agentes registando e analisando as observações. Deve mostrar dados concretos que justifiquem cada uma das conclusões. Objectivo Bónus Para além dos objectivos acima mencionados, existe um objectivo de bónus que permite aos alunos ter uma cotação adicional à sua nota de projecto (se este objectivo for cumprido com sucesso). O objectivo de bónus é a incorporação de mecanismos de aprendizagem nos agentes. 5 Torneio No final do semestre irá ser realizado um torneio que confronta as várias equipas desenvolvidas pelos alunos. Este torneio será disputado em duas fases distintas. Uma primeira fase onde as equipas são agrupadas em grupos de 4 ou 5 e se confrontam entre
si, dentro do mesmo grupo. E uma segunda fase que é decidida por eliminatórias até aos dois confrontos finais para decidir os primeiros 4 classificados. Passam à segunda fase as equipas mais bem classificadas nos grupos da primeira fase. As equipas devem estar preparadas para jogar em ambos os papeis (terroristas e contraterroristas) e para jogar em qualquer mapa. Para o desenvolvimento do projecto sugerese a utilização dos mapas: de_dust, de_dust2, de_airstrip, de_piranesi, de_survivor e de_inferno, cujos waypoints foram extensivamente revistos. No entanto, relembra-se que tanto para a avaliação como para o torneio poder-se-ão utilizar outros mapas, a menos das restrições acima referidas na secção 2. A pontuação de cada confronto depende de vários factores: Objectivo atingido? Número de mortes infligidas Tempo necessário para atingir o objectivo Este ano, devido à existência de projectos alternativos, foi decidido não atribuir bonificação aos primeiros classificados do torneio. Nota: serão automaticamente desclassificadas as equipas que fizerem batota. 6 Entrega e Avaliação O projecto deverá ser entregue até às 24 horas do dia 16 de Junho de 2008. Os detalhes do que deve ser entregue e onde, serão publicados na página da cadeira. A avaliação será feita de acordo com a seguinte distribuição: 1. Relatório... 8 valores 2. Implementação... 12 valores Serão, analisados com especial atenção, os seguintes aspectos: Honestidade dos agentes; Correcção conceptual da arquitectura; Abordagem de resolução dos problemas de cada objectivo; Comportamento inteligente resultante;
Irá ser disponibilizado um relatório modelo na página da cadeira, no qual os alunos se deverão basear para escrever o seu. Vai ser requirida um primeira entrega do projecto na aula de laboratório da semana de 2 de Junho. Nessa entrega os alunos deverão demonstrar uma equipa de agentes com as capacidades definidas no ponto 1 dos objectivos principais do projecto. 7 Licenças do Jogo Uma vez que o jogo está sujeito a licença de utilização, o Departamento de Engenharia Informática comprou licenças para que os alunos possam desenvolver o seu trabalho sem problemas legais de violação de direitos de autor. No entanto, algumas regras terão que ser respeitadas. O Counter Strike dá a possibilidade de se jogar em rede mas limita aquilo que os utilizadores podem fazer. Por exemplo, acções consideradas de batota são punidas com o cancelamento da licença em causa. Para evitar que isso aconteça os alunos não devem jogar em rede ou, caso o façam, devem fazê-lo de forma correcta respeitando as regras impostas pela empresa distribuidora. O incumprimento de alguma das regras por parte dos alunos é punido pela empresa com o cancelamento da licença. Caso isso venha a acontecer, o aluno incorre em processo disciplinar e no pagamento de uma nova licença ao departamento de forma a repor a que foi perdida por má utilização. Para além disso os alunos estão proibidos de alterar quaisquer dados relativos à conta Steam que lhes será fornecida (para utilização do Counter-Strike). Por exemplo, qualquer alteração de password terá de ser pedida ao corpo docente e nunca efectuada pelos próprios alunos.