5 releases (breaking)

0.7.0-alpha Dec 20, 2023
0.6.0-alpha Dec 1, 2023
0.5.0-alpha Nov 27, 2023
0.4.0-alpha Nov 10, 2023
0.3.0-alpha Nov 9, 2023

#3 in #gym

Apache-2.0

195KB
3.5K SLoC

rlgym-sim-rs

Initial release of Rust RLGym for sim. More documentation soon.

Originally a port of rocket-league-gym-sim (which is a version of RLGym). It no longer has exactly the same functionality but the goal is moving from one to the other should not be difficult.

Differences between RLGym-sim and rlgym-sim-rs

Observation functions must be provided as a Vec (Vec<Box<dyn ObsBuilder>>) where the length must be equal to the number of agents that will be in the match. The current functionality is that observation builders are per-agent and hence independent of each other.

Terminal conditions must return only a singular boolean when called.

Info does not return the state for now. Unfortunately mixed-type HashMaps are not possible by default with PyO3 though this may be adapted in the future. This crate is adapted a bit more for the ease of use of bindings via PyO3, though it can be used entirely from Rust as well, so this has been left as-is for now.

Docs

See the docs here.

Installation

Installed via cargo: cargo add rlgym-sim-rs

While RocketSim will automatically compile thanks to Virx's bindings, you must still use your own collision meshes.

Usage

See examples/basic_examples.rs for how to create the gym. Also see tests/tester.rs and tests/team_change_test.rs as more extensive examples. You can also look at examples/lib.rs for an example of how to create Python bindings that you can use.

Dependencies

~12–18MB
~324K SLoC