The Double-Action Kludge
Currently two actions are queued into the body for every time step. This hack, probably the most frequent kludge in the system, exists because of the slow rate that visual information enters the world model. The players get an up-to-date world model approximately every two timesteps. They then make a decision of how to act on this information for the next two turns, when their world information is updated.
The Intercept Kludge
The rate the server sends visual data to clients affected the player's ability to intercept the ball. Intercept and GoalieIntercept have been hacked to try to make interception more reliable. These perceptions and behaviors have multiple unnecessary, inaccurate, or misleading functions. In general, the functions should predict the position of the ball in the future and decide who will intercept the ball first by intersecting the trajectory of the ball with the radial distance that the players can travel. Then the closest player should run to the ball at the most conservative rate possible.
The Offensive Kludge
Several behaviors (CornerKick, CornerPush, Cross, GoalieIntercept, GoalKickStall, GotoCorner, OffenseCenter), were added days (hours) before the competition. We found that we were performing reliably against some teams from the 1999 competition and wanted to add some more sophisticated offensive capabilities for when we were in range to the goal. One of these behaviors resulted in the clustering of our players at two points near half field. These behaviors are not tested adequately.
The Sit-and-Wait Kludge
When testing our players against other teams, we found that our team was getting very tired. We programmed our team to sit and wait for new play. This tactic is probably not a bad idea, however, it's implementation needs to be analyzed, modified, and tested.
Have questions? Email David Evans