About Robocode
RoboCode is a game where teams use Java to program one or more robot tanks to battle in an arena against each other. The little graphical tanks need to be programmed to avoid being hit. They need to be smart enough to move around an arena without any kind of manual control. All of their intelligence is part of a single Java file. Unlike the real-life destruction possible with the Scorpion tank that posed menancingly outside the TUS Thurles venue, the RoboCode tanks depended on artificial intelligence and computer ammunition to maneuver, fire and hunt.
The little graphical tanks need to be programmed to avoid being hit. They need to be smart enough to move around an arena without any kind of manual control. All of their intelligence is part of a single Java file. During a short interview and inspection prior to the contest, judges ensure the contestants have created the RoboCode Java used in their submissions.
The arena is a large computer monitor that is projected onto a wall. Everyone can see the ruthless robots at work, including information about the energy level and radar scanning capability of each robot. Each RoboCode match normally lasts less than three minutes, until one robot tank is destroyed. Similar to a real land battle, all the work for RoboCode happens well before the robots are launched into battle. Like all complex machines, the magic is under the bonnet.
The competition is targeted at 1st year programming students. It is intended as an opportunity for fresher years to demonstrate their programming abilities and advance their knowledge of GUI programming, API usage and Artificial Intelligence.
2025 Rules
Last Update 16-01-2025 Version 6.11
- Entrants to the Robocode Ireland can be
- Individual entry
OR
- Team entry (of no more than 3 students ).
from 1st year Full Time Undergraduate 3rd level courses.
- One entry per educational institution will be allowed. Colleges and Universities must officially register their entry into the competition. In the case of the newly formed Technical Universities, one entry per Technical University campus will be allowed.
- All robot submissions must arrive in electronic format. All paperwork must be included with the submission.
- Copies of entrants source code must be submitted to the Interview Panel for review, as set out in the competition schedule. The student(s) must also supply supporting documentation explaining their tanks behavior and how they have implemented this in the source code. The Interview Panel will be nominated by the organising committee. The Interview Panel will meet with all National Final Entrants prior to their competing in the event. The Interview Panel must be satisfied as to the suitability of each entrant’s submission and that it fairly reflects the work and research of the individual or each member of a team. Each team member must be present themselves for interview. If a team member does not present for interview then they cannot form part of a competing team, no exceptions.
- Only 1 Robocode robot is allowed per team entry. This robot will be used for all battles.
- The Robocode tank will only use the classes and methods available in the standard Robocode Development environment 1.9.5.4 available from being used during the event and the Java SE 6.0 API Specification or greater. No other API’s or external classes will be allowed. The Robocode tank is “not” allowed to extend the AdvancedRobot class.
- The Robocode tank should be contained in one JAVA file. This Java file can contain multiple classes. Files will be compiled prior to entering a battle match. Robots that do not compile will be disqualified from that battle / match. External configuration text files will be permitted where this has been explicitly stated in the entry documentation
- The qualification format for all battles is based on melee. This means that the following scenario will be employed The group structure will be determined after registration of all teams
- 1 BorderSentry robots will be used in the melee battle, the source code is available from http://gamesfleadh.ie/wp-content/uploads/2018/01/sentry.zip
- Teams will not be awarded points or energy for hitting the BorderSentry robot
- Two teams will take part in a Melee battle.
- The number of rounds will be set to 1. The winner of the round will be determined by the Robocode software. The highest placed team will be determined to be the winner and awarded 1 point. The losing team(s) will be awarded 0 points. Robocode software uses a combination of survival and shot accuracy to determine the overall position/result of each tank in a battle. The first team to 3 points wins the match
- 4 teams will take part in the Semi Finals. There will be one qualifying group (unless there is an unprecedented number of entries) . There will be two semifinals. Winners of the group will play third place in the group and second place in the group will play fourth place in the group. If teams are tied for first place, 2ndplace, 3rd or 4th then a melee battle of these tied teams will take place. There will be 3 rounds with 1 BorderSentry robot. The robocode software scoring mechanism will determine first, second, third etc of the melee. Depending on where the tie occurs the results of the melee for a tied position may determine all semi final positions or just 1 semi final positions. Judges decision is final.
The semifinal will consist of:
- One on One with 1 BorderSentry robot
- Highest score is awarded 1 point.
- The first team to 5 points wins the match
- The 2 losing semifinalists will take part in a 3rd and 4th place play off
- One on One with 1 BorderSentry robot
- Highest score is awarded 1 point.
- The first team to 5 points win the match
- The winners of the 2 semi-final matches will take part in the Final
- One on One with 1 BorderSentry robot
- Highest score is awarded 1 point
- The first team to 7 points wins the final.
12.The teams that fail to qualify for the final stage will take part in a melee battle to determine 5th to last place.
- The number of rounds will be set to 3
- The team with the highest score as determined by the Robocode sw will be determined to be the winner and will awarded 5th,
- At least 1 BorderSentry robot will be used
- 13. The screen size for all battles will be 800 x 800. Border sentry size is 300. Cooling gun rate will be 0.1 and inactivity time will be 450. Robots energy, name and scan arcs will be visible. Frames per second will be set at a rate that allows the audience to view all aspects of the battle. If there are a large number of robots taking part in a battle a slow frame rate e.g. 15 may be used. If there are only a small number of robots taking part a faster rate e.g. 30 will be used.
14.The Robocode Java code must be the creation of the contestants. Any breach of this will result in immediate disqualification. Plagiarism in the Robocode competition will be where an entrant presents java code verbatim from another source without proper acknowledgment, where they incorrectly identify the inventorship, intentionally distort code from another source and present as new material. This will also include where an entrant cannot present the material to the panel of judges during an entrant interview process.
- The decisions of the Organising committee, Interview Panel and Judges will be final.
Resources
RoboCode 2025 Official VersionSentryBot behaviour used for Robocode Ireland 2025 Competition
We started Robocode Competitions in 2003, Robocode was redesigned in 2014 so that a robot receives no energy or points for hitting the SentryBot, this approach will be used for 2024
In 2014 we implemented a new BorderSentry class to achieve this which uses the idea of a BorderArea (coloured red) which allows the SentryBot to cause damage to robots. If the robots are in the “safe zone” (coloured blue) the SentryBot bullets do not cause any damage. We recommend a safe zone of 100×100 in the middle of the screen which implies a border area of 300. The safe zone concept only applies to bullets from the SentryBot.
Robocode can be downloaded directly from the Robocode web site the version we will use for 2025 is 1.9.5.4
The SentryBot should be placed in c:\robocode\robots\sentry. SentryBot (you will need to extract the zip file and copy the robot to the folder c:\robocode\robots\sentry)
You also need to configure inside Robocode the Options->Preferences sub menu to show the Sentry Border Area (in red) . Tick the box beside the option Visible Sentry Border
The Robocode Arena for 2023 has the following properties:
Battlefield Size – 800×800
Sentry Border Size 300
The SentryBot has the following properties:
- Spawns randomly along the edge and does not move
- Robots receive no energy or points for hitting it
- If a robot is in the safe zone when hit by the SentryBot bullet it receives no damage
- Utilises linear targeting, this means that robots that move in straight lines will be easy targets, robots that move in random directions, curves or parabolas will be difficult targets
- Target Acquisition Algorithm (lines 392 to 438)
- Set the target robot to be the one that exhibits the largest change in X or Y from the previous scan
- Each robot has a delta value which is either the change in X or Y (whichever is larger)
- maxDelta decides which robot becomes the target
- If a robots delta is greater than maxDelta it becomes the new target
- Robots inside safe zone will not be damaged by fire from the sentry robot