I patched robocode 18.104.22.168's roborumble by cherry-picking roborumble client fixes from 22.214.171.124 and 126.96.36.199
The patched roborumble.jar can be downloaded from:
This should check participants list more often preventing retired bots from being battled and submitted nullifying smart battles. And on unstable network it won't upload 80000 duplicate battles for a single pairing any more. (See pulsar.PulsarNano 0.2.4 and ad.last.Bottom 1.0)
I suspect we should separate roborumble version and robocode version (since they are weakly dependent) and get roborumble bug fixes quicker than robocode, since roborumble bugs are generally more serious, and roborumble fixes has nothing to do with the rest of robocode users.
Currently fixes in roborumble takes almost a year to be actually deployed.
I've enabled 188.8.131.52 for uploads. Let's try it for a while and see how it goes. If we notice anything strange, well, the rumble probably needs a wipe some time soon anyway, and definitely melee.
I'll upgrade all my clients later and upload the same bot of mine with different version number to see the impact on score...
The melee part is already discussed, but why the 1v1 rumble needs a wipe as well? And how long it should take to reload the rumble? Or should we run the current rumble as a backup in parallel until the reload completes? (so that new players can still submit their bots)
Hopefully we don't need to wipe 1v1 rumble. I am more just concerned with bad configurations, running with Java10 etc that have accumulated.
Have you managed to make a patch for the melee priority battles?
The rumble clients load version number dynamically, maybe we should tweak this to append Java version after version number as well to prevent running and uploading with Java 10 incidentally.
And since we have rolling average, the accumulated effect of bad configurations should be fixed automatically (after a lot of battles).
A patch for melee priority battle is harder than I thought, as the data structure (currently, very bad, string) needs a redesign for the extra 1 bit of information. And almost every line of code needs a rewrite as it depends on the implementation details of the (not extensible) data structure.
Done! After some refactoring, the rumble client should upload only pairings containing the prioritized bot, or containing the predetermined random bot when running prioritized battles.
The only flaw is that when the rumble server returns prioritized pairings, etc. A and B, if B is not evenly distributed, then B will get biased battles (meet more A). Is literumble using this feature currently? How not evenly distributed is bot B returned in this case?
Last edit: 04:37, 18 October 2018
Seems something is wrong, ScalarN is suddenly first in mini, micro and nano rumble ! And ofcourse second in roborumble, which in itself is quite an accomplishment.
Just removed ScalarN d.160
The only related change in d.160 is experimenting lambda expressions
And it seems that codesize.jar cannot analyze bots with lambda expressions and returning non-valid results
We should disable 184.108.40.206 and wait for codesize fix along with my melee pairing fix.
I submitted an issue: https://github.com/robo-code/codesize/issues/3
The codesize utility currently uses BCEL 5.2 which cannot handle Java 6, 7, 8 features properly. And the roborumble client has a logical bug that treats codesize calc failure as codesize 0 and allowing it to participant in even nano. The correct logic should be treating codesize calc failure as infinity, only allowing it to participant in MegaRumble.
I will definitely have to fix codesize as I have not touched it for many years. :O
Also notice that it will be faster to write to me a mail at fnl (at) users.sourceforge.net in order to have me fix as many issues related to RoboRumble as possible (this has a high priority to me). Just tell me to look on this discussion, if all details are already provided. This way you'll not have to wait for me updating Robocode, Codesize, RoboRumble etc. :-) And thank you for providing me with patches for RoboRumble. It is a great help to all of us.