Machine learning faq

A: There are a lot of helpful resources pinned to the ml-discussion channel of the RLBot discord.


Q: I'm new to RLBot, how do I get started with ML?

A: We strongly recommend you begin by writing a hard-coded bot to get the hang of RLBot, and coding for Rocket League. Once you feel confident, check out the dedicated #machine-learning channel in the RLBot discord for helpful resources!


Q: What can I use ML for in Rocket League?

A: Lots of things! Optimizing mechanics (wave-dashing, aerials, power-sliding, etc), analyzing replays (predicting shot percentages, car positions, etc), and even playing the game.


Q: How could I use the replays available at calculated.gg?

A: Tools like Training Data Extractor and carball exist to format replay data into an RLBot tick packet, and approximate player inputs between frames. These enable users to easily handle data available in replays for whatever purpose they might have.


Q: Is it possible to get controls from replays so I can train a model to copy humans?:

A: Training controls directly from replays has not been very successful.

The reason for this may be that not all conditions the bot will encounter are present in replays, leading to a model being unable to handle certain conditions that were not present in the replays it was trained with.

The most successful attempt is documented here.


Q: Can I make a clone of Rocket League for training and then transfer it to the real game?

A: It would be quite the project to clone Rocket League, but there is no reason that would not work with a little elbow grease!

The user @Roboserg#9216 has been working on a Rocket League clone for some time, and has made very promising progress. His work is open source, and can be found here.


Q: Can I use Supervised Learning to train a bot that mimics other bots?

A: Yes you can! The ML bots Levi and Tensorbot were trained this way.


Q: Can I use Reinforcement Learning to make a bot?

A: This is the holy grail for many ML enthusiasts in the RLBot community.

With the recent release of the Python library and Bakkesmod plugin RLGym, Reinforcement Learning can now be used to train models directly in the game. Some promising results have already been achieved, like Rhobot and Element. These models take quite a lot of compute power and time to train, but they are achievable with consumer-grade hardware. The largest RLGym project is currently a distributed learning bot Necto/Nexto.

Reinforcement Learning can also be used to train specific mechanics, like Eagle and ElementAerial


Q: Can I use this or that method to speed up Reinforcement Learning?

A: You can just try it out, if it works for other problems, then it might also work for Rocket League. Don't hesitate to ask in the discord if you want a second opinion.