Customizable training for Rocket League bots of any language.
Tutorial: Click Here
- Install Python 3.7 or later
pip install rlbottraining
- Uses
RLBot
config 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 whichGraderExercise
should be run and theconfig_path
s define the RLBot setup to be used (which bots, which mode). - Each
GraderExercise
composes together the initial game state and how the bot is judged. The responsibility of judging the bot is handled byGrader
s - A
Grader
decides whether to continue the exercise or toPass
/Fail
the exercise by looking at each tick. AGrader
may 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
RLBot
framework provides the minimum features for any training to occur.
- Always subclass
GraderExercise
rather thanExercise
. UsingGrader
s will allows you to share termination conditions, safely store state across ticks and provide metrics. - Compose your
Grader
s. For instance, by usingCompoundGrader
- Provide meaningful error messages in your
Grader
s 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