Counter-Strike AgentsIST, AASM, 2006-2007Celso Miguel de Melo
Counter-Strike Agents 2
The Game• Counter-Strike is a First Person Shooter (FPS) game
• Counter-Strike is a mod for Half-Life (HL)
– Other mods: Team Fortress, Deathmatch Classic, Natural Selection, etc.
• Furthermore, it is a team-based FPS
• There are two teams: terrorists and counter-terrorists
• There are three kinds of maps:
– Bomb defuse
– Hostage rescue
– VIP Assassination
• In bomb defuse maps, terrorists are required to plant and detonate a bomb while counter-terrorists try to prevent them
Counter-Strike Agents 3
The Project• The goal is to develop intelligent agents for both teams in Counter-Strike
• The project focuses on bomb defuse maps
– Maps with destructible obstacles, doors or elevators are avoided
• The main objectives, worth 80% of the grade, include:
– Develop a reactive agent
– Develop a BDI agent
– Develop cooperation strategies for both teams
– Evaluate and compare the aforementioned architectures
• A secondary objective, worth 20% of the grade, is to explore an additional topic
– Be creative. What would you like to explore?
– Some suggestions: emotions, interaction with humans and learning
Counter-Strike Agents 4
The Tournament• At the end of the semester, projects will be confronted in a tournament
• Submitted agents must conform to the provided interfaces
– Cheating implies immediate disqualification
• Score in the tournament is defined by:
– Whether the goal was achieved
– Number of kills
– Time remaining when the goal was achieved
• The best four teams get a bonus on the project’s final grade
– 1st place: 2,0 points
– 2nd place: 1,5 points
– 3rd place: 1,0 points
– 4th place: 0,5 points
Counter-Strike Agents 5
Schedule• 1st Delivery: 21st of May, 2007
– Requires full implementation of the reactive agent
• Final Delivery: 19th of June, 2007
• Laboratories:
– Lab.7 – Introduction to the Project
– Lab.8 – Reactive Agents (1)
– Lab.9 – Reactive Agents (2)
– Lab.10 – 1st Delivery
– Lab.11 – BDI Agents & Cooperation
– Lab.12 – Agent comparison
Counter-Strike Agents 6
AASM CS Agents Platform• The AASM CS Agents Platform supports the creation of agents in Counter-Strike
• Provides sensors and actuators agents use to interact with the world
• The platform modules support:
– Navigation, free navigation and waypoint navigation
– Combat
– Finances
– Vision, Hearing and Radar
– Communication
• Regarding the inner workings, agents in Counter-Strike run as a HL mod
– A mod is a Dynamic Link Library (DLL) file which is generated from the code
Platform installation demonstration
Counter-Strike Agents 7
Agent Lifecycle
modAPI:StartFrame
Agent::main
Agent::think
Agent::preThink
Agent::postThink
The agent’s
decision cycle
Counter-Strike Agents 8
Navigation Interfaces (1/2)• The Navigation Interface supports basic
navigation actuators
– Move forward, backwards and sideways, rotating, jumping, ducking
• The Free Navigation Interface supports automatic navigation to world positions
– Builds on the Navigation Interface
• The Waypoint Navigation Interface supports graph-based navigation
– Graph positions are called waypoints
– Waypoints are knowledge about the world: normal, goal, camping, etc.
– Pathfinding includes A* search and the F-W shortest path algorithm
– Separate reactive interface considers only visible waypoints
– Builds on the Free Navigation In.
moveToDestination
update
Reached destination?
Yes
No
Counter-Strike Agents 9
Navigation Interfaces (2/2)• Maps with reviewed waypoint data include: de_dust, de_dust2, de_airstrip,
de_inferno, de_piranesi, de_survivor
• These can be used as reference throughout development
• However, evaluation and tournament are not limited to them
• Collision detection and handling solutions are provided with the platform
– See the agents::interfaces::ICollisionHandler interface
• But, these algorithms may be extended
– See the agents::interfaces::ICollisionManager interface
• Counter-Strike is a complex multi-agent system, collision handling is very much part of the challenge of building intelligent agents
Navigation demonstration
Counter-Strike Agents 10
Combat & Finances Interfaces• The Combat Interface supports:
– Aiming
– Firing
– Weapon selection
– Arming/defusing the bomb
• The Finances Interface supports buying weapons and armory
Combat & Finances demonstration
Counter-Strike Agents 11
Vision, Hearing and Radar Interfaces• The Vision Interface supports:
– A 90º field-of-view constraint
– Seeing other agents
– Seeing weapons on the floor
– Seeing the bomb
• The Hearing Interface supports:
– Perceiving the direction to the bomb based on bomb ticking
– Influenced by distance and time to detonation
• The Radar Interface supports:
– Perceiving teammates location with limited precision
– Perceiving the bomb location for terrorists
Counter-Strike Agents 12
Communication Interface• Two kinds of communication are supported: chat and radio
• Chat provides flexible generic communication
• Radio provides predefined communication with sound
• Besides message content, the following information is available to the receiver:
– Timestamp
– Sender identification and radar location
Counter-Strike Agents 13
Debugging• Step-by-step debugging in MS Visual Studio 2005
– See {SDK Home}\aasmCsAgents\docs\debugging.htm
• Debug library
– Print to console
– Log to a file
– See the util::debug namespace
Counter-Strike Agents 14
Further Documentation• API files at {SDK Home}\aasmCsAgents\docs\api\index.html
• Help on installation, debugging and waypoints at {SDK Home}\aasmCsAgents\docs\
• Resources in the ‘Projects’ section at the course’s homepage