How I became a champion of Robocode

I am Jdev , the author of the Tomcat robot , who in November / December 2011 was the King of the Premier League of the overall classification Robocode ( proof ) without a single defeat, now takes the 3rd place out of 911 in the percentage classification and is the hero of my story. I decided to write this article to attract compatriots' attention to this game, because it becomes already difficult to defend the honor of the Russian flag alone (apart from my two robots, the best Russian robot takes 142nd place). I decided to build the story in the form of a magazine.

To begin with, I’ll briefly open the heading, in which I didn’t lie a lot for the sake of a red word. Robocode is a game for programmers ( robocode , robowiki) in which you need to write a tank control system (robot, bot). Then the tanks fight among themselves and get points for winning rounds and hitting the enemy. The game uses two rating systems: the average percentage of points (in the community this system is called the Averange Percents Score, APS, and is the main one) and the number of wins (in the community this system is called the Premier League). The community of champions is called Kings, so I will use this word in the future. So the guile of the title is that the King without prefixes is determined by the spectacle system, and not by victory.

2005-07: The beginning
I remember exactly that the first time I read about Robocode in the spring and summer of 2005 on javaportal.rubut now, for some reason, I can’t find that article. I wrote some simple bot that tore demo bots and decided that I was incredibly cool. I downloaded the Shadow robot , which in 2004 became the second and last absolute champion at the moment (duel, fight and team duel). Naturally, he tore my pet into small pieces. I don’t remember exactly whether it was a defeat, or a blockage at work, or a blockage at school, but by the fall of 2005 I had started.
I remembered Robocode again in 2007, after I first read about genetic algorithms. I tried to “pick up” DNA, which would determine the sequence of commands for responding to events, and this idea, of course, failed miserably. What ended my second foray into this game.

June-July 2009: Step to the 0 step
In June 2009, I was asked to conduct a special Java course at the Summer School of Programming of the NSU NSI and I decided to try to build classes around tank programming (it was a bad idea, and it turned out that I don’t know how to work as small children). And in order to learn something, you need to learn it yourself. So began my third, three-year campaign for the Premier League crown.

Summer 2009-Autumn 2010: we collect a rake
I decided to call my robot “original” Jdev. The most amazing thing is that Tomcat still has pieces of code and Jdev's design written in the 2009th year. I believe that if we are not talking about industrial programming, then the invention of the bicycle is very useful for self-development, and therefore I deliberately avoided reading robots, and independently invented all the bikes. And this, perhaps, was my biggest mistake for the whole trip.
In the fall of 2009, I decided to become more original and renamed Jdev to UltraMarine. I chose this name, because in the summer of 2009, we spent more than one night in a hostel hacking into Warhammer: 40,000, and although I played for Tau, the most harmonious seemed to me the name of this worthy order of my sworn enemies.
Over the course of these one and a half years, I came up with and tried everything I could - both existing techniques and some of my own - I dreamed of surpassing ABC , the author of Shadow, who invented the fundamental technique of this game. But all was unsuccessful.

Winter 2010-11: Release! I didn’t succeed ...
One evening, in depression, I decided, “Burn it all with a blue flame!” And licked my pet. The pet immediately began to gain 0 points in battles and research showed that it uses the API version 1.7, and version 1.6 was used for official battles. It was not difficult to finish the bot (which I did soon), but at that time depression prevailed.

Spring-Summer 2011: Finding Yourself
In March 2011, another “breakthrough” occurred, so I decided to rebrand UltraMarine in honor of this and renamed it Primarch. Then I spent 3-4 months on a “breakthrough”, which once again failed. In July 2011, I realized another failure and decided to spit on the glory of the inventor and just make a good robot. So he was born, the future champion, Tomcat.

August 5th, 2011: Release!
Finally, on August 5th I decided to release. The release turned out to be quite successful - 50th out of 816. Then there were 2 unsuccessful releases - which made me think that I had reached RoboResearch- tools for automatic execution of battles locally, which in the case of a sufficient number of battles against all robots can very accurately predict the place. However, tulza was either written a very long time ago, or simply crookedly written, and she carried out battles by launching a bat-nickname of the game. And the initialization of the game can be many times longer than the actual battle. That's why I decided to write my tool Distributed Robocode - it, firstly, initialized the engine only once and, secondly, allowed to simultaneously launch several battles on different computers. I don’t remember the exact numbers, but my tool is much faster. I completed the first version of tulza by September 23rd, 2011.

August-November 2011: Way to the Top
I did not conduct any special research, but I think that I’m not really lying, if I say that Tomcat’s climb was one of the fastest, if not the fastest in the “modern” history of the game. Therefore, further events are developing rapidly. But I will give only key steps.
August 10 (40th place): a new data management system for aiming the enemy, +5 places and the first small-scale innovation.
August 11 (32nd place): sorting data on the shooting of the enemy, +8 places in just one line!
September 12 (25th place): when choosing the enemy hit logs, information is used about where he did not shoot, +7 places and the second small-scale innovation.
October 7 (7th place): rewrote a gun using the k nearest neighbors algorithm, +8 places
November 3 (4th place): improved the use of information about the “darkened” (knocked down by my bullets) enemy bullets, +3 places

November 6, 2011: Crown!
It was enchanting. Around this time, we went to Angarsk, my girlfriend’s hometown. To go there from Novosibirsk for a day and a half, so we took a laptop and along the way I “danced”. “Natanchil” the genetic thing - now, when determining the danger of a position, the distance between me and the enemy is taken into account, not at the moment when this position is reached, but the minimum distance between this position and all enemy positions. In the morning I immediately started the test and very quickly it became clear that the new version was a success. I laughed it and went to my girlfriend’s sister’s birthday. We sit, drink, talk, and one thought revolves in my head: “Well, how is it there?”. It is important to say that this was my first meeting with future relatives. Finally, pretty much, after drinking, I decided to ask on the Internet and I see - 3rd place! CROWN PREMIER LEAGUES! What started there - I almost danced for joy and immediately christened the girl the Queen of the Premier League. In general, it is still embarrassing for that day, but my parents did not forbid the girl to marry me.

H oyabr-December 2011: The battle for the crown
in this month between the 2 by 3 best bots (DrussGT, Diamond and Tomcat) battle unfolded for the Premier League crown. During these 2 months, she changed hands 5-6 times and this fact was noted in the 2011 chronicle. The winner of that battle was DrussGT, who for more than 4 years has been the main (in percent) King Robocode. This state of affairs has been preserved to this day.

January-June 2012: Stagnation
By the new year, I ran out of steam and took leave until February. Nothing good came out in February, and against this background, my enthusiasm gradually died until June. And in June, nothing interesting happened either, except that I only had revolutionary ideas in terms of code and I started developing Tomcat’s younger brother, ConceptA.

This ends a fairly glorious, but not perfect story about how I became the champion of the Premier League Robocode. I hope the second attempt will be more successful. I also hope that at least one of you, dear readers, I am interested in this game. See you on the square battlefields!

Also popular now: