Dead Reckoning in Sports and Strategy GamesFrancois Dominic Laramee8.4Dayne MickelsonAI Game ProgrammingNovember 4, 2005Building a Sports AI ArchitectureTerry Wellmann8.5Dead Reckoning in Sports and Strategy GamesDead Reckoning (DR)•PREDICT FUTURE MOTIONEstimation the position of an object –given:•its original position•intended course•Speed•amount of time passedtDead Reckoning in Sports and Strategy GamesOrigins in Real Life•Developed for Navigators /Sailors•Not taking wind or current into consideration•The Stronger the effect of these outside factors the less reliable an estimate•For Heavy fog without GPS System•DR Provides enough info to steer clear of dangerous obstacles & estimate positionDead Reckoning in Sports and Strategy GamesReal Life Usage•Used in Military Exercises•Effectively know where enemy will be at time of attack•Estimate movement of enemy fleets /troops•Between instances of -•Visual Contact•Radar•Spy Satellite VisualizationDead Reckoning in Sports and Strategy GamesDR Use in Video Games•Military Simulation•Attack effectively if know where enemy will be located at time of attack•Sports Games•Exchange the ball/puck every few seconds between players. •Know where teammate /opponent will be•Offset Latency of Online GamesDead Reckoning in Sports and Strategy GamesImplementation of Dead Reckoning•PSEUDO-BROWNIAN MOTION•KINEMATICS•INERTIAL MOTIONDead Reckoning in Sports and Strategy GamesImplementation of Dead Reckoning•INERTIAL MOTIONMOST Basic Level of Dead ReckoningUses Newton’s First Law of MotionKnowing objects position and speed we can assume it will continue to travel in straight linePt= P0+vt This simple model is good for objects free of outside influenceAsteroid, Spaceship, hockey puckPx,t+1= Px,t+vxPy,t+1= Py,t+vyPz,t+1 = Pz,t+vzDead Reckoning in Sports and Strategy GamesImplementation of Dead Reckoning•INERTIAL MOTIONHuman Players can’t do much betterModel might be TOO GOODEX.) Shooting at enemy playerMay insert evaluation errors into calculationAdd random variable with mean = actual velocity. Dependent on Difficulty Level.Dead Reckoning in Sports and Strategy GamesImplementation of Dead Reckoning•PSEUDO-BROWNIAN MOTIONObject that is Extremely maneuverable and impossible to predict its velocity vector over lengthy periodsUFO or MosquitoDominated by overwhelming outside factorsAssume that object's initial position and magnitude of velocity vector is known.Compute average displacementDead Reckoning in Sports and Strategy GamesImplementation of Dead Reckoning•PSEUDO-BROWNIAN MOTIONInitial PositionAfter Time t PassedCalculate Spherical regionof space in which it could have movedDead Reckoning in Sports and Strategy GamesImplementation of Dead Reckoning•KINEMATICSIf objects initial velocity is unknown –it can be compute by 1stderivative of plotted positionEstimate future trajectoryby using its acceleration vectorAcceleration, Initial Position, & VelocityPt= P0+v0t+0.5at2Dead Reckoning in Sports and Strategy GamesImplementation of Dead Reckoning•KINEMATICSUSES•Ballistic Missileor Spaceship•Enemy Ship–Water current vector applied to enemy ship is same as AI’s own ship, so they actually cancel out •Human Player–from accel. buttons pressed•Can compute acceleration of any object in gameDead Reckoning in Sports and Strategy GamesDead Reckoning in Sports Games•AI is trying to shoot ball or puck past an active obstruction or at goal (goalie, defensemen, cornerback, hole...)•AI is trying to pass the ball or puck to human player (FOOTBALL = 3rddimension)ALL cases–AI will apply dead reckoning to computer most likely trajectory.Determine weather the human’s current trajectory will take him to an open spot or if another player will intercept passDead Reckoning in Sports and Strategy GamesDead Reckoning in Sports Games -SoccerDead Reckoning in Sports and Strategy GamesDead Reckoning in Sports Games -FootballDead Reckoning in Sports and Strategy GamesDead Reckoning in Military Simulation•Reconnaissance plane over ENEMY FLEET Provides Fleet’s:1.) position 2.) velocity 3.) headingBOMBING RAID CAN BE PLANNED•Determine targets of incoming missile attacksso can guide anti-missile defenses•Submarine SimulationFloating mines blink in and out of radar contactUse DR to determine volumes where mines likelyDead Reckoning in Sports and Strategy GamesPREDICT ENEMY MOVEMENT with FOG OF WAR•Each player periodically broadcasts a packet containing his location, velocity, and acceleration•During intervals between packets –each machine uses DR to compute approximate positions of all other players•When new incoming packet is received, the local state of the world is updated accordinglyDead Reckoning in Sports and Strategy GamesDead Reckoning in Online Games•Use DR to subdue the effects of network latency in multiplayer online games•CAN INFER AN AGENT’S INTENTIONS & GOALSDead Reckoning in Sports and Strategy GamesDead Reckoning other Applications$$$Building a Sports AI ArchitectureTerry Wellmann8.5NBA Inside DriveBuilding a Sports AI ArchitectureIN THE REAL WORLD–TEAMS SPEND HOURS PRACTICING TO:•Improve the skills of individual athletes•Train a group of independently thinking individuals how to function as a cohesive unitTHE GAME OF BASKETBALLGAME AI•Straightforward to solve•Simulating cohesive group decision making is more difficultBuilding a Sports AI ArchitectureGoals to Keep in Mind:PLANNING SPORTS AI ARCHITECTURE•KISS–No need to add extra complexity if doesn’t add to user’s experience•Break decisions down to various levels of responsibility•Plan out the architecture•Don’t be afraid to make a mistake•Don’t underestimate the power or randomness–allows user to observe behaviors that are more complex and realistic than they actually are.Building a Sports AI ArchitectureINDIVIDUAL AGENT (Player) PLANSPLANNING SPORTS AI ARCHITECTURE•Identify high level decisions the player will make and arrange like decisions together•Offensive•Defensive•Shared Plans•Position defender•Double team ball•Steal ball•Steal pass•Block Shot•Pass•Shoot•Drive•Run Play•Rescue Teammate•Take a Charge•Rebound•Inbound ball•Free Throw•ETC….Building a Sports AI Architecture•AgentPlan class serves as base class for all plansclass AgentPlan{…..float EvaluateInitiation();float EvaluateContinuation();void Initiate();void Update();……}INDIVIDUAL AGENT (Player) PLANSPLANNING SPORTS AI ARCHITECTUREEvaluates how Desirable it for a plan to executeEvaluate how Desirable it is for a plan to continue being used if it is currently executingPerforms 1-Time decision making each time the plan is initiatedCalled every iteration and is responsible for carrying out planBuilding a Sports AI Architecturefloat EvaluateInitiation();float EvaluateContinuation();Returns number (-1.0 –1.0) for each plan and allows you to build complex system where plans can be comparedEach plan evaluates the current situation independentlyand determines how appropriate it is to be usedReturn Large number (>1.0) if strongly encouragedAGENT (Player) PLANSPLANNING SPORTS AI ARCHITECTUREBuilding a Sports AI ArchitectureBreak logic into additional update function:1.) Handle the ball handler decision-making2.) Handle the non ball handler decision-makingPRIORITY RANK ORDER -if equal evaluation values1.) BallHandler_Shoot2.) BallHandler_Pass3.) BallHandler_Drive4.) BallHandler_RunPlayDon’t want to be on fast break and pull up for 3-PointerASSUME drive plan only returns >0 if player can drivetowards basket (aka. –their not well defended)AGENT (Player) PLANSPLANNING SPORTS AI ARCHITECTURE( > 0 )( .55 )( .55 )Building a Sports AI ArchitectureMust now make high level decisions in hierarchical systemFOR THE CURRENT PLAYER:POTENTIAL SUCCESS OF SHOT FROM CURRENT LOCATION-3 Pointer(guards OK, big men NOT OK)-BASED ON ATTRIBUTE POINTSTYPE OF SHOT-guard (layup)-big men (dunk)TELL PLAYER TO EXECUTEADDITIONAL AGENT (PLAYER) AIPLANNING SPORTS AI ARCHITECTUREBuilding a Sports AI ArchitectureSet of COMMON STATES, OFFENSIVE STATES, and DEFENSIVE STATESwith clear TRANSITION POINTSEach STRATEGYplan evaluates the current situation independentlyand determines how appropriate it is to be usedUse FINITE-STATE Machine for framework of architectureOFFENSIVE & DEFENSIVE STATEScomplement each otherInboundTransitionFrontcourtReboundRecover BallFree-throwTEAM MANAGEMENTPLANNING SPORTS AI ARCHITECTUREBuilding a Sports AI ArchitectureCOMMON STATES–neutral situation (ball not in play)Pre-gameSubstitutionTip-OffPost GameTime-outHalftimeHalftimeTRANSITIONS –triggered based on a game eventMade ShotA foulMissed ShotA timeoutA stealHalftimeTEAM MANAGEMENTPLANNING SPORTS AI ARCHITECTUREBuilding a Sports AI ArchitectureBuilding a Sports AI ArchitectureIN CONCLUSION•Dead Reckoning is an easy way to predict the trajectory of objects for the game.•Dead Reckoning can also be used to predict the behavior of a human player. •Sports present a unique set of challenges to AI application.•When user plays against AI, the gamemust CAPTUREthe abilities, personalities, and decision making of that player.•Agent plans, team management, agent AI, and agent mechanics can be applied to any sport game.•AI development is all about good planning and trial and error.
sammyc2007 5/28/2008 |
21 |
0 |
0 |
educational
sammyc2007 5/28/2008 |
46 |
2 |
0 |
educational
sammyc2007 5/28/2008 |
33 |
0 |
0 |
educational
amzolt 9/4/2008 |
15 |
0 |
0 |
amzolt 9/8/2008 |
23 |
0 |
0 |
Rabia06 3/26/2008 |
69 |
0 |
0 |
educational
Mythri 1/22/2008 |
74 |
0 |
0 |
educational
Mythri 1/22/2008 |
67 |
1 |
0 |
educational
PrivateLabelArticles 5/14/2008 |
114 |
4 |
0 |
educational
sammyc2007 5/28/2008 |
33 |
0 |
0 |
educational
sammyc2007 5/28/2008 |
32 |
1 |
0 |
educational
Mythri 1/22/2008 |
169 |
6 |
0 |
educational
Mythri 1/22/2008 |
100 |
0 |
0 |
educational
Mythri 1/22/2008 |
65 |
1 |
0 |
educational
Mythri 3/3/2008 |
487 |
5 |
0 |
educational
Mythri 3/3/2008 |
383 |
3 |
0 |
educational
Mythri 3/3/2008 |
320 |
2 |
0 |
educational
Mythri 3/3/2008 |
66 |
3 |
0 |
educational
Mythri 3/3/2008 |
378 |
7 |
0 |
legal
Mythri 3/3/2008 |
443 |
7 |
1 |
educational
Mythri 3/3/2008 |
295 |
1 |
0 |
educational
Mythri 3/3/2008 |
333 |
0 |
0 |
educational
Mythri 3/3/2008 |
297 |
0 |
0 |
educational
Mythri 3/3/2008 |
502 |
2 |
0 |
educational