next up previous
Next: Smart Dribbling Up: Agent Skills Previous: Kicking

Dribbling

Dribbling is the skill which allows the player to move down the field while keeping the ball close to the player the entire time. The basic idea is fairly simple: alternate kicks and dashes so that after one of each, the ball is still close to the player.

Every cycle, the agent looks to see that if it dashes this cycle, the ball will be in its kickable area (and not be a collision) at the next cycle. If so, then the agent dashes, otherwise it kicks. A kick is always performed assuming that on the next cycle, the agent will dash. As an argument, the low-level dribbling code takes the angle relative to the direction of travel at which the player should aim the ball (see Figure 4). This is called the ``dribble angle'' and its valid values are tex2html_wrap_inline797 . Deciding what the dribble angle should be is discussed in Section 4.3.

   figure146
Figure 4: The basic dribbling skill.

First the predicted position of the agent (in 2 cycles) is calculated:

eqnarray151

where tex2html_wrap_inline799 is the predicted player position, tex2html_wrap_inline801 is the current position of the player, v is the current velocity of the player, pdecay is the server parameter player_decay, and a is the acceleration that a dash gives. The a value is usually just the dash power times the dash_power_rate in the direction the player is facing, but stamina may need to be taken into account.

Added to tex2html_wrap_inline811 is a vector in the direction of the dribble angle and length such that the ball is in the kickable area. This is the target position tex2html_wrap_inline813 of the ball. Then the agent gets the desired ball trajectory by the following formula:

eqnarray161

where traj is the target trajectory of the ball, tex2html_wrap_inline817 is the current ball position, and bdecay is the server parameter ball_decay. This process is illustrated in Figure 4.

If for some reason this kick can not be done (it would be a collision for example), then a turnball kick is done to get the ball in the right position. Then the next cycle, a normal dribble kick should work.

As can be seen from these calculations, the basic dribbling is highly predictive of the positions and velocities of the ball and player. It is also quite local in that it only looks 2 cycles ahead and recomputes the best action every cycle.



next up previous
Next: Smart Dribbling Up: Agent Skills Previous: Kicking



Peter Stone
Mon Nov 30 20:08:29 EST 1998