Talk:RoboRumble

From Robowiki
Jump to navigation Jump to search

Sub-pages: /Archive20130317

RoboRumble history

April 27 2005 - The RoboRumble@Home server is now moved to Pulsar's machine. See /TemporaryServerUp for the RR@H settings files to use and some more details. The only difference you should note is that the flag-less bots no longer have the Jolly Roger flag. This is temporary and will be fixed soon. Huge thanks to Pulsar for carrying the burden (reponsibility-wise) a while with this. I'll sleep tighter now when I don't need to worry if my WinXP Home PC (yes, it was hosted in such an environment before!) is awake and responsive. -- PEZ

October 28 2005 - The RoboRumble@Home server will be down for several hours for upgrades tomorrow (Saturday Octber 29). As a side effect this will solve the issues some people have with port 8080. --Pulsar

October 29 2005 - The RoboRumble@Home server is going down shortly and will be up and running again within 12hours hopefully. -- Pulsar

October 29 2005 - The RoboRumble@Home server is up and running. Updates are needed for RoboRumble@Home clients. -- Pulsar

February 18 2006 - The RoboRumble@Home server connection might experience some downtime the following hours as I will reorganize the firewall setup. --Pulsar

March 7 2006 - The firewall switch over has now finally been done, and everything seems to be working. Some people might experience a short delay until DNS records have been updated around the world (though they were and are set to a very short "time to live" to minimize this). RoboRumble@Home clients need to be restarted as Java by default caches DNS lookups. --Pulsar

Contents

Thread titleRepliesLast modified
Problems with JollyNinja214:25, 18 May 2024
USER variable not being used120:54, 7 April 2024
Publishing of scala robot415:46, 24 May 2021
Adding a new flag214:35, 31 October 2020
RoboRumble ranking unstable114:32, 13 July 2019
1.9.3.5 Could not load properties file: ./roborumble/roborumble.txt212:33, 24 March 2019
Upgrade client version3610:02, 7 November 2018
Huge battle results file? 710:39, 8 July 2018
First page
First page
Previous page
Previous page
Last page
Last page

Problems with JollyNinja

I noticed that JollyNinja is getting unusually bad results in the latest battles it has run (it currently votes for Quantum, which it really shouldn't be!)

JollyNinja's results on LiteRumble

When I run battles locally I get the following warnings:

SYSTEM: Warning: sgp.JollyNinja uses static reference to a robot with the following field(s):
sgp.JollyNinja.instance, which points to a sgp.JollyNinja
sgp.Environment.robot, which points to a robocode.AdvancedRobot
SYSTEM: Static references to robots can cause unwanted behaviour with the robot using these.
SYSTEM: Please change static robot references to non-static references and recompile the robot.

When I run battles on a 1.9.4.2 client I see the poor performance seen in the rumble but with 1.9.5.2 the performance looks to be okay.

David414 (talk)15:44, 17 May 2024

Hey good catch. I guess we should upgrade the rumble to 1.9.5.2?

Skilgannon (talk)12:56, 18 May 2024

If it helps I'd be happy to point a 1.9.5.2 client at a fresh rumble to generate enough results to compare to the current rankings. I figure it'd be much easier to spot any bots that get broken that way.

David414 (talk)14:25, 18 May 2024
 
 

USER variable not being used

I'm using a shared computer (MacOS) to run battles and have set the USER variable in roborumble/meleerumble.txt to David414 however when the results are uploaded that username isn't used. This wasn't a problem when I mistakenly tried to use the 1.9.5.2 client. Does anybody know what I need to patch to fix this?

D414 (talk)11:45, 7 April 2024

Easiest fix is to add USER = YOUR_NAME to meleerumble.sh

D414 (talk)20:54, 7 April 2024
 

Publishing of scala robot

I decide to write robocode bot on scala to learn scala.
But there're a little problem - to run battles with them, you need download scala and add some libraries to rc classpath.
It's ok for me, if only my clients will run my bot. But will whole community agree, if i publish bot, which is not runnable in usual environment?

Jdev10:58, 22 March 2012

We shouldn't have bots in the rumble that can only be run on some clients. It's not really fair, and it makes us dependent on a few (or one) clients to get complete pairings for new bots.

There have been discussions about Scala in Robocode before and I think the current state is that we can't officially support it because it requires some insecure stuff disallowed by Robocode sandbox (like Reflection). See Talk:Other JVM Languages and this robocode-developers thread. Maybe we can revisit this discussion, but we'd need input from Pavel or Fnl, and possibly some Scala guru.

I'm also interested in Scala, and it might help us attract the edgy young functional programmers of the world if Robocode supported it. So it would be cool if we could. But I don't really know the details of how to do it right.

Voidious15:32, 22 March 2012
 

Edgy young functional programmers, eh? I must admit I am pretty interested in Scala too and that was one of the main things keeping me from giving it a real try.

Chase-san16:58, 22 March 2012
 

It's a pity... But i write robot on scala anyway. I will return to this question when take crown in my local tests:)

Jdev17:01, 22 March 2012
 

I'm also planning to write scala robot now ;) Since I write scala daily, and I was maintaining a fork of robocode featuring OpenGL, I think there must exist a solution to run scala robot without sacrificing robocode sandbox.

Xor (talk)15:46, 24 May 2021
 

Adding a new flag

Would like to add India's flag and link it to the code IND in the RoboRumble/Country Flagslist. I don't have a GIF. Help appreciated.

Vishius (talk)19:07, 28 October 2020

Welcome! I've added the flag, you should be good to go!

Skilgannon (talk)22:13, 28 October 2020

Thank you. Much appreciated

Vishius (talk)14:35, 31 October 2020
 
 

RoboRumble ranking unstable

For unknown reason, the RoboRumble ranking has lost a lot of pairings. MiniRumble and smaller seem not effected. So it will take a while for it to stabelize as there are lots of bots that are missing 1-40 pairings.

GrubbmGait (talk)10:35, 13 July 2019

That may be caused by a design flaw of the rumble client, which I didn't verify though. If the rumble cannot read robowiki's participants list, it will load a local cache instead. However, if that cache is outdated, it may cause the rumble to loose pairings, and recovering takes much longer. But this seems not to be the case losing 40 pairings.

Another possibility may be that the rumble client got a truncated participant list due to network issues, for this case, I may modify the client to check some flag to make sure the loaded participants list is full.

Xor (talk)14:32, 13 July 2019
 

1.9.3.5 Could not load properties file: ./roborumble/roborumble.txt

Hi all, has anybody had the same issue? When I start roborumble.sh, it says "Could not load properties file: ./roborumble/roborumble.txt", and the execution stops right after initiating Iteration 0. In 1.9.3.4, everything seems to work.

Cb (talk)21:29, 23 March 2019

I never ever experienced the same thing. And the code change from 1.9.3.4 is kept minimal that I couldn’t come up with whatever change could cause this to happen.

Anyway have you ever tried to have a clean install? Or maybe the path containing robocode contains some weird char that prevents robocode from processing (e.g. space, this bug is known)

Xor (talk)00:29, 24 March 2019

Thanks, that actually worked. I had to run the installation instead of simply unpacking the jar.

Cb (talk)12:33, 24 March 2019
 
 

Upgrade client version

Hi all

I've been thinking of upgrading the accepted client version. What are your thoughts on the matter? Have any of you tested extensively with the latest releases locally? Are there any changes in scores (or any changes that might affect scores) that we should do more extensive testing of first?

Skilgannon (talk)19:21, 5 July 2018

Finally 1.9.3.3 released, with RoboRumble battle duplicating fix, and with shorter participants list check period from 1.9.3.1 as well. It’s time to do a test and discuss to upgrade.

Question, what kind of tests should be done in local? Should we run a literumble locally and see whether it yields the same score as the main rumble? (which gives the best result but takes monthes). Or just using roborunner with a few robots (both 1v1 and melee certainly), and see their score is unaffected.

Xor (talk)01:08, 11 September 2018

Just roborunner and a few bots should be fine. At some point it would be good to reset the meleerumble as well, since old bots get biased downwards by excessive battles against new (good) bots.

Skilgannon (talk)06:02, 11 September 2018
Edited by author.
Last edit: 00:28, 4 October 2018

I've been always thinking about the pairing systems of meleerumble.

Once every combination of 10 bots had a run, the score is unbiased, which takes N = n! / (10! * (n - 10)!) ≈ 10^19 battles in current settings (n is the total of participants).

However we should get approximate score with feasible battles via monte carlo method. In current settings, ~10000 battles already gives a somewhat stable score (for the new participant).

Let each bot gets m battles, randomly selected from all (N / n) 10-bot combinations containing that bot, then the probability of meeting another specific bot in a battle is (N / n / (n - 1)) / (N / n) = 1 / (n - 1).

Assume that when a new bot is released, every battle contains that bot, then the probability of meeting that bot is 1 instead of 1 / (n - 1), which is highly biased.

To fix this, we have two options — mutate our current pairing systems to get unbiased score online, or to reset the entire meleerumble periodically.

Since the score of new bots are unbiased, all we need to do for an unbiased score is to ignore (n - 2) / (n - 1) biased battles randomly when calculating the score of an old bot. However this approach takes much more battles.

A more practical way is is, when bot A is added, for each battle, select another bot B randomly, and run melee battles containing those two bots as usual. A battle containing A, B and other 8 bots should yield 45 pairings, but only those matching (A, *) or (B, *) is taken into account. This produces 17 parings.

This scheme does not affect the pairings of the new bot itself at all, which is already unbiased; And for an old bot, the probability of being chosen as B is 1 / (n - 1), therefore the probability of a battle with A present being taken into account for old bots is 1 / (n - 1), the same as the unbiased one.

Xor (talk)09:29, 11 September 2018

Your second approach seems good, it will need patches on the client side so that if a priority pairing needs to happen it only uploads the battles which contain one of the priority bots. This filter will work fine for the 1v1 rumble as well.

Why don't we wait to update the client until this can be fixed too?

Skilgannon (talk)20:50, 11 September 2018

The only reason for upgrading earlier is that those two bugs are very annoying when running rumble client 7/24.

And it generally takes monthes for fnl to release a new version in normal cycle ;(

Anyway, since those two fixes are unrelated to robocode engine, one should expect no performance difference if we cherry pick the fix back to 1.9.2.5.

Maybe we could release a special version of 1.9.2.5 for those running rumble 7/24, before the melee pairing fix is released.

Or, we may just ask fnl whether he could please release 1.9.3.4 soon after the meleerumble patch is applied.

Xor (talk)01:51, 12 September 2018
 
 
 
 
 

Huge battle results file?

In literumble stats I see that one of my rumble client has stopped working for a few days — and once I had a look, it shows

929073875 Jul 2 21:40 resultsmelee.txt

the resultsmelee.txt grows so large that even the JVM gets killed when processing the file (887M)

and the content of the file is just one line which gets duplicated all the time (which grows exponentially).

Not sure whether this bug is fixed in the newest version, or how can I send pull request to robocode base? the github code seems to be mirror only.

Xor (talk)06:11, 5 July 2018

I would suggest making a bug on Sourceforge and attaching a patch if you have a fix.

Skilgannon (talk)19:19, 5 July 2018

Thanks ;)

The patch is submitted:

https://sourceforge.net/p/robocode/bugs/395/

Xor (talk)04:43, 8 July 2018
 

Btw, is literumble affected by duplicated uploads? Will it remove duplicated battles automatically?

Xor (talk)05:06, 8 July 2018

Literumble will reject battles older than 24 hours, so any broken battles have a limited window of problems.

Skilgannon (talk)08:40, 8 July 2018

Thousands of duplicated battles could be generated within only a few minutes due to the fact of exponential growth. Thankfully this only happens to bots with multiple weight classes. If literumble is not removing duplicates, then this could answer why some bots get 2x or 5x more battles than other bots. And for those bots, their battle result is mainly determined by those duplicated record which causes inaccurate score ;(

Hope fnl should react sooner this time (instead of half a year)

Xor (talk)10:25, 8 July 2018

Only that pairing will have lots of battles - it won't affect the score that much, since it doesn't affect all the other battles. Also, pairings are weighted with a rolling average so roughly only the last 40 battles actually contribute. So once some more battles happen it won't matter.

Skilgannon (talk)10:34, 8 July 2018
 
 
 
 
 
First page
First page
Previous page
Previous page
Last page
Last page