Tips for running tournaments
Announcing the Tournament
Normally tournament organizers will publish some kind of rules document. Google docs has been popular for that so far. Consider including the following:
- Tournament format
- Submission deadline(s)
- How to submit (upload to google drive folder is a popular technique)
- Stream time and twitch channel
- Your intended tick rate (read and understand Tick Rate)
- Whether or not hive mind style bots are allowed
Here's an example document
Gathering Submissions
Python Bot Requirements
People generally just send their whole bot folder, and that works well.
.NET / C# Bot Requirements
Direct people to Tournament-Submissions, and also encourage them to do Auto Launching
Java Bot Requirements
Direct people to Tournament Submissions. If they follow those instructions, you'll be given a nice zip file with a README inside it.
Also encourage them to do this, it'll make your life much easier
Scratch Bot Requirements
People who program their bots in Scratch should submit their whole folder.
Scratch program (sb3) requirements
- All the tournament code should be in the player 1 sprite.
- Clicking the green flag should be the only thing necessary to start your program.
CFG file requirements
Deadline Management
It's a good idea to set a bot submission deadline at least 24 hours before the start of the tournament stream. This will give you an opportunity to test all the bots.
Encourage early submissions so you can get a head-start on testing, and allow people edit their submission up until the deadline. If you feel confident from your pre-deadline testing that you'll be able to run most of the bots with no issues, consider giving an extension on the deadline--many people will need one.
Pre-Tournament Bot Testing
You should test all the bots beforehand.
- Do they start successfully?
- Do they have any obvious behavior problems that might be a problem with your setup?
- Feel free to check with the bot maker about the expected behavior.
- Do they run properly on both blue and orange team? Consider running test matches of each bot vs itself.
- Are the C#/Java bots running on different ports? Each C# and Java bot must run on a separate port from the rest of the bots.
Running Bots
.NET / C# Bots
- In the ideal case, if they followed Auto Launching successfully, you will only need to load the cfg file like you would for a Python bot.
- Otherwise, you will need to locate the .exe file in the submission and run it manually. The RLBot framework output will hint about this.
- Make sure the bot's port is different from the rest of the bots.
Java Bots
Prerequisite: You will need to have the Java Runtime Environment (JRE) installed. You are likely to need the latest one (Java 11 at time of writing) in case any of the botmakers compiled with it.
You hopefully received a zip file for each bot. Extract it somewhere and consult the README.
- In the ideal case, if they followed Auto Launching Java successfully, you will only need to load the cfg file like you would for a Python bot.
- Otherwise, you will need to locate the .bat file associated with the Java portion of their bot and run it manually. The RLBot framework output will hint about this.
- Make sure the bot's port is different from the rest of the bots.
If you run into any trouble, consult this video
Scratch Bots
All recently-created Scratch bots should auto start with no issues, BUT often the process takes a while. Consider pausing the match until you see something like "received first input from scratch bot" in the console.
If the bot is very old and does not auto run, they may need to do this
Streaming and Casting
Co-casters
If you want to invite others to do commentary with you, you'll need to:
- Give them a real-time view of the action so they can comment on things as they happen.
- Get the sound of their voice flowing through your system audio.
A good way to do this is to start a Discord call and share your screen. If you have internet bandwidth or CPU constraints, make sure you share your screen at a low framerate and / or low resolution.
Diagnostics
Bot Response Rate
You can hit the [home] key to start rendering bot response rates in the upper left corner of Rocket League. You'll see a percentage that indicates how many of the rendered frames in Rocket League received fresh control inputs from a given bot.
- If you have capped your framerate at 60fps, then you should expect to see 100% for all bots if they are performing well. - If your framerate is higher than 60, you will see percentages lower than 100 for some languages, and that's OK.
- If you ever see a percentage above 100, that's a big concern. It may mean that there are multiple bot processes trying to control the same player. Make sure bots from the previous match are truly dead.
Running the tournament
Bracket
All our bots are in their own league on Braacket on which you can also create tournaments with most formats. You can also use your own site of preference or own local program which looks more graphically pleasing. But it's recommended to keep your bracket updated during the tournament so people don't lose track.
Things to do in between games
- Make sure the FPS is capped at the desired number (maybe 120)
- Don't forget to press 'H' when the games start, so the remove the useless HUD
- Try to check twitch/discord in case there is something wrong and do not be afraid to restart a match
- Have fun!