Presentation is loading. Please wait.

Presentation is loading. Please wait.

Simple Soccer GAM 376 Robin Burke Fall 2006.

Similar presentations


Presentation on theme: "Simple Soccer GAM 376 Robin Burke Fall 2006."— Presentation transcript:

1 Simple Soccer GAM 376 Robin Burke Fall 2006

2 Outline Game Implementation Project #1

3 Admin Homework #3 Grading Upcoming due today I am behind
but no other homework due for awhile Upcoming 10/9: Design phase of Soccer project 10/11: Midterm 10/17: Soccer project

4 Simple Soccer A 2D sports game 5 agents per team 1 ball 1 field
4 field players 1 goal keeper 1 ball 1 field 2 goals

5 Architecture Main loop SoccerPitch Update SoccerPitch Redraw
responsible for updating what is on the field

6 SoccerPitch Walls on all four sides Regions Goals
no throw-ins or goal kicks Regions 18 rectangular regions for positioning players Goals each tracks number of goals scored

7 MovingEntity Abstract class for all moving objects Subclasses
has steering behaviors Subclasses SoccerBall FieldPlayer

8 SoccerBall embeds some of the physics of its motion FuturePosition
Δx = v Δt + ½ af Δt2 where af is the deceleration due to friction TimeToCoverDistance Δt = (v' – v) / af but what is v' issues what if inner part is negative? then the ball won't get that far what is the initial velocity, v?

9 Velocity Reset What really happens?
a player swings a foot moment of interaction with ball impulse new velocity results really it is a foot/ball collision But not necessary to model it this way assume that the ball is stopped before a kick players can't add to existing velocity OK, because it looks OK much easier to model Initial velocity equals impulse acceleration equals F / m So we can calculate TimeToCoverDistance given two points and a force

10 Simple Soccer Implementation of a 5-player soccer team
Two state machines "Team state" "Player state" Tiered state machines common in tactical FPS games teams have a tactical state "flanking" and each member has its own role "covering fire"

11 Team state kickoff offense defense everybody go to default position
not true soccer kickoff offense look for opportunities to get a pass upfield from the player with the ball defense go to defensive position closest player chases ball

12 Offense Kickoff Defense other team possession goal scored
our team possession Kickoff Defense goal scored play starts

13 Team Behaviors Tracks passes Tracks ball Controlling player
receiving player of a pass set when a pass is made Tracks ball closest player to the ball constantly updated Controlling player the player with the ball Supporting player a player that will get into position for a pass

14 Support Spot Considers 30 positions on the opponent's half of the field Calculates which position can receive a pass and can shoot a goal and are close enough to ball Supporting player will try to go to the best support spot

15 Player state defense offense chase ball if you're the closest
move toward goal with ball pass if possible without ball (if supporting player) move to support spot ask for pass otherwise do nothing

16 Steering behaviors tracking the ball "visually" chasing the ball
steering to support position goalie has special behavior to get in blocking position

17 State Machine Global state Wait ReceiveBall KickBall Dribble ChaseBall
routes messages Wait ReceiveBall accept a pass KickBall make a pass Dribble try to move the ball downfield ChaseBall try to take possession of the ball ReturnToHomeRegion go home for kickoff SupportAttacker go to supporting position

18 SupportAttacker ReceiveBall ChaseBall Dribble ReturnToHR KickBall Wait
MSG: Support MSG: Receive_Ball SupportAttacker ReceiveBall MSG: Go_Home not closest in receiving range ChaseBall Dribble kicked ReturnToHR in range can't shoot or pass can't kick KickBall closest at home Wait goal or pass attempt

19 Goal Keeper Different states TendGoal InterceptBall
interpose self between ball and goal midpoint InterceptBall if within tending range PutBallBackIntoPlay passes to nearest player

20 Key Calculations Is a pass safe? Is it possible to shoot?
predict trajectory of ball predict closest intercept of each opponent Is it possible to shoot? test positions along the goal mouth does this randomly Who to pass to? tests all of the teammates for validity and nearness to goal Where to place the pass? out of opponents range within receivers range

21 Demo

22 SteeringSoccerLab Not the same as Buckland's
Allows multiple team implementations Records the CPU time used by each AI implementation Don't use Buckland's code

23 Abstract class AbstSoccerTeam Abstract functions
all soccer teams must subclass Abstract functions CreatePlayers teams can have different player setups InitStateMachine for team state machine teams can have different team FSMs InitPlayers Name

24 How to allow different opponents?
Need students to make their own soccer teams need to run tournament in which teams compete don't want to recompile when adding a team How to make extensible code that doesn't need recompilation? In particular how can I create an instance if I don't know the name of the class

25 AbstractFactory

26 Registration How to know which factory object to use?
Static instance that registers a name on instantiation Table associating factories with names Result dynamic object creation (A bit easier in Java using reflection)

27 Implementation TeamMaker class
includes a static "registry" member table of name, class pairs has a newTeam method looks up the factory class in the table calls its makeTeam method The class stored here is a subclass of TeamMaker must implement makeTeam makes an instance of the right team object must include a static member with an instance of itself when that instance is created it calls the TeamMaker constructor with a name the factory class is then registered under that name

28 Project #1 Two parts Design (10/6) Implementation (5 pm, 10/17)
tell me what you want to do to create a better team Implementation (5 pm, 10/17) deliver implementation I will compile and check compatibility Tournament (10/18) In class Last minute changes OK

29 Tournament rules Round-robin Scoring
1 game matches 5 minutes / match Scoring Lower scoring team get a bonus if they used less CPU time 20% less CPU = 1 point Ties go to the most efficient team Degenerate strategies disqualified Randomized elements must stay

30 Monday Lab using SimpleSoccer


Download ppt "Simple Soccer GAM 376 Robin Burke Fall 2006."

Similar presentations


Ads by Google