An open API service indexing awesome lists of open source software.

https://github.com/rlbot/core

RLBotServer implementation in C#, with a smaller closed-source portion.
https://github.com/rlbot/core

flatbuffers rocket-league

Last synced: 2 days ago
JSON representation

RLBotServer implementation in C#, with a smaller closed-source portion.

Awesome Lists containing this project

README

          

# RLBot Core

The RLBot Core Project builds a `RLBotServer.exe` binary that allows custom bots and scripts
to interface with Rocket League.

This is a C# rewrite of the old C++ backend that lived at
[RLBot/src/main/cpp/RLBotInterface](https://github.com/RLBot/RLBot/tree/00720d1efc447e5495d3952a03e10b5b762421ee/src/main/cpp/RLBotInterface) in v4.

## Developer Setup

- Install .NET 10 SDK [https://dotnet.microsoft.com/en-us/download/dotnet/10.0]
- Install an IDE
- Visual Studio 2022 was used for initial development.
- Rider and VS Code are also known to work.
- Ensure submodules got cloned
- `git submodule update --init`

## Building

In Visual Studio 2022, you can build the solution in Release mode, and find the
compiled binaries at `RLBotCS\bin\Release\net10.0`.

- Note: You can also build with the command `dotnet build -c "Release"`

## Deployment

1. Ensure all changes are on the `master` branch.
1. Ensure the version number is correct in `RLBotCS/Main.cs`.
1. In GitHub’s UI, create and publish a new release (this will create the tag for you).
- Use the next version number, e.g. `v1.0.0`.
- Mark the release as **pre-release** initially.
1. Wait for the GitHub Actions workflow to build the release and upload it to the release page.
1. After the workflow finishes, edit the release and set it as the **latest release**.

### Release rollbacks

Instances of RLBot download the version tagged as the latest release. To rollback a release or otherwise change the version being distributed, simply **mark any other verison at the latest release** in GitHub's UI.

## Maintenance

### Formatting

This project uses the CSharpier formatter. You can run it with `dotnet csharpier format .`

### Flatbuffers

The Core project uses flatbuffers, which involves generating C# code based on a specification
file called `rlbot.fbs`. Find this in `./FlatBuffer` after it's been generated.

The [flatbuffers-schema](https://github.com/RLBot/flatbuffers-schema) submodule should be kept update to date:

- `cd flatbuffers-schema`
- `git checkout main`
- `git pull`

The needed Flatbuffers code is automatically generated upon compilation of the project.

### Bridge

The `Bridge.dll` file in `RLBotCS/lib` is built from a _closed-source_ repository due to legal reasons.
It is maintained by RLBot developers who have signed an agreement with Psyonix to keep it private.

The dll file is platform-independent and works for building the project on both Windows and Linux.

### rl_ball_sym

The native binaries that live in `RLBotCS/lib/rl_ball_sym` generate the ball prediction that core then distributes to bots & scripts that request it.
The `dll`/`so` are dynamically loaded at run time while developing core, and the `a`/`lib` files are statically linked during publishing.

All source code and releases for building the dlls can be found at but the core of the code is a library that's published for anyone's use at .