Code Monkey home page Code Monkey logo

rlbottraining's Introduction

RLBotTraining

Customizable training for Rocket League bots of any language.

Tutorial: Click Here

Installation

  • Install Python 3.7 or later
  • pip install rlbottraining

Features at a glance

  • 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

Architecture

  • At the entry point (run_exercises.py) we decide which GraderExercise should be run and the config_paths 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 by Graders
  • A Grader decides whether to continue the exercise or to Pass/Fail the exercise by looking at each tick. A Grader 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.

Tips for writing your own exercises:

  • Always subclass GraderExercise rather than Exercise. Using Graders will allows you to share termination conditions, safely store state across ticks and provide metrics.
  • Compose your Graders. For instance, by using CompoundGrader
  • Provide meaningful error messages in your Graders by subclassing Fail

Future direction

  • 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

rlbottraining's People

Contributors

aydensutt avatar domnomnom avatar jeroen11dijk avatar rlmarvin avatar robbai avatar viliamvadocz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rlbottraining's Issues

Bots pick up boost pad when teleporting over them.

When resetting the exercise, bots are teleported. They can pick up boost pads during this teleport as seen in this gif

How about teleporting in multiple steps: First move the bots up some amount, then move, then back down?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.