Information about the world can come from
Visual information arrives as relative distances and angles to objects in the player's view cone. Audial information could include information about global object locations from teammates. Sense_body information pertains to the client's own status including stamina, view mode, and speed.
Whenever new information arrives, it is stored in temporary structures with time stamps and confidences (1 for visual information, possibly less for audial information). Visual information is stored as relative coordinates until the agent's exact location is determined.
When it is time to act during cycle t, all of the available information is used to best determine the server's world state at the end of cycle t-1. If no new information arrived pertaining to a given object, the velocity and actions taken are used by the predictor to predict the new position of the object and the confidence in that object's position and velocity are both decayed.
When the agent's world model is updated to match the end of simulator cycle t-1, first the agent's own position is updated to match the time of the last sight; then those of the ball and players are updated.
Since visual information is given in coordinates relative to the agent's position, it is important to determine the agent's exact position at the time of the sight. When updating the world model to match the end of simulator cycle t-1, there may have been visual information with time stamp t-1 and/or t (anything earlier would have been incorporated into the previous update of the world model at the end of cycle t-1).
If the latest visual information has time stamp t-1, then the agent's own position is not updated until after the other objects have been updated as their coordinates are stored relative to the old agent position. On the other hand, if the latest visual information has time stamp t, or if there has been no new visual information since the last world-state update, the agent's status can be updated immediately.
In either case, the following process is used to update the information about the agent:
As the key focus of action initiative in the domain, the ball's position and velocity drives a large portion of the agents' decisions. As such, it is important to have as accurate and up-to-date information about the ball as possible.
The ball information is updated as follows:
Ball velocity is particularly important for agents when determining whether or not (or how) to try to intercept the ball, and when kicking the ball. However, velocity information is often not given as part of the visual information string, especially when the ball is near the agent and kickable. Therefore, when necessary, the agents attempt to infer the ball's velocity indirectly from the current and previous ball positions.
The biggest challenge in keeping track of player positions is that the visual information often does not identify the player that is seen [1]. One might be tempted to ignore all ambiguously-specified players. However, for strategic planning it is very useful to have a complete picture of the player positions around the field.
In general, player positions and velocities are determined and maintained in the same way as in the case of the ball. A minor addition is that the direction a player is facing is also available from the visual information.
When a player is seen without full information about its identity, previous player positions can be used to help disambiguate the identity. Knowing the maximum distance a player can move in any given cycle, it is possible for the agent to determine whether a seen player could be the same as a previously identified player. If it is physically possible, the agent assumes that they are indeed the same player.
Since different players can see different regions of the field in detail, communication can play an important role in maintaining accurate information about player locations.
From the complete set of player locations, an agent can determine both the defensive and offensive offsides lines. It is particularly important for forwards to stay in front of the last opponent defender in order to avoid being called offsides. Forwards periodically look towards the opponent defenders in order to increase the accuracy of their location information.