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
## How does the game-controller compare to ssl-refbox
4
+
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.
5
+
6
+
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.
7
+
8
+
Teams will also have the possibility to connect to a new interface, where they can change their goalkeeper number.
9
+
10
+
List of new features:
11
+
* Modern, scalable Web-UI
12
+
* More control of the state (change almost all values)
13
+
* Automatically save and restore state
14
+
* State history with undo button
15
+
* Includes state that was previously located in all autoRefs
16
+
* New Game Event concept for better interaction with multiple autoRefs
17
+
* Game protocol that documents all changes in the state
18
+
* New interfaces for autoRefs and teams
19
+
* A graphical client can be integrated
20
+
21
+
## How to start a new game?
22
+
* Go to Settings (top left button)
23
+
* Start new game
24
+
* Select team names
25
+
* Switch sides, if necessary (button)
26
+
* Select division, if necessary (button switch)
27
+
* Set goalkeeper ids
28
+
* Choose which team will start with kickoff
29
+
* divB: set ball placement capability
30
+
31
+
## How to end a game?
32
+
* Stop the game
33
+
* Make sure you are in the second half, extra second half or in shootout
34
+
* An 'End of Game' button should show up on the top
35
+
36
+
Purpose: Notify team AI about end of game and log it in log files.
37
+
38
+
## How to give a goal?
39
+
If an autoRef has sent a 'possible goal', this event can be accepted on the right.
40
+
41
+
To add a goal manually:
42
+
* New Event (on the top)
43
+
* Select Goal
44
+
* Insert parameters
45
+
* Add
46
+
47
+
## How to correct the current state of a team?
48
+
Most of the state can be changed with the edit buttons. Either in the settings modal, or in the team overview.
49
+
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.
50
+
51
+
## How to revert a change?
52
+
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.
53
+
The button reverts this line and all following.
54
+
55
+
## How to disable certain game events?
56
+
Go to 'Configure Behaviors' in the settings modal and select the game event.
57
+
A game event can be set to be:
58
+
* Always accepted
59
+
* Only accepted when there is a majority between all connected autoRefs (if only one autoRef is connected, it will always get a majority)
60
+
* Ignored (logged as an ignored event in the table)
61
+
62
+
## How does the continue button work?
63
+
Based on the current game events, the next command will be determined.
64
+
This command is sent, when the continue button is pressed.
65
+
The button shows the command that it will trigger.
66
+
67
+
## How can I see if my team is connected?
68
+
Active connections to teams are shown as an icon in the team overview.
69
+
70
+
## The controller crashes on start. What can I do?
71
+
Try deleting the `state-store.json.stream` file in the working directory. It may got corrupted.
72
+
73
+
## How can I use TLS?
74
+
Generate a new `server.crt` for the game-controller with [tools/newX509KeyPair.sh](./tools/newX509KeyPair.sh).
75
+
See instructions for the client part in the reference clients mentioned above.
Copy file name to clipboardExpand all lines: README.md
+4-77Lines changed: 4 additions & 77 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,8 @@ The [ssl-refbox](https://github.com/RoboCup-SSL/ssl-refbox) replacement that was
10
10
11
11

12
12
13
+
See [FAQ](./FAQ.md) for some general information.
14
+
13
15
## Usage
14
16
If you just want to use this app, simply download the latest [release binary](https://github.com/RoboCup-SSL/ssl-game-controller/releases/latest). The binary is self-contained. No dependencies are required.
15
17
@@ -30,82 +32,7 @@ There are some reference clients:
30
32
*[ssl-remote-control-client](./cmd/ssl-remote-control-client/README.md): A client that connects to the controller as a remote-control
31
33
*[ssl-ci-test-client](./cmd/ssl-ci-test-client/README.md): A client that connects to the CI interface of the controller
32
34
33
-
### Comparison to ssl-refbox
34
-
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.
35
-
36
-
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.
37
-
38
-
Teams will also have the possibility to connect to a new interface, where they can change their goalkeeper number.
39
-
40
-
List of new features:
41
-
* Modern, scalable Web-UI
42
-
* More control of the state (change almost all values)
43
-
* Automatically save and restore state
44
-
* State history with undo button
45
-
* Includes state that was previously located in all autoRefs
46
-
* New Game Event concept for better interaction with multiple autoRefs
47
-
* Game protocol that documents all changes in the state
48
-
* New interfaces for autoRefs and teams
49
-
* A graphical client can be integrated
50
-
51
-
### FAQ
52
-
#### How to start a new game?
53
-
* Go to Settings (top left button)
54
-
* Start new game
55
-
* Select team names
56
-
* Switch sides, if necessary (button)
57
-
* Select division, if necessary (button switch)
58
-
* Set goalkeeper ids
59
-
* Choose which team will start with kickoff
60
-
* divB: set ball placement capability
61
-
62
-
#### How to end a game?
63
-
* Stop the game
64
-
* Make sure you are in the second half, extra second half or in shootout
65
-
* An 'End of Game' button should show up on the top
66
-
67
-
Purpose: Notify team AI about end of game and log it in log files.
68
-
69
-
#### How to give a goal?
70
-
If an autoRef has sent a 'possible goal', this event can be accepted on the right.
71
-
72
-
To add a goal manually:
73
-
* New Event (on the top)
74
-
* Select Goal
75
-
* Insert parameters
76
-
* Add
77
-
78
-
#### How to correct the current state of a team?
79
-
Most of the state can be changed with the edit buttons. Either in the settings modal, or in the team overview.
80
-
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.
81
-
82
-
#### How to revert a change?
83
-
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.
84
-
The button reverts this line and all following.
85
-
86
-
#### How to disable certain game events?
87
-
Go to 'Configure Behaviors' in the settings modal and select the game event.
88
-
A game event can be set to be:
89
-
* Always accepted
90
-
* Only accepted when there is a majority between all connected autoRefs (if only one autoRef is connected, it will always get a majority)
91
-
* Ignored (logged as an ignored event in the table)
92
-
93
-
#### How does the continue button work?
94
-
Based on the current game events, the next command will be determined.
95
-
This command is sent, when the continue button is pressed.
96
-
The button shows the command that it will trigger.
97
-
98
-
#### How can I see if my team is connected?
99
-
Active connections to teams are shown as an icon in the team overview.
100
-
101
-
#### The controller crashes on start. What can I do?
102
-
Try deleting the `state-store.json.stream` file in the working directory. It may got corrupted.
103
-
104
-
#### How can I use TLS?
105
-
Generate a new `server.crt` for the game-controller with [tools/newX509KeyPair.sh](./tools/newX509KeyPair.sh).
106
-
See instructions for the client part in the reference clients mentioned above.
107
-
108
-
## Integration into your own framework
35
+
### Integration into your own framework
109
36
The game-controller is designed to be integrated into your own AI framework, if you do not want to implement your own controller for testing purposes.
110
37
111
38
Download the release binary from the Github release and run it from inside your framework.
@@ -153,7 +80,7 @@ If you can not use the `ci` mode, you can alternatively connect to the GC using
153
80
The API is defined in [proto/ssl_gc_api.proto](./proto/ssl_gc_api.proto) and available at the path `/api/control`
154
81
under the same port as the UI.
155
82
156
-
### Examples
83
+
####Examples
157
84
* Integration of the binary: https://github.com/TIGERs-Mannheim/AutoReferee/blob/master/modules/moduli-referee/src/main/java/edu/tigers/sumatra/referee/SslGameControllerProcess.java
158
85
* WebSocket API in Java: https://github.com/TIGERs-Mannheim/AutoReferee/blob/master/modules/moduli-referee/src/main/java/edu/tigers/sumatra/referee/control
0 commit comments