Skip to content

Commit fffa53c

Browse files
committed
change how to use it and add sample playmaker server
1 parent 1c56d0f commit fffa53c

File tree

1 file changed

+48
-34
lines changed

1 file changed

+48
-34
lines changed

README.md

Lines changed: 48 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,69 +9,78 @@ To run a game in the **RoboCup Soccer Simulation 2D**, you need to operate the [
99

1010
Developing a team can be complex due to the environment's intricacy, typically necessitating C++ programming. However, our framework allows for development in other languages by leveraging the [helios-base](https://github.com/helios-base/helios-base) features. By using **SoccerSimulationProxy**, you can develop a team in any language supported by **gRPC** or **Thrift**, such as **C#, C++, Dart, Go, Java, Kotlin, Node.js, Objective-C, PHP, Python, and Ruby**.
1111

12-
To use **gRPC**, you just need to develop a gRPC server based on proto messages and gRPC services ([protofile](https://github.com/CLSFramework/soccer-simulation-proxy/blob/master/idl/grpc/service.proto), check the [wiki](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Protobuf) to become more familiar with messages and services) to receive data from the **SoccerSimulationProxy** and send actions back to it.
12+
To use **gRPC**, you can check out our [gRPC server](https://github.com/CLSFramework/sample-playmaker-server-python-grpc), which is based on proto messages and gRPC services. This server provides a helpful base to get more familiar with the gRPC implementation.
1313

14-
To use **Thrift**, you can similarly develop a Thrift server by generating code from the Thrift [IDL](https://github.com/CLSFramework/soccer-simulation-proxy/blob/master/idl/thrift/soccer_service.thrift) (Interface Definition Language) provided. This way, your team can interact with the proxy using the Thrift-generated code to receive data and send actions.
14+
To use **Thrift**, you can check out our [thrift server](https://github.com/CLSFramework/sample-playmaker-server-python-thrift), which is based on proto messages and thrift services. This server provides a helpful base to get more familiar with the thrift implementation.
1515

1616
This allows you to focus on developing your team's strategy and AI algorithms without worrying about the server's underlying complexity.
1717

18+
Check our [wiki](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Protobuf) to be more familier with messages and services.
19+
20+
![image](https://github-production-user-asset-6210df.s3.amazonaws.com/25696836/364993436-4daee216-1479-4acd-88f2-9e772b8c7837.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240923T175355Z&X-Amz-Expires=300&X-Amz-Signature=f985fcc6c8a34d6db99f322fd5f3a0dacee317097dd5519329ea3bdb7cb5d818&X-Amz-SignedHeaders=host)
21+
22+
1823
If you would like to develop a team or conduct research using **Python**, **C#**, or **JavaScript**, you can check the following links:
1924

20-
- [Playmaker-Server-Python](https://github.com/CLSFramework/playmaker-server-python)
25+
- [Playmaker-Server-Python-grpc](https://github.com/CLSFramework/sample-playmaker-server-python-grpc)
26+
- [Playmaker-Server-Python-thrift](https://github.com/CLSFramework/sample-playmaker-server-python-thrift)
2127
- [Playmaker-Server-CSharp](https://github.com/CLSFramework/playmaker-server-csharp)
2228
- [Playmaker-Server-NodeJs](https://github.com/CLSFramework/playmaker-server-nodejs)
2329

24-
![image](https://github-production-user-asset-6210df.s3.amazonaws.com/25696836/364993436-4daee216-1479-4acd-88f2-9e772b8c7837.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240923T175355Z&X-Amz-Expires=300&X-Amz-Signature=f985fcc6c8a34d6db99f322fd5f3a0dacee317097dd5519329ea3bdb7cb5d818&X-Amz-SignedHeaders=host)
25-
2630
To find more information about the framework, you can visit the [CLSFramework Wiki Pages](https://github.com/CLSFramework/cross-language-soccer-framework/wiki)
2731

2832

29-
This new base code is powered by Helios-Base code and gRPC to help researcher developing a soccer simulation 2D team or researching in this area by using any languages supported by gRPC:
30-
- [C#](https://grpc.io/docs/languages/csharp/)
31-
- [Playmaker-Server-CSharp](https://github.com/CLSFramework/playmaker-server-csharp)
32-
- [C++](https://grpc.io/docs/languages/cpp/)
33-
- [Dart](https://grpc.io/docs/languages/dart/)
34-
- [Go](https://grpc.io/docs/languages/go/)
35-
- [Java](https://grpc.io/docs/languages/java/)
36-
- [Kotlin](https://grpc.io/docs/languages/kotlin/)
37-
- [Node](https://grpc.io/docs/languages/node/)
38-
- [Playmaker-Server-NodeJs](https://github.com/CLSFramework/playmaker-server-nodejs)
39-
- [Objective-C](https://grpc.io/docs/languages/objective-c/)
40-
- [PHP](https://grpc.io/docs/languages/php/)
41-
- [Python](https://grpc.io/docs/languages/python/)
42-
- [Playmaker-Server-Python](https://github.com/CLSFramework/playmaker-server-python)
43-
- [Ruby](https://grpc.io/docs/languages/ruby/)
4433

34+
This new base code is powered by Helios-Base and gRPC, designed to assist researchers in developing a Soccer Simulation 2D team or conducting research in this area. It supports development in any language compatible with gRPC.
4535
## How To Use it?
4636

47-
To use this framework, you need to run rcssserver to host a game, run SoccerSimulationProxy (Agents) to connect to the rcssserver to receive information and send actions, and run Playmaker-Server (gRPC-Server) to receive information from agents and send appropriate actions back. To watch the game, you can run rcssmonitor or SoccerWindow2.
37+
To use this framework, follow the steps below in order:
4838

49-
To run the rcssserver and rcssmonitor, you can follow the instructions in the [rcssserver](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/RoboCup-Soccer-Simulation-Server) and [rcssmonitor](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Soccer-Simulation-Monitor).
39+
### 1. Start the **rcssserver**
40+
The **rcssserver** hosts the game. You can follow the instructions for setting it up in the [RoboCup Soccer Simulation Server Wiki](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/RoboCup-Soccer-Simulation-Server).
5041

51-
To run the SoccerSimulationProxy, there are some different ways such as using Docker, building from source, or using AppImage.
42+
### 2. Run the **Playmaker-Server**
43+
Next, run one of the sample Playmaker Servers, such as this [gRPC Server](https://github.com/CLSFramework/sample-playmaker-server-python-grpc), to receive information from the agents and send appropriate actions back to the game.
5244

53-
In this page, we will explain how you can run the SoccerSimulationProxy by using AppImage. To find more information about building from source or using Docker, you can visit the [CLSFramework Wiki Pages](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Soccer-Simulation-Proxy).
45+
### 3. Set up the **Soccer Simulation Proxy**
46+
Now, run the **Soccer Simulation Proxy** to connect to the **rcssserver** and handle information exchange between agents and the server. You can do this using AppImage, Docker, or by building from source.
5447

55-
## Use AppImage (Linux, WSL)
48+
Here, we’ll explain how to run the Soccer Simulation Proxy using AppImage
5649

57-
### Download
58-
You can download the AppImage of the Soccer Simulation Proxy from the [release page](https://github.com/CLSFramework/soccer-simulation-proxy/releases).
50+
For more information on using Docker or building from source, visit the [CLSFramework Wiki Pages](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Soccer-Simulation-Proxy).
5951

60-
Or download the latest version by using the following command:
61-
```bash
62-
wget $(curl -s "https://api.github.com/repos/clsframework/soccer-simulation-proxy/releases/latest" | grep -oP '"browser_download_url": "\K[^"]*' | grep "soccer-simulation-proxy.tar.gz")
63-
```
52+
### AppImage
6453

65-
### Extract
54+
#### 1. Download the AppImage
55+
You can download the AppImage from the [release page](https://github.com/CLSFramework/soccer-simulation-proxy/releases) or use the following command to download the latest version:
56+
```bash
57+
wget $(curl -s "https://api.github.com/repos/clsframework/soccer-simulation-proxy/releases/latest" | grep -oP '"browser_download_url": "\K[^"]*' | grep "soccer-simulation-proxy.tar.gz")
58+
```
59+
### 2. Extract the AppImage
60+
After downloading, extract the tar.gz file:
6661
```bash
6762
tar -xvf soccer-simulation-proxy.tar.gz
6863
```
69-
70-
### Run
64+
### 3. Run the Proxy
65+
After downloading, you can run the proxy:
7166
```bash
7267
cd SoccerSimulationProxy
7368
./start.sh
7469
```
70+
If you want to connect the proxy to a grpc server change this parameter to `grpc` in start.sh file.
71+
```bash
72+
rpc_type="thrift"
73+
```
74+
### 4. Watch the Game
75+
To watch the game, you can use either of the following:
76+
77+
- **[rcssmonitor](https://github.com/rcsoccersim/rcssmonitor)**: A tool to visualize the game.
78+
- **[SoccerWindow2](https://github.com/helios-base/soccerwindow2)**: Another visualization tool for RoboCup Soccer Simulation.
79+
80+
For instructions on how to run **rcssmonitor**, check the [Soccer Simulation Monitor Wiki](https://github.com/CLSFramework/cross-language-soccer-framework/wiki/Soccer-Simulation-Monitor).
81+
82+
![Screenshot 2024-04-07 012226](https://github.com/Cyrus2D/SoccerSimulationProxy/assets/25696836/abb24e0c-61b9-497d-926f-941d1c90e2ee)
83+
7584

7685
## References
7786

@@ -81,3 +90,8 @@ Package for the RoboCup Soccer 2D Simulation, In Sven Behnke, Manuela
8190
Veloso, Arnoud Visser, and Rong Xiong editors, RoboCup2013: Robot
8291
World XVII, Lecture Notes in Artificial Intelligence, Springer Verlag,
8392
Berlin, 2014. http://dx.doi.org/10.1007/978-3-662-44468-9_46
93+
94+
# Citation
95+
96+
- [Cross Language Soccer Framework](https://arxiv.org/pdf/2406.05621)
97+
- Zare, N., Sayareh, A., Sadraii, A., Firouzkouhi, A. and Soares, A., 2024. Cross Language Soccer Framework: An Open Source Framework for the RoboCup 2D Soccer Simulation. arXiv preprint arXiv:2406.05621.

0 commit comments

Comments
 (0)