Customizable training for Rocket League bots of any language.
Tutorial: Click Here
- Install Python 3.7 or later
pip install rlbottraining
- Uses
RLBotconfig files to support bots in any programming language - Reproducable training setups with seeded randomness
- Customizable Pass/Fail criteria
- Importing of shots/playlists from BakkesMod training
- Playlists of exercises
- Automatic reloading of both bot and exercise code
- Imports from bakkesmod training
- At the entry point (
run_exercises.py) we decide whichGraderExerciseshould be run and theconfig_paths define the RLBot setup to be used (which bots, which mode). - Each
GraderExercisecomposes together the initial game state and how the bot is judged. The responsibility of judging the bot is handled byGraders - A
Graderdecides whether to continue the exercise or toPass/Failthe exercise by looking at each tick. AGradermay optionally gather metrics (e.g. "time until goal") to help track bot performance as the bot is improved. - Separation of responsiblity: This repository is designed to make it nice to define new exercises whereas the training API of the
RLBotframework provides the minimum features for any training to occur.
- Always subclass
GraderExerciserather thanExercise. UsingGraders will allows you to share termination conditions, safely store state across ticks and provide metrics. - Compose your
Graders. For instance, by usingCompoundGrader - Provide meaningful error messages in your
Graders by subclassingFail
- Provide an example of striker vs goalie
- Put metrics (
Grader.get_metrics()) into a database - A way of browsing past runs, including metrics
- Reproducing failed exercises
- Visualization of metrics
- Continous integration of different bots