Bakkesmod plugin that supplies inputs to rocket league at a very high speed, enabling reinforcement learning.
Speedups as much as 170x have been achieved, for more information feel free to ask in the RLBot discord.
It is also possible to run multiple instances of rocket league in parallel using steamless.
Download CMake v3.16.6 or higher (Released 10th of April, 2020)
Download the latest LibTorch version (Tested with 1.5.0, cpu version)
Download and install bakkesmod by opening bakkesmod and starting the game once.
For MSVC:
git clone https://github.com/GodGamer029/SuperSonicML.git
cd SuperSonicML
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=C:\your\path\to\libtorch ..
cmake --build . --config Release
If you use CLion, you need to add the command line parameter -DCMAKE_PREFIX_PATH to your cmake profile in Settings -> Build, Execution, Deployment -> CMake. You also need to change Build Type to Release.
Find the bakkesmod plugin settings folder (Usually located in steamapps\common\rocketleague\Binaries\Win64\bakkesmod\plugins\settings) and drop this file in there.
If you have an IDE, you can use this python script to automatically reload the plugin as the post-build step without having to restart rocket league.
Replace the bakkesmod_plugin_folder variable in that script with the path to your bakkesmod plugins folder, and supply the path to the SuperSonicML.dll as the first argument.
For the script to work correctly, you need to enable the built-in RconPlugin in bakkesmod's plugin manager!
Example:
python C:\Users\<username>\source\repos\SuperSonicML\bakkes_patchplugin.py build\bin\SuperSonicML.dll
If you, for some reason, cannot use this script, you need to manually copy the SuperSonicML.dll from the output directory to the bakkesmod plugins folder, and reload the plugin using the plugin manager inside bakkesmod (Open the menu with F2 and navigate to the plugins tab).
Install and open bakkesmod
Download a 64-bit-capable injector (I used Xenos64) and inject these dlls from the libtorch/lib directory into the rocketleague.exe process
- asmjit.dll
- c10.dll
- fbgemm.dll
- libiomp5md.dll
- libiompstubs5md.dll
- torch.dll
- torch_cpu.dll
- torch_global_deps.dll
You may need to inject more dlls depending on your version of libtorch (I used libtorch v1.5.0, cpu version)
If you get an error saying that you can't inject 64-bit dlls into a 32-bit process, you have chosen the RocketLeague launcher (32-bit) instead of the actual RocketLeague game (64-bit). Note that both processes have the exact same name (rocketleague.exe)
These dlls have to be injected everytime you start rocketleague and intend to use this plugin, it won't load if those dlls are not present.
Todo: remove this step
Either manually copy the dll and enable it in plugin manager, or run the python script as described in Setup
Go into freeplay and check the "Enable control take-over"-box in the SuperSonicML plugin settings in the menu (F2 to open the menu).
If you don't see the checkbox, close all menus and reload plugin settings with the command cl_settings_refreshplugins (F6 to open the console)
The bakkesmod console (F6) has been proven to be much more useful, type supersonicml and use tab to autocomplete, and change different properties.
This is also a great way to check if the plugin loaded correctly.
-
Alter game-speed using the bakkesmod console command
sv_soccar_gamespeed <number> -
Physics ticks are limited to 5 physics ticks per frame, so uncapping your fps will massively increase the number of physics ticks possible.
This can be changed with the following code:
SuperSonicML::Share::gameWrapper->GetEngine().SetMaxPhysicsSubsteps(50);Rocket league limits this value to approx. 50, so we created a cheat engine script to remove the limitation. It still remains unknown why this limitation exists though, so proceed with caution.
-
Uncap your fps by opening the settings file (
Documents\My Games\Rocket League\TAGame\Config\TASystemSettings.ini) and changeAllowPerFrameSleepfrom true to false. -
Use the "Disable Rendering" box in the bakkesmod Misc tab to improve your fps even further.