Agentes em Counter-Strike
IST, AASM, 2007-2008
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
Não existe valor de bónus este ano 
Agentes em Counter-Strike
4
Planeamento
•
1ª Entrega: 26 de Maio, 2008
–
Devem entregar a implementação completa do agente reactivo
•
Entrega final: 17 de Junho, 2008
•
Laboratórios:
–
Lab.8 – Introdução ao Projecto
–
Lab.9 – Agentes Reactivos (19 de Maio) Não esperem até esta data para
começar a trabalhar!!!! Usem a aula para tirar dúvidas/resolver problemas.
–
Lab.10 – Agentes BDI & Cooperação (26 de Maio)
–
Lab.11– Comparação de Agentes (2 de Junho)
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
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
–
•
update
Navegação Livre suporta navegação
automática para posições no mundo
–
moveToDestination
Mover para frente/trás, lados, rodar,
saltar e abaixar
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
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
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
Download

Introdução ao Projecto: Agentes em Counter