You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Defines the communication protocol version between the players and the game server. The players also inform to the server what protocol they will use. If incompatible, the server will reject the player.
Breakpoint that breaks the game before each player orders set be processed during the "Playing" state Each player's order set will be processed at once, so the breakpoint controls the process based on players, not on orders.
TURN
1
Breakpoint that breaks the game before each player turn be processed during the "Playing" state
GameSetup.ListeningMode
Name
Number
Description
TIMER
0
respect the timer defined by listening duration
RUSH
1
immediately after all orders
REMOTE
2
wait external remote control (dev only)
GameSetup.StartingMode
Name
Number
Description
NO_WAIT
0
start the game as soon as all players are connected
WAIT
1
do not start until the master watcher request (gRPC call to Broadcast service)
Broadcast
Service to be consumed by clients (e.g. frontend, app, etc) to watch the match.
The game server implements a Broadcast service. This service may help you to control or watch the game during
training sessions.
The game server implements a Remote service that allows you to control the game flow.
This service may help you to control or watch the game during training sessions.
The game server only offers this service on debug mode on.
Player that is currently holding the ball. Null if the ball is not holden.
Catch
Order to try to catch the ball. The player can only catch the ball when the player is touching the ball.
Only one catching order can be executed in a turn. So, if more than one player try to catch the ball in the same
turn, the first processed catch order will succeed, and the next ones will fail.
Only used in official matches to guarantee that only one process will assume that player position (team and number). The bot process will receive this token as an argument, and must send it to the server in this message.
Position where the player must be set at "GetReady" state (at beginning of the match or after a goal)
Jump
Changes the goalkeepers velocity in a higher speed.
The goalkeepers may move kicker than other players when they jump, however the jump movement cannot be interrupted
after triggered. (read specs to find out the number of turns the jump lasts)
The kick order is only executed by the ball holder, and it is processed immediately.
Important: The kick velocity is summed to the current ball velocity.
The kick speed will suffer a power reduction proportionally to the player direction when the kick is not in the
same direction of the player direction. The reduction is calculated based on the angle with the player direction
using the formula SpeedReducerFactor = 0.5 + (0.5 * ((180 - ang) / 180))
In summary, the speed will by reduced proportionally to the angle from 100% at 0 degrees until the limit of
50% at 180 degrees.
Kick velocity (it won't be necessarily the final ball velocity)
Move
Order to ask the server to change the player velocity (direction and speed).
This order replaces the current player velocity, and the new velocity attribute will be immediately processed
in that turn. There is a limit speed to the player. The server will cap the velocity if the request is higher than
the limit.
indicates the the player is jumping (goalkeepers only)
ShotClock
Stores the side of the team in attack and the time remaining holding the ball.
The team side is changed as soon a bot of the defense team catch the ball.
The game is waiting for all players be connected. There is a configurable time limit to wait for players. After this limit expires, the match is considered over.
GET_READY
1
The game resets the players position to start the match or to restart the match after a goal.
LISTENING
2
The game is waiting for players orders. There is a configurable time window for this phase. After the time limit expires, the server will ignore the missing orders and process the ones it got. (when running on dev mode, the server may allow different behaviours)
PLAYING
3
The game is executing the players' orders in the same sequence they were gotten. If the ball is NOT been holden, its velocity will be processed first. Otherwise, it position will be updated when the ball holder movement be processed. If there is no movement orders from a player, but it has speed greater than 0, it will be processed after all its orders are processed. Each player orders will be processed in the same sequence they were included in the message (e.g. first move, than kick) The ball kick is processed immediately after the order (the ball position is updated as its new velocity after the kick)
SHIFTING
4
The game interrupt the match to shift the ball possession. It happens only when the shot time is over (see shot_clock property). The ball will be given to the goalkeeper of the defense team, and the next state will "listening", so the bots will not have time to rearrange before the next turn.
OVER
99
The game may be over after any phase. It can be over after Waiting if there is no players connected after the time limit for connections It can be over after GetReady or Listening if there is no enough players (e.g. connection lost) And it also can be over after Playing state if that was the last turn of the match.
OrderResponse.StatusCode
Name
Number
Description
SUCCESS
0
UNKNOWN_PLAYER
1
NOT_LISTENING
2
WRONG_TURN
3
OTHER
99
Team.Side
Name
Number
Description
HOME
0
Team playing on the left side of field
AWAY
1
Team playing on the right side of the field
Game
Service provided by the game service to the players (clients).