Racing Game A.I.

advertisement
Racing Game A.I.
By Austin Borden, Qihan Long, and Jim Pratt
Defining the Racetrack
 Sectors
 Define on-track areas
 Interfaces
 Leading and trailing edges of a sector
Interfaces
 Right/left edge
 Driving line nodes:
 Racing line
 Overtaking line
Overtaking
 When the A.I. car gets close to an opponent, it will change
its driving line from racing to overtaking
 Multiple overtaking lines possible
 Burnout 1:15
Sectors
 Stores its distance from start, to finish line, and to other





vehicles.
Path types
Terrain types
Walls
Hairpin turns
Brake-Throttle
Path Types
 Defines the type of route ahead
 Normal
 Shortcut
 Long route
 Weapon pick-up route
 Winding road
 Drag strip
 A.I. chooses route depending on current situation
Terrain Types
 Adds another variable for A.I. to deal with
 Rugged terrain
 Slick
 If a route is a shortcut and also rugged, only vehicles capable
of traversing will choose this route
 Terrain Traversing
Racetrack Definition Conclusion
 The more information we provide, the less complex the A.I.
system has to be
Racing A.I. Logic
 Vehicles do not follow driving lines exactly, only guided by
them
 A.I. is supposed to emulate human input
 Done by creating an A.I. controller
Basic A.I. Framework
 Finite State Machines
 Allows decision making
 Fixed Time-Step
 Ensures that AI reacts quickly always
 Controls
 float dx;
 float dy;
//-1.0 to 1.0 for left to right steering
//-1.0 to 1.0 for max brake to max acceleration
Looking Ahead
 Cars look ahead for obstacles and turns
 The faster it’s moving, the further it looks to smooth path
Wall Avoidance
 Position is predicted by using the current velocity and scaled
by how far in the future we are predicting (seconds)
 Correction amount is then applied to steering depending on
which wall car is closest to
 If predicted position is outside of sector, brakes are applied
Hairpin Turns
 Looking too far ahead during a sharp turn will cause A.I. to
cut corners
 To fix this, car looks for hairpin flags and shortens the look
ahead distance if flags are found
Under/Over-Steer
 With simple physics cars can spin out due to over steering
 Cars can also miss turns due to under steering
 Based on sideways velocities of wheels
Steer Correction
 Depending on over or under-steering, a correction value is
added to the current steer value
 Overcorrection is prevented by the understeer/oversteer
range
 Colin McRae Dirt 2
Catch-Up Logic
 If A.I. is winning…
 Limit A.I.’s top speed in proportion to distance leading
 Brake early for corners, accelerate slowly out of turns
 Take long routes/ unstable terrain routes
 Get worse weapons/ only target other A.I.
 Opposite can be used if A.I. is trailing
 Good way of making a race challenging for all skill levels
 Diddy Kong Racing 1:45
 Shadows of the Empire 5:50
Catch Up Logic Case Study:
Pure
The Rubber Band System
Racing Grouping in Pure
Difficulty Regulation
 Powerful items
 Intelligence modification
 Similar Placing
Tuning the Car Handling
 If each car has different characteristics, tuning the code can
be time consuming.
Adjusting the Parameters
 Assign each parameter with a minimum and maximum value.
 Modify the parameter depending on whether the lap time
decreases or increases.
 Time for this process can be reduced by running the game as
fast as possible.
Real Time Editing
 Real Time Track Modification
 An important tool in AI creation is the ability the change the
track in real time.
 Allows problems in the track to be quickly modified and tested.
 User Control Overriding AI
 Allows tester to take control when AI becomes stuck or
incapable of navigating a certain part of the track.
 Can be used to test the AI on specific parts of the track.
Layer Behavior
 Reactionary system
 Modular approach makes it easy
 Multiple inputs for one output
 Output contention system ultimately determines output
 Layer Interactions:
 Overriding
 Internal states
 Altering input for other layers
Example of Layers
Path Following Layer
 Turning and speed dealt with separately
 Attempt to keep car on line
 Cornering regulation monitors speed
 Corners and apex determined
 Formulate max speed and braking zone distance
 Dynamic according to current speed
 Braking, cruise, full throttle
Tactical Racing Layer
 Makes competitive racing choices (driver into a racer)
 Analyzes situation and races accordingly
 Find optimum road position
 Generates new paths
 Safe guards in place
Visual Perception
 8 eyes, 4 pairs
 Determines speed and position of cars and environment
 Determines desirability of current position based on
environment and position of other cars
Fine Grain Avoidance Layer
 Priority
 Needed when cars want to occupy same space
 Relative car position determines who yields
 Prevents collisions by overriding
 For passing, steering is moderated
 For linear, speed is moderated
Determining Racing Lines
 Problems with user made content
 Track detail hard to take into account
 Lines of minimum curvature are limiting, boring
 Midway points across track
 Forces used to smooth out sharp turns
 Safe guards
Competitive AI Racing Under Open
Street Conditions
 Allows an AI controlled vehicle to traverse an random
network of roads.
 Finding the correct route to destination.
 Calculating steering brake and throttle values.
Library Interface
 RegisterRoute Interface
 Holds a list of intersections and roads
 Registers the path through the map
 Called when entering a new route
 DriveRoute Interface
 Used on a lower level than the RegisterRoute interface
 Calculates steering, throttle, and brakes
 Used for driving forward, backing up, colliding, and stopping.
Navigating the City
 Find the current location
 Update the road cache
 When a road is fully traversed, loads a new road into the cache.
 Emulate all possible routes
 Finds possible routes
through the road
Avoiding obstacles
 Check for obstacles after the route is calculated.
References
 Champandard, Alex J. "Paris Game AI Conference '09: Highlights, Photos &





Slides." Game AI for Developers. Web. 24 Mar. 2010.
<http://aigamedev.com/open/coverage/paris09-report/#session13>.
"Gamasutra - Features - The Pure Advantage: Advanced Racing Game AI."
Gamasutra - The Art & Business of Making Games. Web. 24 Mar. 2010.
<http://www.gamasutra.com/view/feature/3920/the_pure_advantage_adva
nced_.php>.
"Mario Kart Wii: Those Damn Powerups." GamerBunny Speaks. Web. 24 Mar.
2010. <http://gamerbunny.wordpress.com/2008/05/19/mario-kart-wiithose-damn-powerups/>.
Rabin, Steve. AI Game ProgrammingWisdom 2. Hingham, MA: Charles River
Media, 2004. Print.
Rabin, Steve. AI Game ProgrammingWisdom. Hingham, Mass.: Charles River
Media, 2007. Print.
Youtube. Web. 24 Mar. 2010. <http://youtube.com>.
Questions?
Download