Skip to content

Commit c3a6d85

Browse files
committed
Update py2d documentation from README
1 parent 64500a1 commit c3a6d85

File tree

1 file changed

+94
-9
lines changed

1 file changed

+94
-9
lines changed

docs/6-basecode/py2d/index.md

Lines changed: 94 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,36 @@ PY2D base is the most power full base code for RoboCup 2D Soccer Simulation whic
1616

1717
For more information, please refer to the [documentation](https://clsframework.github.io/).
1818

19-
You can find more information about the services and messages in the [IDL section](../../3-idl/protobuf.md).
19+
You can find more information about the services and messages in the [IDL section](https://clsframework.github.io/docs/idl/protobuf).
2020

2121
there are many different ways to run the base code, in the next section, we will explain the easiest way to run the base code.
2222

23+
## Results
24+
25+
### .vs Helios Base
26+
27+
| Summary Statistics
28+
29+
- **Game Count**: 100
30+
- **Goals**: 234 : 143 (diff: 91)
31+
- **Points**: 212 : 71 (diff: 141)
32+
- **Average Goals**: 2.34 : 1.43 (diff: 0.91)
33+
- **Average Points**: 2.12 : 0.71 (diff: 1.41)
34+
- **Win**: 65, **Draw**: 17, **Lost**: 18
35+
- **Win Rate**: 65.00%
36+
- **Expected Win Rate**: 78.31%
37+
38+
| Goals Distribution
39+
40+
```mermaid
41+
xychart-beta
42+
title "Diff Goals Distribution"
43+
x-axis [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
44+
y-axis "Percentage"
45+
bar [0,4,2,5,7,17,27,19,13,4,2]
46+
line [0,4,2,5,7,17,27,19,13,4,2]
47+
```
48+
2349
## Quick start
2450

2551
### Preparation
@@ -61,7 +87,7 @@ Finally, to watch the game, download the monitor from [the original repository](
6187

6288
### Running a game
6389

64-
This section assumes you have installed the server & proxy using the scripts (as mentioned above).
90+
This section assumes you have download (installed) the server & proxy using the scripts (as mentioned above).
6591

6692
To run a game, you must first run the RoboCup Soccer Server, then your team and opponent team, and finally the monitor.
6793

@@ -101,7 +127,7 @@ To watch the game, you must run the rcssmonitor or soccerwindow2. press <kbd>Ctr
101127

102128
### start.py Arguments
103129

104-
##### Team and Name Customization
130+
| Team and Name Customization
105131

106132
| Argument | Short | Description | Default Value |
107133
|---------------------------|-------|------------------------------------------------------------------|-----------------|
@@ -110,7 +136,7 @@ To watch the game, you must run the rcssmonitor or soccerwindow2. press <kbd>Ctr
110136

111137
---
112138

113-
##### RPC Server Configuration
139+
| RPC Server Configuration
114140

115141
| Argument | Short | Description | Default Value |
116142
|---------------------------|-------|------------------------------------------------------------------|-----------------|
@@ -121,7 +147,7 @@ To watch the game, you must run the rcssmonitor or soccerwindow2. press <kbd>Ctr
121147

122148
---
123149

124-
##### RoboCup Soccer Server Configuration
150+
| RoboCup Soccer Server Configuration
125151

126152
| Argument | Short | Description | Default Value |
127153
|---------------------------|-------|------------------------------------------------------------------|-----------------|
@@ -130,7 +156,7 @@ To watch the game, you must run the rcssmonitor or soccerwindow2. press <kbd>Ctr
130156

131157
---
132158

133-
##### Agent Proxies
159+
| Agent Proxies
134160

135161
| Argument | Short | Description | Default Value |
136162
|---------------------------|-------|------------------------------------------------------------------|-----------------|
@@ -141,7 +167,7 @@ To watch the game, you must run the rcssmonitor or soccerwindow2. press <kbd>Ctr
141167

142168
---
143169

144-
##### Debug and Logging Options
170+
| Debug and Logging Options
145171

146172
| Argument | Short | Description | Default Value |
147173
|---------------------------|-------|------------------------------------------------------------------|-----------------|
@@ -189,11 +215,70 @@ As seen in the figure, the proxy handles connecting to the server, receiving sen
189215

190216
## Other Solutions To Run The Base Code
191217

192-
TODO
218+
### Running the base code with different rpc port
219+
220+
In soccer simulation 2D games (official competitions), each agents (players and coach) should be run in a separate process. So, you need to connect each agent to a rpc server (each agent has a separate rpc server). In this case, you need to run the rpc server for each agent separately. You can use the following commands to run the rpc server for each agent for debugging purposes.
221+
222+
| Note: For official competitions, tournament script will run each player/coach with separate command, so it will be like the next section, but the result will be the same as this section because the rpc server will be run for each agent separately.
223+
224+
``` Bash
225+
python3 start.py --use-different-rpc-port
226+
// or
227+
./start.sh --use-different-rpc-port
228+
```
229+
230+
### Running each agent and server separately
231+
232+
In soccer simulation 2D games (official competitions), each agents (players and coach) should be run in a separate process. So, you need to connect each agent to a rpc server (each agent has a separate rpc server). You can use the following commands to run each agent and rpc server separately.
233+
234+
``` Bash
235+
python3 start.py --goalie
236+
python3 start.py --player (you need to run this command 11 times)
237+
python3 start.py --coach
238+
// or
239+
./start.sh --goalie
240+
./start.sh --player (you need to run this command 11 times)
241+
./start.sh --coach
242+
```
243+
244+
### Running the rpc server and proxy separately
245+
246+
To run the rpc server and proxy separately, you can use the following commands.
247+
248+
``` Bash
249+
python3 server.py
250+
cd scripts/proxy
251+
./start.sh --rpc-type=grpc
252+
```
193253

194254
## Create Binary
195255

196-
TODO
256+
As you know python is an interpreted language and it is slow in comparison to C++. In official tournaments, an agent should send actions to the server in less than 100ms. Also, python may not be installed on the tournament server. So, you need to create a binary from your python code. You can use the following commands to create a binary from your python code.
257+
258+
``` Bash
259+
cd scripts
260+
./create_binary.sh
261+
```
262+
263+
After creating the binary, you can find it in the `scripts/binary` directory. In this directory, you can find the following files and directories:
264+
265+
- `start.bin`: The binary file that behaves like the `start.py` script. So, by running this file, you can run one rpc server and 12 proxy agents (11 players and 1 coach).
266+
- `start`: The tournament script will run this file to run your team in the tournament. This file will run one agent and one rpc server on random port.
267+
- `startAll`: This script is available for testing purposes. By running this file, it will call the `start` file 12 times to run 12 agents and 12 rpc servers.
268+
- `scripts`: This directory contains the necessary files to run the proxy.
269+
- `src`: This directory contains the formations of your team.
270+
271+
## How to debug your team
272+
273+
There are three different solution for debugging your team:
274+
275+
### Logging
276+
277+
You can use the logging module to log the information in rpc server code. By default, the logs are stored in the `logs` directory. For example, `agentX_Y.log` is the log file for the agent with unum `X` and `Y` is the unique id of the agent in rpc server (This one is not important for you). `proxy.log` is the log file for the proxy for all agents. `start-team.log` is the log file for the `start.py` script.
278+
279+
### Debug Mode
280+
281+
If you enable the debug mode, the proxy agents will be run in debug mode, so you can check graphical logs in `soccerwindow2` application. You can use `message Log` or `message DebugClient` to send the debug information to the proxy and then proxy will save them in file or send them directly to the `soccerwindow2` application to show them in the graphical interface. For more information, you can check the [IDL section in the documentation](https://clsframework.github.io/docs/idl/protobuf).
197282

198283
## Test Performance by using AutoTest
199284

0 commit comments

Comments
 (0)