A replay collection server for Saltie the Deep Reinforcement Learning Bot
Modeled after the Leela Zero distributed Go engine.
- Install Flask (
flask
). - Install Flask login (
flask_login
) - Install psycopg2 (
psycopg2
) - Install postgreSQL
- If only for local development change the password to
postgres
- Run RLBotServer.py.
The server currently only allows uploads from a single IP address every 4.5 minutes, to prevent abuse. This is also in-line with the data generation speed of a typical Rocket League game (~5 minutes). Each replay has an IP address attached to it, so blame can be given.
##Windows
- Install python/pip
- Install postgreSQL
- Install RabbitMQ
- Run win_setup.bat
- Run win_run.bat
Replays will be saved in /replays
for later consumption. The server provides these files to clients.
The structure of the server is split into different files:
celery_tasks.py
- this contains the tasks that run in the background (i.e. the replay parsing / pickling) using Celery workersceleryconfig.py
- configuration for the Celery workerconstants.py
- things like dict of id -> car body namefunctions.py
- general helper functions for the servermiddleware.py
- classes that are used in the actual inner framework code of the serverobjects.py
- SQL ORM objects such as the Replay and Model objectsreplays.py
- contains all code pertaining to replay parsing (besides the Celery task)saltie.py
- contains all code pertaining to the Saltie data collection partstartup.py
- is run to start the connection to the SQL serverstats.py
- just some analysis on the upload patterns of the users