As PEZ noted, I turned in a lot more battles today than yesterday. If you work out the math, I averaged 443 battles / hour yesterday from the time the contest was announced to the time that the winner was announced. During the same time period Pulsar averaged 464 battles / hour (He started with a 4800 battle lead). From the time that the winner was announced yesterday to right now, I have averaged 602 battles / hour, using the same 2 computers as before.
Here's how...
I noticed that my laptop spent a looong time on battle 0... presumably loading robocode in the background. So step 1 was to raise the number of battles per iteration. More battles per iteration means that I'm spenging more time running battles and less time loading. I set that to 100.
Another thing I noticed was that my laptop was a little slower at running battles, but was MUCH slower at loading robocode. I attribute this to cheap laptop hard drives - they tend to have very small caches, spin at low rpms, etc. So in order to decrease the amount of time my laptop spends loading data from the disk, I deleted every bot from .robotcache and from /robots that wasn't in the competition. I also deleted the robot.database to force robocode to rebuild it. This cut the loading time down, drastically, maybe about 1/2 what it used to be.
Lastly I noticed that I kept getting assigned SlowBots as focussed competitors, SlowBots that already had plenty of battles! I think I got assigned Cigaret about 5 times. 100 rounds of Cigaret takes quite a while. So every time I got assigned Cigaret, I killed the client and restarted it. I changed the batch file to notify me when the battle was starting so I could check if it was Cigaret. I also monitored my desktop using Remote Desktop.
I'm sure there are other clever things you can do to increase your battles / hour, so (in the spirit of the wiki) play around and let us know what you find!
--David Alves
P.S. It's now 23.5 hours (I'm too sleepy to stay up for 24) since PEZ reset the competition, and during that time I have turned in 14440 battles, for a 1-day average of 614.5 battles / hour.
- I think in this situation the Smart Battles system works the other way around. It takes all robots that need battles, and pits them against the same opponent until all have fought this opponent. I've seen that behaviour before, when there were lots of new robot updates in the rumble. In this case your 'tweak' will in due time cause somebody else's client to run those slowbot battles that you refuse. If this were a serious competition I'd have you disqualified ;-) --Vic
- No, priority battles work by selecting bots with < 500 battles. Check PrepareBattles?.java. In this case it made a mistake selecting which bot to run. --David Alves
- I think you're wrong. There's more to priority battling. Even if I can't really follow the code. About disqualification, since tis was not a really serious competition I'll allow David's cheat. And also declare David winner of the MostCompetetiveRobocoderEver competition. Which takes some given that I am particpating. =) -- PEZ
- Yes there is more to the priority battles. The battles < 500 code is only used if priority1v1.txt is not present. That is the case only in the first iteration if the client didn't shut down cleanly before. When the client uploads results it get a list of battles from the server that is saves and that overrules the >500-code the next iteration. -- Strider (who now thinks he understands the client code somewhat)
- Since I'm still up, I finished the 24 hours with 15005 battles, 625.2 battles / hour. Now I really must get to bed. :-) --David Alves