Cross - Half Life 2/Counter Strike()

Download Report

Transcript Cross - Half Life 2/Counter Strike()

Half life 2/ Counter Strike:
Source bot
Charlie Cross
CIS 488
2-14-05
Background
• Counter Strike is a multiplayer modification for
Half life, released in June of 1999.
• Valve software hired the counterstrike team and
ported Counter Strike to their new Source engine.
• Outsourced a spin off single player productCounter Strike: Condition Zero.
• Ended up being finished at Turtle Rock Studios.
Background (2)
• Turtle Rock developed artificial intelligence
for condition zero.
• AI was ported to CS: Source last month.
AI features:
• Navigates map using automated systems (waypoints)
combined with human teaching (navigation meshes).
• Communicates with human players, telling them where
enemies are located.
• Follows human instructions (e.g. “follow me”, or “team
fall back”)
• Selects best weapon for tactical situation. Avoids tactically
disadvantageous situations.
• Conveys range of emotion-driven behaviors. Rushes
aggressively when winning or retreats when outnumbered.
Navigation Meshes
Navigation
• Use of nav meshes allows bots to be less
predictable and to use less structured behavior the
way humans do.
• A* pathfinding.
• Uses reactive obstacle avoidance (like the quake
bots) To avoid crashing into walls and other
objects.
• Monitor’s average velocity to detect when the bot
is “stuck”, then uses a “random wiggle” to try to
jerk free. (I have never seen this happen)
Using the tools to build paths. (Source: Mike
Booth’s presentation at GDC)
Using and viewing the environment
• Nav meshes include “hiding spots” that are
labeled by the programmer.
• When retreating or “camping” the bot will
find a hiding spot to ambush the opponent.
• Looks around smoothly and avoid jerky
movements.
• Looks around corners and checks openings.
Tactics
Tactics and Bot emotions
•
•
•
•
Nav Areas hold a danger value.
Increased danger means increased cost (A*)
This forces bots to change routes.
Danger values are increased when bad things
happen (such as team mates dying)
• Morale determines level of aggression.
• High morale: Bot is on winning team, bot is
killing enemies.
• Low morale: Bot is on losing team, bot is killed,
hurt.
Combat and Weapon selection
• Since it is a rule based system, there are an
elaborate collection of rules to determine combat
actions.
• Examples:
– Using the appropriate weapon for the range: (Sniper
rifles if enemy is far, pistol if close.)
– Aiming for the head.
– How to use grenades effectively (flush out enemies if
attacking, slow them down if defending)
Team awareness
• Follows the leader (you)
• Communicates enemy locations
• Uses stealth (sneaking slowly to reduce
noise) when heavily outnumbered
• Avoids stupid problems like shooting
teammates, (will yell at you if you do).
Effects on Gameplay
• Why make a bot for a multi-player game?
– Some servers don’t have a lot of players on
them. Bots can fill in the gaps to make a full
team.
– Lousy internet connection wont prevent players
from enjoying game.
– Bots don’t accuse you of cheating when you
kick their ass.
Strengths and weaknesses
• Strengths:
– Bot is almost convincingly human.
– Bot difficulty is scalable to match different skill levels.
– Bots don’t change flow of game, they are just like other
players.
• Weaknesses
– Bots can see perfectly in dark areas.
– Bots often prioritize killing enemies over completing
mission objectives. (Then again, so do most human
players.)