ROSE game game engine.
This component implement the ROSE game logic, and road simulation.
ROSE project: https://github.com/RedHat-Israel/ROSE
| Requires | Version | |
|---|---|---|
| Podman (or Docker) | >= 4.8 | For running containerized |
| PYthon | >= 3.9 | For running the code loally |
| Component | Reference |
|---|---|
| Game engine | https://github.com/RedHat-Israel/rose-game-engine |
| Game web based user interface | https://github.com/RedHat-Israel/rose-game-web-ui |
| Self driving car module | https://github.com/RedHat-Israel/rose-game-ai |
| Self driving car module example | https://github.com/RedHat-Israel/rose-game-ai-reference |
Clone this repository.
Run the engine locally:
# Install requirements
pip install -r requirements.txt
pip install -r requirements-dev.txt
# Run the game engine server
python main.pyLog into your cluster, and apply the game inventory.
The game user interface will be avaliable on NodePort service rose/rose-game-web-ui
# Apply the game inventory
kubectl apply -f https://raw.githubusercontent.com/RedHat-Israel/rose-game-engine/main/rose-game.yaml
# Get the user interface node port
kubectl get svc -n rose rose-game-web-ui
# On openshift expose the user interface route
#oc expose svc/rose-game-web-ui -n rose --port=8080
# Car driving modules will be available using internal service URL
# module intrenal URL example: http://rose-game-ai-reference.rose.svc.cluster.local:8081Running the game engine ( on http://127.0.0.1:8880 )
podman run --rm --network host -it quay.io/rose/rose-game-engine:latestRunning the game web based user interface ( on http://127.0.0.1:8080 )
podman run --rm --network host -it quay.io/rose/rose-game-web-ui:latestRunning community contributed driver ( on http://127.0.0.1:8082 )
You can use community drivers to compare and evaluate your driver during the development process.
podman run --rm --network host -it quay.io/yaacov/rose-go-driver:latest --port 8082Running your self driving module, requires a local mydriver.py file with your driving module. ( on http://127.0.0.1:8081 )
# NOTE: will mount mydriver.py from local directory into the container file system
podman run --rm --network host -it \
-v $(pwd)/:/driver:z \
-e DRIVER=/driver/mydriver.py \
-e PORT=8081 \
quay.io/rose/rose-game-ai:latestSend car and track information by uring POST request to your driver ( running on http://127.0.0.1:8081 ):
curl -X POST -H "Content-Type: application/json" -d '{
"info": {
"car": {
"x": 3,
"y": 8
}
},
"track": [
["", "", "bike", "", "", ""],
["", "crack", "", "", "trash", ""],
["", "", "penguin", "", "", "water"],
["", "water", "", "trash", "", ""],
["barrier", "", "", "", "bike", ""],
["", "", "trash", "", "", ""],
["", "crack", "", "", "", "bike"],
["", "", "", "penguin", "water", ""],
["", "", "bike", "", "", ""]
]
}' http://localhost:8081/The response in JSON format should include the car name and the recommended action:
{
"info": {
"name": "Go Cart",
"action": "pickup"
}
}