This is the starter codebase for the RoboCode arena featured in CodeClash.
The code represented in this codebase comes from the following sources:
- https://github.com/robo-code/robocode: This is the main RoboCode repository. We found several alternatives, including https://github.com/robocode-dev. We elected to use the repository with the most stars.
- Specifically, from the home page of the website, we follow the instructions and download the
.jarinstaller from https://sourceforge.net/projects/robocode/files/robocode/1.10.0/robocode-1.10.0-setup.jar/download, which is the latest stable version as of June 2024. Upon downloading, the.jarinstaller creates a directory under the user's home directory calledrobocode/, which contains the original contents reflected in this codebase. - As indicated by the
robocode-devcreators, therobocoderepository is the original (written here). For the original iteration of CodeClash, we decided to stick with the original, but we may consider supporting the modernized version in the future.
- Specifically, from the home page of the website, we follow the instructions and download the
The original content is quite comprehensive in what is included:
- The
battles/directory provides several example battle configurations that can be run out the box. - The
javadoc/directory provides the API documentation for writing robots, game details, etc. - The
robots/directory is where the submission code lives (underrobots/custom/) and also contains many example robots.
We then make several minor modifications to the original codebase:
- We move all non
robocode.*root level scripts (e.g.,meleerumble.*,teamrumble.*) to thearchive/directory. We do not expect these scripts to be used in the CodeClash competition, although they are left in the codebase for reference. - We remove the
battles/intro.battlefile, which does not run successfully in our testing (command:./robocode.sh -battle battles/intro.battle -nodisplay -nosound -results results.txt). - We add a
CODECLASH.mdfile (this file) to document these changes.
There are several other folders that are arguably unnecessary (e.g., theme/, templates/), but we leave them in for completeness and faithfulness to the original codebase.