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

https://github.com/virxec/rl_ball_sym

Rust implementation Rocket League's ball physics
https://github.com/virxec/rl_ball_sym

rlbot rocket-league rust simulation

Last synced: about 1 month ago
JSON representation

Rust implementation Rocket League's ball physics

Awesome Lists containing this project

README

        

# rl_ball_sym

[![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)

Rust implementation of Rocket League's ball physics;
Inspired by Samuel P. Mish's C++ utils called [RLUtilities](https://github.com/samuelpmish/RLUtilities)
with accuracy improvements from [RocketSim](https://github.com/ZealanL/RocketSim)
and other miscellaneous performance improvements.

## Running

Make sure you have Rust/Cargo installed, then just run `cargo test --release` in the terminal.

## Example implementations

Check out the examples folder! If you want to run them and don't know how:

```bat
cargo run --example example_name
```

For example, to run the example `basic.rs`:

```bat
cargo run --example basic
```

## Performance numbers

Numbers are from a system running Ubuntu 23.10 with a Ryzen 9 5900X and 3600MHz CL18 RAM.

Numbers _will_ vary depending on your system. Only default features are enabled.

+ `load_standard`: Loads 8028 triangles, executes in around `655µs`
+ `load_hoops`: Loads 15732 triangles, executes in around `1.35ms`
+ `load_dropshot`: Loads 3616 triangles, executes in around `300µs`
+ `load_standard_throwback`: Loads 9272 triangles, executes in around `815µs`
+ `get_ball_prediction_struct_for_time`: standard + 8 seconds, executes in around `180µs`
+ `get_ball_prediction`: standard + 6 seconds, executes in around `145µs`
+ `get_ball_prediction`: Hoops + 6 seconds, executes in around `140µs`
+ `get_ball_prediction`: Dropshot + 6 seconds, executes in around `115µs`
+ `get_ball_prediction`: standard + Throwback Stadium + 6 seconds, executes in around `145µs`

## Features

+ `standard`: Enable loading the standard map
+ `hoops`: Enable loading the hoops map
+ `dropshot`: Enable loading the dropshot map
+ `throwback`: Enable loading the throwback map (with standard game rules)
+ `compression`: Minimize the size of the produced binaries by compressing the binary field data at compile time. Will slightly slow down `load_x()` functions.