I am
Jdev , the author of the robot
Tomcat , who in November / December 2011 was the King of the Premier League, Robocode (
proof ) without a single defeat, now occupies the 3rd place out of 911 in the percentage standings and is the hero of my story. I decided to write this article in order to attract the attention of compatriots to this game, because it becomes difficult to defend the honor of the Russian flag alone (apart from my two robots, the best Russian robot will occupy 142nd place). I decided to build a story in the form of a magazine.
For a start, briefly expand the title, in which I did not gossip for the sake of the red word. Robocode is a game for programmers (
robocode ,
robowiki ) in which you need to write a tank control system (robot, bot). Next, the tanks fight among themselves and get points for winning the rounds and hitting the enemy. The game uses two rating systems: the average percentage of points (in the community, this system is called Averange Percents Score, APS, and is the main one) and the number of wins (in the community this system is called Premier League). In the community of champions called Kings, so I will continue to use this word. So the sly headline is that the King without prefixes is determined by the spectacle system, and not the victorious one.
2005-07: StartI remember exactly that the first time I read about Robocode in the spring and summer of 2005 was on
javaportal.ru , but now, for some reason, I can’t find that article. I wrote some unpretentious bot who tore demo bots and decided that I was incredibly cool. I downloaded the robot
Shadow , 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 blockade at school, but by the fall of 2005 I had begun.
I remembered Robocode again in 2007, after I first read about genetic algorithms. I tried to “undermine” the DNA that would determine the sequence of commands for reacting to events and this idea, of course, failed miserably. What ended my second foray into this game.
June-July 2009: Step to the 0th stepIn June 2009, I was asked to conduct a special course on Java at the summer school of programming at the Voronezh State University, and I decided to try to build classes around programming tanks (it was a bad idea, and in general it turned out that I don’t know how to work with very young children). And in order to learn something, you have to study it yourself. So began my third, three-year hike for the crown of the Premier League.
')
Summer 2009-Autumn 2010: we collect rakesI very “originally” decided to call my robot Jdev. The most amazing thing about Tomcat is that there are still pieces of Jdev's code and design written in 2009. I believe that if we are not talking about industrial programming, then the invention of a bicycle is very useful for self-development, and therefore I purposely avoided reading robotics, and I invented all bicycles on my own. 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 into UltraMarine. I chose this name because In the summer of 2009, we spent more than one night in a hostel hacking to Warhammer: 40,000, and although I played for Tau, the name of this most worthy order of my sworn enemies seemed to me most euphonic.
Over the past year and a half, I invented and tried everything that was possible - and existing equipment 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! Failed ...One evening, in depression, I decided to “Yes, burn it all with a blue flame!” And released my pet. Pet immediately began to score in the battles of 0 points and the study showed that it uses the API version 1.7, and version 1.6 was used for the official battles. It was not difficult to finish the bot (which I soon did), but at that time the depression took over.
Spring-Summer 2011: Looking for yourselfIn March 2011, another “breakthrough” happened, 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 5, 2011: Release!Finally, on August 5th, I decided to release. The release was quite successful - the 50th place 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 predict a place. However, the tool was either written a long time ago, or simply crookedly written, and the battle was performed by launching the 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
Distributed Robocode tool - it, first, initialized the engine only once and, second, it allowed you to simultaneously run several battles on different computers. I don’t remember exact numbers, but my tool is much faster. I finished the first version of tulza by September 23rd of 2011.
August-November 2011: The Way to the TopI didn’t conduct any special research, but I think that I’m not going to make a bad lie if I say that Tomcat's ascent was one of the fastest, if not the fastest, in the “modern” history of the game. Therefore, further events develop rapidly. But I will give only key steps.
August 10 (40th place): a new data management system for aiming the enemy, +5 seats and the first small innovation.
August 11 (32nd place): Sorting enemy shooting data, +8 places literally in one line!
September 12 (25th place): when choosing adversary hit logs, information is used on where he did not shoot, +7 places and the second small-scale innovation.
October 7 (7th place): rewrote the gun using the algorithm of k nearest neighbors, +8 places
November 3 (4th place): improved use of information about “darkened” (knocked down by my bullets) enemy bullets, +3 places
November 6, 2011: The Crown!It was enchanting. Around this time, we went to Angarsk, the hometown of my girlfriend. A day and a half to go there from Novosibirsk, so we took a laptop and on the way I “tanchil”. “Natanchil” the genal factor - 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 launched the test and very quickly it became clear that the new version was a success. I released it and went to the girl’s sister’s birthday party. We sit, we drink, we talk, and one thought is spinning in our head: “Well, how is he there?”. It is important to say that this was my first acquaintance with future relatives. Finally, pretty much, having drunk, I decided to ask for it on the Internet and see - 3rd place! CROWN PRIME LEAGUE! What started there - I almost danced with joy and immediately baptized the girl Queen of the Premier League. In general, it is still a shame for that day, but my parents did not forbid the girl to marry me.
N
october-December 2011: Battle for the crownIn the 2 months between the 3 best bots (DrussGT, Diamond and Tomcat), the battle for the Premier League crown took place. 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 (by interest) King Robocode. This state of affairs has survived to this day.
January-June 2012: StagnationBy the new year, I ran out of steam and took leave until February. In February, too, nothing good happened, and against this background my enthusiasm gradually died until June. And in June, too, nothing interesting happened, except for the fact that all I had left was ideas that were revolutionary in terms of code, and I started developing my younger brother Tomcat, ConceptA.
This concludes a glorious but not perfect story about how I became the champion of the Premier League Robocode. I hope the second attempt will be better. I also hope that at least some of you, dear readers, I am interested in this game. See you on the square battlefields!