I learned of Robocode surprisingly late in the game, considering that I'm a Java developer and loved earlier similar games like C-Robots. I first learned of Robocode in September of 2006, thanks to someone else where I work. Since then most of my efforts have been in learning the game and developing my first robot, Athena. Although I may eventually write other robots, at present time my only other robots are very simple test bots.
I'm not currently releasing my robot for general destruction, or to compete in public competitions. I'm planning on waiting until after the competition at work, plus there are a number of areas that I still need to work on. I also need more time to collect robots to test against. I have had chronic problems attempting to access and download robots from the robocode repository website. To date, I've only been able to download a small handful of other robots. If anyone knows of an alternative source to obtain robots from, please let me know!
Rihan takes all I've learned from Athena, throws out everything that didn't work, cleans up everything that did work, and includes new ideas that *might* work. It's a very tough job being new to Robocode and trying to develop a competitive bot without examining or using other people's code. However, I have confidence that Rihan will make a decent showing.
When I refer to statistical targeting and movement, I'm refering to my custom algorithms that use statistics as a base. It's likely very similar to Wave Surfing and Guess Factor Targeting from what I've read. For Rihan, the statistical algorithms are completetly re-written.
At present, the statistical algorithms are still under development, and the melee movement needs to be written as well. My target date for completion is 1/15/2007.
Update:It's been a long time...I became frustrated and moved on to other things for over a year, but now I'm playing around with Robocode again. One of the reasons for my frustration is that, despite my best efforts at the time, I was unable to write a Wave Surfing module superior to simple random drive, my Guess Factor Targeting really wasn't any better than just having Linear and Circular targeting, and I began to feel as though everything I was interested in doing with Robocode would end up being disadvantages for whatever bot I built. May not be true, but for example, I can't help but think that small compressed highly-efficient bots will be superior to the modular object-oriented bots I want to write. I've also started to wonder if the superior targeting algorithms are one that just use some kind of refined guessing as to the actual mathematical calculations I was trying to do (even "simple" linear targeting turns out to be quite complex if done as a single no-guess no-simulation algorithm).
Nevertheless, I'm back again...sort of. For the moment, I feel like playing with Robocode bots again. Rihan is no match for the advanced bots out there, but is still a pretty decent bot. I suppose I should clean up the code and post it as open source in case anyone wants to look at it. I wrote it entirely myself.
Athena was initially developed for a small competition at work. Because I enjoy trying to write everything myself, and because it was a requirement for the competition, all of my code is written by me, without examining nor using existing code from others, though I have garnered a few ideas from reading through some informational pages here and there.
Thank you for pointing that out, Kinsen. Much appreciated. -- Skotty
I am pretty much done with Athena in it's current version. Athena is big, sloppy in parts, and I think a few things need to be rewritten completely. I would say it's a relatively mediocre robot from the few tests I've run against other non-sample bots. I am starting a re-write now, but I haven't decided whether this will be a new robot or just another version of Athena. -- Skotty (12/18/2006)
I do alot of rewrites myself, I want to constantly build new bots, as almost all my tuning attempts always make it worse then the original version. --Chase-san
Same experiences. Just keep your original code for every version, restore if necessary, and if you start like me, with megabots, you will have a hard time squeezing your code later. I am not discouraging, but just recommending you start from smaller ones, or maybe a minibot, and welcome to the Wiki. -- Aryary