The ssl-game-controller replaces the ssl-refbox. With the introduction of automatic referees, there was demand for several new features. To accommodate these, the ssl-refbox has been rewritten to take advantage of modern technologies.
The referee message, that is send to the teams, has no breaking changes. Teams do not need to change their systems. Additional data will be send with the referee messages though. To read those changes, teams can update their .proto
files from this repository to take advantage of it.
Teams will also have the possibility to connect to a new interface, where they can change their goalkeeper number.
List of new features:
- Modern, scalable Web-UI
- More control of the state (change almost all values)
- Automatically save and restore state
- State history with undo button
- Includes state that was previously located in all autoRefs
- New Game Event concept for better interaction with multiple autoRefs
- Game protocol that documents all changes in the state
- New interfaces for autoRefs and teams
- A graphical client can be integrated
- Go to Settings (top left button)
- Start new game
- Select team names
- Switch sides, if necessary (button)
- Select division, if necessary (button switch)
- Set goalkeeper ids
- Choose which team will start with kickoff
- divB: set ball placement capability
- Stop the game
- Make sure you are in the second half, extra second half or in shootout
- An 'End of Game' button should show up on the top
Purpose: Notify team AI about end of game and log it in log files.
If an autoRef has sent a 'possible goal', this event can be accepted on the right.
To add a goal manually:
- New Event (on the top)
- Select Goal
- Insert parameters
- Add
Most of the state can be changed with the edit buttons. Either in the settings modal, or in the team overview. This should only be used in case of misbehavior! Goals, yellow cards, etc. should be given through the respective events ('New event' button) or in the manual view.
The game control allows reverting certain actions like game events or stage changes. For these actions, a revert button will show up in the protocol table. The button reverts this line and all following.
Go to 'Configure Behaviors' in the settings modal and select the game event.
A game event can be set to be:
- Always accepted
- Only accepted when there is a majority between all connected autoRefs (if only one autoRef is connected, it will always get a majority)
- Ignored (logged as an ignored event in the table)
Based on the current game events, the next command will be determined. This command is sent, when the continue button is pressed. The button shows the command that it will trigger.
Active connections to teams are shown as an icon in the team overview.
Try deleting the state-store.json.stream
file in the working directory. It may got corrupted.
Generate a new server.crt
for the game-controller with tools/newX509KeyPair.sh.
See instructions for the client part in the reference clients mentioned above.