Create an AI that can win over an other AI by kicking and playing rough.
The inspiration for this project comes from real-life competitions in which robot designers have to create robots that play soccer/football. The goal of these projects have been to create cooperative AI, where several individuals work together as a team. It is an interesting topic, hence this "game".
The game is loosely based on football (soccer). There are two teams of five (5) or more individuals each (the exact number has yet to be determined). There are no fixed roles in these teams, the roles are up to the bot implementers. The teams are allowed to move all over the game field, but they all start in their own zone.
The players have a surface area, and are placed on a field with two halves, one half is their own zone and the other half is the opposite team's zone. The players have a position and a surface area, they also have two actions:
Both actions are valid actions and both are part of the game. Shooting the ball will give the ball an impulse in a given direction (any direction that moves the ball away from the player) and kicking another player will have a similar effect, but on that player. That impulse is, however, much lower (since the players weigh more than the ball).
There is also a "ball" and the object of the game is to score by getting the ball in the opposite team's goal. When the total game time is up, the team with the most scored goals wins. The players should help each other manipulate the ball into the goal of the opposite team. Goals in the team's own goal counts as a goal for the other team.
Each player is basically a circle with a weight. It has a vector which is the direction it is facing and the speed in which it is travelling in that direction (separate entities). The direction of the player can only be changed a certain number of degrees and the speed can only be changed a certain amount (to a certain limit). These limitations can be set per game.
When a player comes within a certain range of another player, the player may choose to kick the other player, which will then receive an impulse much as the ball (but much smaller). This is not an illegal action and is part of the game.
The ball is also a circle with a weight, much less than a player. When a player hits the ball it gives the ball an impulse and when the ball hits a player the reverse is also true. When the ball is within a certain range of the player, the player may choose to kick the ball, which will then get a large impulse in the direction the player is facing.
No player may leave the playing field. All players have floating point coordinates within the playing field, as does the ball.
Each player will be allotted a certain amount of time for updating its behaviour (the AI bit of the bot). If that time is exceeded, it will be skipped the next time it should have been updated until it has plus time to use for AI.
The players will be updated in random order each turn (the turn ends when all players have moved once and the ball has been updated).
The information available to each player is limited to that provided by the framework. Most of the time, all players will be available for analysis for each player, but this might change (and the information may not always be accurate, to reflect that it is not always possible to have total control of everything in a game).
Go back to the Shootball main page.