Agentes em Counter-Strike IST, AASM, 2006-2007 Celso Miguel de Melo O Jogo • Counter-Strike é um jogo First Person Shooter (FPS) • Counter-Strike é uma mod doHalf-Life (HL) – Outras mods: Team Fortress, Deathmatch Classic, Natural Selection, etc. • Adicionalmente, é um FPS orientado a equipas • Existem duas equipas: terroristas e contra-terroristas • Existem três tipos de mapas: • – Bomba – Recuperação de Reféns – Assassínio de VIP Em mapas de bomba, os terroristas devem armar uma bomba e detoná-la, enquanto os contra-terroristas os devem prevenir Agentes em Counter-Strike 2 O Projecto • O objectivo é desenvolver agentes inteligentes para as equipas do Counter-Strike • O projecto foca em mapas do tipo bomba – • • Mapas com obstáculos destrutíveis, portas ou elevadores serão evitados Os principais objectivos, que valem 80% da nota, incluem: – Desenvolver um agente reactivo – Desenvolver um agente BDI – Desenvolver estratégias de cooperação para ambas as equipas – Avaliar e comparar as arquitecturas acima mencionadas Um objectivo secundário, que vale 20% da nota, é explorar um tópico adicional – Sejam criativos. O que gostariam de explorar? – Algumas sugestões: emoções, interacção com humanos e aprendizagem Agentes em Counter-Strike 3 O Torneio • No final do semestre, os projectos serão confrontados num torneio • Os agentes submetidos devem restringir-se às interfaces fornecidas – • • Batota implica desqualificação imediata A pontuação é influenciada pelos seguintes factores: – Se o objectivo foi atingido – Número de mortes – Tempo de sobra após completar o objectivo As melhores quatro equipas obtém um bónus na nota do projecto – 1º lugar: 2,0 valores – 2º lugar: 1,5 valores – 3º lugar: 1,0 valor – 4º lugar: 0,5 valores Agentes em Counter-Strike 4 Planeamento • 1ª Entrega: 21 de Maio, 2007 – Devem entregar a implementação completa do agente reactivo • Entrega final: 19 de Junho, 2007 • Laboratórios: – Lab.7 – Introdução ao Projecto – Lab.8 – Agentes Reactivos (1) – Lab.9 – Agentes Reactivos (2) – Lab.10 – 1ª Entrega – Lab.11 – Agentes BDI & Cooperação – Lab.12 – Comparação de Agentes Agentes em Counter-Strike 5 Plataforma AASM CS Agents • A plataforma AASM CS Agents suporta a criação de agentes em Counter-Strike • Fornece sensores e actuadores para interagir com o mundo • Os módulos da plataforma suportam: • – Navegação, navegação livre e navegação por waypoints – Combate – Finanças – Visão, Audição e Radar – Comunicação Internamente, os agentes em Counter-Strike correm como uma mod do HL – Uma mod é uma Dynamic Link Library (DLL) gerada a partir do código Demonstração da instalação da plataforma Agentes em Counter-Strike 6 Ciclo de Vida do Agente modAPI:StartFrame Agent::main Agent::preThink O ciclo de decisão Agent::think do agente Agent::postThink Agentes em Counter-Strike 7 Interfaces de Navegação (1/2) • Navegação Simples suporta actuadores de navegação básicos – • Navegação Livre suporta navegação automática para posições no mundo – • moveToDestination Mover para frente/trás, lados, rodar, saltar e abaixar update No Reached destination? Constrói sobre Navegação Simples Yes Navegação por Waypoints suporta navegação baseada em grafos – Posições no grafo chamam-se waypoints – Waypoints representam conhecimento do mundo: normal, objectivo, acampar, etc. – Pathfinding inclui procura A* e o F-W shortest path algorithm – Interface reactiva separada considera apenas waypoints visíveis – Constrói sobre Navegação Livre Agentes em Counter-Strike 8 Interfaces de Navegação (2/2) • Mapas com informação de waypoints revista inclui: de_dust, de_dust2, de_airstrip, de_inferno, de_piranesi, de_survivor • Estes podem ser utilizados como referência durante o desenvolvimento • Contudo, a avaliação e o torneio não estão limitados a estes mapas • Soluções de detecção de colisões e tratamento são fornecidas pela plataforma – • Contudo, estes algoritmos podem ser estendidos – • Vide interface agents::interfaces::ICollisionHandler Vide interface agents::interfaces::ICollisionManager Counter-Strike é um sistema multi-agente complexo, tratamento de colisões faz parte do desafio de construir agentes inteligentes Demonstração de navegação Agentes em Counter-Strike 9 Interfaces de Combate & Finanças • • A Interface de Combate suporta: – Apontar – Disparar – Selecção de armas – Armar/desarmar bombas A Interface de Finanças suporta compra de armas e armadura Demonstração de combate & finanças Agentes em Counter-Strike 10 Interfaces Visão, Audição e Radar • • • A Interface de Visão suporta: – Campo de visão de 90º – Percepcionar outros agentes – Percepcionar armas no chão – Percepcionar a bomba A Interface de Audição suporta: – Percepcionar a direcção da bomba com base no tick da bomba – Influenciada pela distância e tempo para detonação A Interface do Radar suporta: – Percepcionar a localização, com precisão limitada, de colegas de equipa – Percepcionar a localização de bombas para terroristas Agentes em Counter-Strike 11 Interface de Comunicação • Existem dois tipos de comunicação: chat e rádio • Chat fornece comunicação genérica e flexível – Existe chat de equipa e chat global • Rádio fornece comunicação predefinida com som • Para além da mensagem em si, o receptor obtém a seguinte informação: – Tempo de envio da mensagem – Localização no radar do emissor Agentes em Counter-Strike 12 Depuração • Depuração passo-por-passo no MS Visual Studio 2005 – • Vide {SDK Home}\aasmCsAgents\docs\debugging.htm Biblioteca de depuração – Imprimir para consola – Log para um ficheiro – Vide espaço de nomes util::debug Agentes em Counter-Strike 13 Documentação Adicional • API em {SDK Home}\aasmCsAgents\docs\api\index.html • Ajuda para instalação, depuração e waypoints em {SDK Home}\aasmCsAgents\docs\ • Recursos na secção ‘Projecto’ da página da disciplina Agentes em Counter-Strike 14