Giter Site home page Giter Site logo

rocket-league-gym-sim's Introduction

rocket-league-gym-sim

A version of RLGym for use with the RocketSim simulator.

FOREWORD

This project is a TEMPORARY STOP-GAP to use RocketSim while RLGym 2.0 is in development. I provide no guarantees that it is bug-free or that I will not make breaking changes to this project in the future.

This project requires you to acquire assets from a copy of Rocket League that you own with an asset dumper. I will not walk you through this process. The necessary links and basic instructions are listed below. If you cannot follow those, don't bother me.

INSTALLATION

  1. Install RocketSim via pip install rocketsim
  2. Install this project with pip via pip install git+https://github.com/AechPro/rocket-league-gym-sim@main
  3. Build and run the asset dumper
  4. Move the dumped assets to the top level of your project directory

USAGE

This project acts as a drop-in replacement for RLGym and can be used in exactly the same way. Barring the changed variables listed below, you can replace every instance of rlgym with rlgym_sim (or simply import rlgym_sim as rlgym) and your existing RLGym code should work.

All variables having to do with the game client have been removed from the make function. For example, rlgym_sim.make(use_injector=True) will fail because there is no injector. The following is a list of all removed make variables:

  • use_injector
  • game_speed
  • auto_minimize
  • force_paging
  • launch_preference
  • raise_on_crash
  • self_play

Thanks to the flexibility of the simulator, the following additional variables have been added as arguments to make:

  • copy_gamestate_every_step: Leave this alone for the default behavior. Setting this to True will no longer return a new GameState object at every call to step, which is substantially faster. However, if you need to track data from the game state or its member variables over time, you will need to manually copy all relevant GameState, PlayerData, and PhysicsObject data at each step.
  • dodge_deadzone: Sets the threshold value that pitch must meet in order for a dodge to occur when jumping in the air.

KNOWN ISSUES

  • A variety of classes in rlgym_utils such as SB3MultipleInstanceEnv imports the rlgym library to build environments, so you will need to replace those imports yourself and remove the misc launch options listed above if you want to use SB3 with rlgym_sim. Note also that SB3MultipleInstanceEnv waits 60 seconds between launching clients by default because multiple Rocket League clients will break each other if launched simultaneously. This is not the case with RocketSim, so you can remove that delay.
  • the PlayerData objects do not track match_saves or match_shots yet.

rocket-league-gym-sim's People

Contributors

aechpro avatar jpk314 avatar virxec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rocket-league-gym-sim's Issues

Does this render the game?

Is this supposed to:

  • Launch the game?
  • Render the game?

I managed to get a basic python script for training a bot running, but I am having no RL executable launched and obviously also no 3D render at all.

Also my training speed is about the same as regular rlgym.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.