Difference between revisions of "RoboRumble/Enter The Competition"

From Robowiki
Jump to navigation Jump to search
(Added example of botnaming reflecting internal structure)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{:RoboRumble/Navigation}}
+
To create a bot that is accepted by the RoboRumble server, the following rules are mandatory:
  
To create a bot that is accepted by the RR@Home server, the following two rules are mandatory:
+
* The bot must have a package name.
 +
* The bot must be packaged in a JAR file.
 +
* A <code><botname>.properties</code> file must be present in the JAR file.
 +
* The naming of the bot must reflect the internal structure.
  
* The bot must have a packagename.
+
The easiest way to do this is to package your bot with Robocode (Robot -> Package robot for upload).
* The bot must be packaged in a jar-file.
 
* A <botname>.properties file must be present in the jar-file.
 
* The naming of the bot must reflect the internal structure,see [http://home.versatel.nl/gheijenk/robocode/plaatjes/bot_naming.png]
 
  
The easiest way to do this, is to package your bot with Robocode (Robot -> Package robot for upload).
+
== Strong recommendations ==
 +
* Choose a unique main package name to avoid mixups between different authors. Stick with that one main package name per author.
 +
* Do not use underscores in your package name, bot name or version number. Robocode itself has no problems with it, but the client is known to have problems with them, especially in version numbers.
 +
* Keep your bot Java 8 compatible. The 2017 [[Thread:Talk:RoboRumble/Client java version|Java client survey]] showed that majority of the rating generating clients run Java 8.
 +
* Some would even say to keep your bot Java 5 compatible. This means compiling with <code>-target 1.5 -source 1.5</code> and avoiding features introduced in later versions of Java. The RoboRumble client places no restrictions on the version of Java used to run matches, and someone might run your robot with Java 5, producing invalid battle results.
 +
* Try out your just-packaged bot before letting it loose in the rumble.
 +
* If your robot is worse than [[MyFirstRobot]], don't enter it.
  
 +
=== Publishing the JAR ===
 +
You will need to upload your robot's JAR on a website that can store arbitrary files, giving you an URL with which others can download your robot. Keep in mind the following:
 +
# The link must be a '''direct link'''. When the link is clicked, the JAR must immediately begin downloading, without any intermediate page.
 +
# The link should not break. You should upload your JAR to a reliable file storage service. Random "free online hosting" services are definitely out. Broken links generally will not cause data loss, as all JARs entered into the rumble are backed up on [http://robocode-archive.strangeautomata.com/robots/ Rednaxela's server]; they are just annoying to fix.
  
 +
Suggestions for your file host:
 +
* Do not upload to your own domain/web hosting. Such links have a strong tendency to break. This has happened to [[Voidious]], [[Skilgannon]], [[Darkcanuck]], [[David Alves]], [[Chase-san]], etc., etc., etc...
 +
* Google Drive is a good host. Enable link-sharing and [https://lifehacker.com/share-direct-links-to-files-in-google-drive-and-skip-th-1493813665 transform the share link into a direct download link].
 +
* Dropbox is also good for hosting JARs. Enable public sharing and [https://www.dropbox.com/help/desktop-web/force-download append <code>?dl=1</code> to the end of the link].
 +
* If you are developing your bot on GitHub, you can publish the JAR on [https://help.github.com/articles/about-releases/ GitHub Releases].
 +
* You (ab)use GitHub as a file hosting service, by uploading the JAR to a public repository.
  
==Strong recommendations==
+
== Entering the competition ==
 +
# Decide which rumble you want to enter:
 +
#* '''RoboRumble''' – Two-bot duel on a 800x600 battlefield over 35 rounds. Suitable for [[1v1]] and [[melee]] robots.
 +
#* '''MeleeRumble''' – Ten bots on a 1000x1000 battlefield over 35 rounds. Suitable for [[melee]] robots only.
 +
#* '''TeamRumble''' – Two teams of 5 bots each on a 1200x1200 battlefield over 10 rounds. Suitable for 5-bot [[teams]].
 +
#* '''Twin Duel''' – Two teams of 2 bots each on a 800x800 battlefield over 75 rounds. Suitable for 2-bot teams '''limited to 2000 [[Code Size]] total'''.
 +
#* The rumble will automatically calculate your robot's [[Code Size]] and place it in the appropriate category.
 +
# Upload your bot into file-hosting of your choice (see above).
 +
# Add your robot to the correct participants list ([[RoboRumble/Participants|1v1]], [[RoboRumble/Participants/Melee|melee]], [[RoboRumble/Participant/Teams|teams]], [[RoboRumble/Participants/TwinDuel|Twin Duel]]).
 +
# You should be able to see the results (some time later) on [http://literumble.appspot.com LiteRumble].
  
* Choose a unique main packagename to avoid mixup between different participants.
+
== Adding your country's flag to ranking table ==
* Stick with that one main packagename per author.
+
Enter your main package name and your country's [[wikipedia:ISO 3166-1 alpha-3|ISO 3166-1 alpha-3 code]] into [[RoboRumble/Country Flags]].
* Do not use underscores in your packagename, botname or versionnumber. Robocode itself has no problems with it, but the RR@Home client is known to have problems with them, especially in versionnumbers.
 
* Keep your bot Java 5 compatible. Not everyone has switched to Java 6, let alone Java 7, and certainly on a Mac this will result in invalid battleresults.
 
* Try out your just packaged bot before letting it loose in the rumble.  
 
  
==To enter the 1v1 competition==
+
== See Also ==
  
* Upload your bot into hosing of your choices (see note below).
+
{{Navbox RoboRumble}}
* Go to [[RoboRumble/Participants]] page and add your bot to the list.
 
* You should be able to see the results (some time later) in [[RoboRumble/Current Rankings]].
 
 
 
NOTE: It's is not recommend to upload your robot to [[Robocode Repository]] any more, due to its instability(the overall connectivity is still all right, though). Instead, use your own web hosting if available, or try Google Pages. Dropbox public links may work too. Shared file hosting service will NOT work.  If you would like to upload a bot into robocode repository, there is a very detailed description at '''[http://everythingrobocode.moonfruit.com/ EverythingRobocode]'''.
 
 
 
==To enter the Melee competition==
 
 
 
If you are planning to enter the Melee competition, then enter your bots into [[RoboRumble/Participants/Melee|Participants Melee]].
 
 
 
==To enter the Teams competition==
 
 
 
If you are planning to enter the Teams competition, then enter your teams into [[RoboRumble/Participant/Teams|Participant Teams]].
 
 
 
==To add your country's flag to ranking table==
 
 
 
In the rankings tables bots are represented with a the flag of its authors nationality. We associate the "main" package of the bot with a flag. If you find your bot has no flag, or has the wrong flag, let us know at [[RoboRumble/Country Flags]].
 

Latest revision as of 22:23, 16 September 2017

To create a bot that is accepted by the RoboRumble server, the following rules are mandatory:

  • The bot must have a package name.
  • The bot must be packaged in a JAR file.
  • A <botname>.properties file must be present in the JAR file.
  • The naming of the bot must reflect the internal structure.

The easiest way to do this is to package your bot with Robocode (Robot -> Package robot for upload).

Strong recommendations

  • Choose a unique main package name to avoid mixups between different authors. Stick with that one main package name per author.
  • Do not use underscores in your package name, bot name or version number. Robocode itself has no problems with it, but the client is known to have problems with them, especially in version numbers.
  • Keep your bot Java 8 compatible. The 2017 Java client survey showed that majority of the rating generating clients run Java 8.
  • Some would even say to keep your bot Java 5 compatible. This means compiling with -target 1.5 -source 1.5 and avoiding features introduced in later versions of Java. The RoboRumble client places no restrictions on the version of Java used to run matches, and someone might run your robot with Java 5, producing invalid battle results.
  • Try out your just-packaged bot before letting it loose in the rumble.
  • If your robot is worse than MyFirstRobot, don't enter it.

Publishing the JAR

You will need to upload your robot's JAR on a website that can store arbitrary files, giving you an URL with which others can download your robot. Keep in mind the following:

  1. The link must be a direct link. When the link is clicked, the JAR must immediately begin downloading, without any intermediate page.
  2. The link should not break. You should upload your JAR to a reliable file storage service. Random "free online hosting" services are definitely out. Broken links generally will not cause data loss, as all JARs entered into the rumble are backed up on Rednaxela's server; they are just annoying to fix.

Suggestions for your file host:

Entering the competition

  1. Decide which rumble you want to enter:
    • RoboRumble – Two-bot duel on a 800x600 battlefield over 35 rounds. Suitable for 1v1 and melee robots.
    • MeleeRumble – Ten bots on a 1000x1000 battlefield over 35 rounds. Suitable for melee robots only.
    • TeamRumble – Two teams of 5 bots each on a 1200x1200 battlefield over 10 rounds. Suitable for 5-bot teams.
    • Twin Duel – Two teams of 2 bots each on a 800x800 battlefield over 75 rounds. Suitable for 2-bot teams limited to 2000 Code Size total.
    • The rumble will automatically calculate your robot's Code Size and place it in the appropriate category.
  2. Upload your bot into file-hosting of your choice (see above).
  3. Add your robot to the correct participants list (1v1, melee, teams, Twin Duel).
  4. You should be able to see the results (some time later) on LiteRumble.

Adding your country's flag to ranking table

Enter your main package name and your country's ISO 3166-1 alpha-3 code into RoboRumble/Country Flags.

See Also