What we have covered so far Chapters Introduction, 1, 2, 3, 4, 5, 6, beginning of 7 Introduction distinction between Academic AI and Game AI types of play: turn-based, semi-real-time, simultaneous action, real-time Chapter 1 2D vectors, length, normalized, dot product, angle between vectors determining when a point is above or below a plane having a location and an orientation; 2.5D representation physics: time, distance, mass behavior: position, velocity, acceleration, force. Euler integration to get velocity from acceleration, position from velocity force (= m*a) Chapter 2 Finite state machines Switch statement implementation state objects; execute method, ChangeState method, CurrentState variable Update method for everything Enter, Exit actions StateMachine as a separate object Message passing telegrams EntityManager (HashMap) MessageDispatcher; Discharge, DispatchMessage, DispatchDelayedMessages HandleMessage, OnMessage GlobalState Chapter 3 Autonomous movement: action selection, steering, locomotion MovingEntity: Velocity, Heading, Side, Mass, MaxSpeed, MaxForce, MaxTurnRate, boundingRadius, Position, Scale Vehicle class: World, Steering, timeElapsed Steering behaviors: Seek, Flee, Arrive, Pursuit, Evade, wander, obstacle Avoidance, Wall Avoidance (feelers), Interpose, Hide, Path following, Offset Pursuit Group Behaviors neighbors Separation, Alignment, Cohesion (Flocking) Combining steering forces Cell-space Partitioning Smoothing Chapter 4 simple soccer: soccer pitch, goals, ball, teams, goalkeeper,Field players regions frictional force TimeToCoverDistance ReceivingPlayer PlayerClosestToBall ControllingPlayer SupportingPlayer Team states: PrepareForKickOff, Defending, Attacking Field player states: GlobalPlayerState, ChaseBall, Wait, ReceiveBall, KickBall, Dribble, SupportAttacker, ReturnToHomeRegion Goal Keeper states: GlobalKeeperState, TendGoal, ReturnHome, PutBallBackInPlay, InterceptBall Key methods and tests isPassSafeFromOpponent, CanShoot, findPass, GetBestPassToReceiver Why approximations and estimations are good things. Chapter 5 Graphs, nodes, edges, adjacency lists Search algorithms depth first search - frontier of nodes in a stack breath first search - frontier of nodes in a queue iterative deepening Dijkstra's algorithm A* algorithm for pathfinding, common heuristic functions are Euclidian distance, Manhatten distance, Chebyshev distance, octile distance, linear approximation to Euclidian distance Fast pathfinding algorithm that follows walls Alternatives to square grids: hexagonal, triangular Simulated hexagonal Chapter 6 Scripts, scripting languages comments, variables, multiple assignment, types conditional structures: if, while, repeat, for