Upgrade client version

Jump to navigation Jump to search

I patched robocode 1.9.2.5's roborumble by cherry-picking roborumble client fixes from 1.9.3.2 and 1.9.3.3

The patched roborumble.jar can be downloaded from:

 https://drive.google.com/uc?export=download&id=12lu8H4SlpBxOFRF5L8_koU5j7Cla5BLj

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.

Xor (talk)04:57, 20 September 2018

I've enabled 1.9.3.3 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.

Skilgannon (talk)16:18, 3 October 2018

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)

Xor (talk)16:40, 3 October 2018

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?

Skilgannon (talk)16:45, 3 October 2018

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.

Xor (talk)17:05, 3 October 2018
 

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?

Xor (talk)01:44, 4 October 2018

Bot B is randomly selected from missing pairs, or if pairings are complete then randomly selected, with weighting biased towards lower number of battle pairs. It should be ok (and regardless, much much better than the current situation)

Skilgannon (talk)16:23, 4 October 2018

Great! I’ll send the patch to fnl after some test.

Now I need some test bed on literumble, or deploy one myself.

IIRC, everyone is able to create a new rumble game on literumble by writing rumble client config?

Xor (talk)01:56, 5 October 2018

You can do it on literumble and I will delete when you are done.

Skilgannon (talk)07:58, 5 October 2018

Something strange happens.

http://literumble.appspot.com/BotCompare?game=roborumble&bota=aaa.n.ScalarN%200.011d.148&botb=aaa.n.ScalarN%200.011d.145&order=-Diff%20APS

ScalarN scores APS 0% and survival 0% (it was all 100%/100% before recent 1-2 days) against some bots with APS lower than 50, after 1.9.3.3 is allowed. However I've been testing my bot with 1.9.3.2 and 1.9.3.3 since the first day and nothing strange happens.

I noticed that Anonymous uploads in http://literumble.appspot.com/RumbleStats, which is the only machine besides my servers. I'm pretty sure this strange score does not come from my servers.

Is that possible to see whether some strange pairings comes from a specific uploader?

Xor (talk)07:52, 6 October 2018

After more investigation, I thought that those strange score may come from some one who incidentally clicked roborumble.bat without proper configuration which however I never reproduced.

Using the latest robocode version as accepted one and allowing Anonymous uploads is risky as robocode has a lot of downloads per week and anyone who incidentally clicked roborumble.bat contributes without verifying configuration.

Maybe we should also modify roborumble client to add a field usually called "User Agent" and upload OS/Java Version etc. so that strange scores should be more trackable.

Another option is to disable Anonymous uploads when using the latest version of robocode, but this would only prevent incident roborumble runs and wouldn't verify user agent.

Xor (talk)02:08, 7 October 2018
 

Some time ago I accidentally set up the gigameleerumble, while it should have been named meleeTop30rumble. You can remove the gigameleerumble, all bots have around 10-20 pairings.

GrubbmGait (talk)16:11, 6 October 2018

Honestly, I like the name gigameleerumble better ;-) Maybe we should switch to that instead?

Skilgannon (talk)20:57, 8 October 2018

I like gigameleerumble better as well ;) However is there a way to migrate old battles from meleeTo30 rumble to GigaMeleeRumble?

Xor (talk)05:27, 9 October 2018

I personally like meleeTo30 since it describes participating bots. GigaMeleeRumble might be confused with ultra-large-sized bots, since we have nano and micro rumbles.

Beaming (talk)16:23, 9 October 2018

yeah, my first impression on gigarumble was those with code size greater than 1 GigaBytes ;)

However it would be confusing for two similar rumble having quite different name;) and giga also sounds awesome;)

Xor (talk)18:29, 9 October 2018
 
 
 
 
 
 

Well, another special case is the initialization process. When every battle is a prioritized battle, should we have something special to prevent the slow down?

Xor (talk)03:02, 7 October 2018

Potentially I could add something on the literumble side, yes. Also, if there are less uploads for melee then it can send back priority battles on every pair, or at least more often. Right now it only sends back priority on a fraction of the uploads.

Skilgannon (talk)21:01, 8 October 2018
 

Another question — will literumble return prioritized pairings all the time? or will it stop after each bot gets enough battles.

Xor (talk)04:18, 7 October 2018
 
 
 
 
Edited by another user.
Last edit: 03: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.

GrubbmGait (talk)00:07, 18 October 2018

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 1.9.3.3 and wait for codesize fix along with my melee pairing fix.

Xor (talk)02:59, 18 October 2018

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.

Xor (talk)04:14, 18 October 2018

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.

Fnl (talk)18:59, 19 October 2018

Thanks for the contact info ;) And it is my pleasure to help as well.

Xor (talk)05:23, 20 October 2018
 

Codesize 1.2 for Java 7, 8, 9 (Experimental) is ready.

Do we need to fix other stuff for RoboRumble before I make another release?

Fnl (talk)20:42, 28 October 2018

Sure, the meleerumble pairing algorithm also needs a fix. I’ll send you a patch then.

Xor (talk)02:35, 29 October 2018
 

The melee pairing fix is now fully tested and available as a pull request:

https://github.com/robo-code/robocode/pull/13

discussions:

http://robowiki.net/wiki/Thread:Talk:RoboRumble/Upgrade_client_version/reply_(2)

Xor (talk)05:22, 4 November 2018

Your pull request has now been merged and I have assembled and put a beta version here: https://robocode.sourceforge.io/files/robocode-1.9.3.4-Beta-setup.jar

If you are satisfied with this version, I will make the release. :-)

Fnl (talk)23:03, 6 November 2018

Thanks, I will test it.

Xor (talk)07:11, 7 November 2018
 

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Users.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page.

Return to Thread:Talk:RoboRumble/Upgrade client version/reply (35).

 

It seems that codesize-1.2.jar cannot work on my machine at all. Can you have a test of this version as well?

Xor (talk)09:51, 7 November 2018