Skip to content

NicEastvillage/RLBotJavaTutorialSourceCode

Repository files navigation

RLBot Java Tutorial Source Code

TUTORIAL

This repository contains the source code for Eastvillage's RLBot Java tutorial. The tutorial covers the basics of RLBot how to make your first bot.

If you have questions, feedback, or comments on the tutorial, hit me up on Discord, Eastvillage#2628. You can find me on the RLBot Discord server.

NOTE: Please do not submit the tutorial bot to tournaments or claim it as your own unless you have made significant changes to it! (Community guidelines)

Important links:

Episodes

Episode 1 - Setup and Renaming

  • Quick framework explaination
  • IDE suggestion
  • Downloading the JavaExampleBot
  • Renaming relavant files, including bot name, gradle, config, java bat path, etc
  • Showing off RLBot's wiki

Episode 2 - RLBot, Vec3, and Doubles

  • How the bot is created and called
  • ATBA/JavaExampleBot logic explanation
  • Why vectors are important (and inverted coordinate system)
  • Replacing Vector3 with Vec3
  • Fixing CarOrientation as a consequence of the weird coordinate system
  • Insert double/float casting in the right places

Episode 3 - DataPackets and State Machines

  • Small explanation and cleanup of input and output data
  • Adding bot to DataPacket
  • Introduction to state machines
  • Making abstract State class
  • Making general MoveToPointState with targetPoint and targetSpeed
  • Making AtbaState and CollectBoostState and switching between them

Episode 4 - Kickoffs and Local Coordinates

  • Adding KickoffState (no dodge)
  • Making MoveToPointState use local coordinates to get down from wall
  • Making MoveToPointState only boost when going towards the target

Episode 5 - Dodges

  • Talk about how RLBot works in frames/ticks and how to make sequential maneuvers
  • Making a Manuever interface
  • Making a dodge for KickoffState and MoveToPointState

Episode 6 - Rendering and Ball Prediction

  • Deep dive into the renderers
  • Making our own SmartRenderer with more functions
  • Drawing ball prediction
  • Using ball prediction to find where and when to hit the ball

Planned Episodes

Note: These are just ideas for episodes and their order may not be exactly as below.

Episode ? - Better Movement

  • Introducing handbraking and turn radius (and "can to faster" option maybe?)
  • Renaming AtbaState to ChaseBallState since it is not just Atba anymore

Episode ? - Simple Strategy and shoot maneuver

  • Making it only chase the ball when on the correct side of the ball and retreat to own goal otherwise
  • Adding a simple ShotManeuver

Episode ? - Utility Systems

  • Explaination of utility systems and why state machines doesn't scale
  • Implementing a simple utility system

Episode ? - Aerials

  • Building aerial controller
  • Making a recover manuever
  • Making an aerial manuever

About

Source code for a Rocket League bot tutorial in Java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages