What do you think about a GigaMeleeRumble?

Jump to navigation Jump to search

What do you think about a GigaMeleeRumble?

Lets take the best 30 or 50 bots of MeleeRumble and put them into a Giga category. The same thing already exists for 1vs1, why not in melee too? :) What do you think about it?

Cb (talk)11:54, 25 April 2014

I am all for it. But we need Rednaxela on board to set rules for it. And more people donating CPU cycles.

Beaming (talk)06:50, 26 April 2014

The rules are the same as meleerumble, except participants list url.

I can contribute battles until it stabilizes.

MN (talk)22:23, 26 April 2014

but we need a server, which will keep track of ranking and a client config. I presume that server part is where we need Rednaxela help.

Beaming (talk)01:56, 27 April 2014

Sorry Beaming, you got the wrong guy ;-)

Skilgannon runs the current incarnation of the rumble server. (Of course anyone else could run a separate copy if they wanted to, as the code is out there)

(Speaking of which, the rumble server currently requires a client version that isn't downloadable from sourceforge anymore it seems. Maybe it would be a good time to be updating the allowed rumble client versions?)

Rednaxela (talk)16:21, 27 April 2014

Ups. Sorry to point wrongly to you.

Indeed, we need Skilgannon, in particularly to upgrade allowed client version. I think quite a few new comers were looking for the old client, but it is not that trivial to find the old version.

I think the old client requirement, is one of the reason why so few contribute to the rumble.

Skilgannon code is free, but now we have client with built in pointer to the official server. It would be nice to just extend the official client.

Beaming (talk)19:17, 27 April 2014

beaming where did you find

Tmservo (talk)22:24, 27 April 2014

I had it from the original time. I was too lazy to upgrade, and it turn out to be a right thing.

I know that f4 find it somewhere recently via power of google. But if we really desperate I can attach 1.8.2 somewhere to a wiki page.

Beaming (talk)03:18, 28 April 2014

Yeah, a server accepted other versions OR a place where 1.8.2 can be downloaded is desperately needed. Then I can start contributing again, and that is the first step to start developing again ;-)

GrubbmGait (talk)13:15, 28 April 2014
Tmservo (talk)13:24, 28 April 2014

Nice link. We could also ask FNL to put it back in the sourceforge server. It has,, but doesn't have the 2 rumble versions in between.

MN (talk)03:18, 29 April 2014

All you need to do is create a new config file, similar to meleerumble.txt but with a different filename, and a different config name. Then you need to make another .bat or .sh file similar to meleerumble.bat/sh to use this new config file. The server will automatically create the new rumble when you start submitting battles. I'm guessing you will want to create a new wiki participants page.

As per the LiteRumble page, you can download a pre-configured client here. I also suggest you populate your robots directory with the bots from here.

The reason I'm not enabling newer clients to submit battles is because there was a minor rule change which will adjust scores (bonuses weren't included in the total score in certain versions, which happened to be what was most current when I initially populated the rumble data). If we want to switch to new clients we also need to wipe all of the rumble data and start from scratch.

Skilgannon (talk)18:08, 30 April 2014

Wouldn't it be the perfect time to switch clients now? Since the bugs are now gone, and I also saw that some bots like Fractal for example get always disabled. So every new bot will have 100% vs Fractal and the older bots will only have a normal score against it.

Cb (talk)18:19, 30 April 2014

Regarding switching to a newer client and wiping the rumble data... I suppose the question is how many of us are willing to contribute to get the scores back to stable state.

For the main rumble I think it'll take in the ballpark of 2156000 battles to get back to the stable point (~2000 battles per participant). At a rate of 1 battle per second it would take 25 days to get back to the stable point. I imagine we could do better than 1 battle per second if a decent number of us chipped in (remember, the bulk of the robots are very simple/fast).

Rednaxela (talk)20:56, 30 April 2014

I am also supporting the switch.

Beaming (talk)02:18, 1 May 2014

I can contribute battles until the rumble stabilizes. 4 to 8 clients.

Also, I have a custom rumble client here which is smarter than the official client.

Extra features:

- Detection of server queue overloads and upload throttling.

- Separate process/threads for uploads, shared between all local clients. (avoids idle CPU time in uploads. HUGE speed increase in melee)

- Shared battle generator/priority battles management. (minimizes repeated battles between clients)

- Communication between clients using RMI (TCP/IP), integrating clients spread over a low latency local network.

- Generates battles in melee using both bots from priority battles.

- Parallel download of bots JARs.

- Shared local repository of bots JARs, with automatic copying between clients.

Tested for over an year. Seems very stable.

I can upload the source somewhere if you want.

MN (talk)02:55, 1 May 2014

I would love to play with this client. It is a pity to see CPU cycles wasted due to queue overloads.

Beaming (talk)04:22, 1 May 2014
MN (talk)19:58, 1 May 2014

MN, would you mind to add a short readme?

How to compile this? I see it requires maven, but simple run 'mvn' does not do a thing.

Does a worker requires the coordinator running? How do they know which IP/machine to contact? Do we need standard rumble files to be present/accessible anywhere?

Beaming (talk)01:59, 2 May 2014

I'll make a README sometime.

You compile with Maven through the roborumbleathome-pom module. You also need Robocode components pre-installed in your local repository. They are nowhere in any internet Maven repository. This is for compiling.

For running, you run a single coordinator instance, and as many worker instances as you have cores. You pass coordinator IP address through command line argument. Port is hard-coded at 1099 (RMI default). See the .bat files for an example.

Both coordinator and workers use the same configuration files as the official client, although they ignore some of the parameters.

It could be more configurable. But as it is, it is running fine for me so I stopped improving it for quite some time. Now that it is open source, feel free to contribute.

MN (talk)19:25, 3 May 2014

Early this morning I managed to get it to build.

As someone not used to Maven... I have to say... the experience of getting the Robocode components into a repository based on a download of the official robocode build, is an experience that really makes me dislike Maven. Things that ought to be very simple seem like quite a hassle with it.

Rednaxela (talk)19:46, 3 May 2014

Where are these robocode components suppose to be? I do not see where is their expected location.

And yes, Maven pulled in 160MB of dependencies. This seems to be quite extreme for a make replacement.

Beaming (talk)20:00, 3 May 2014

OK guys, so here's the plan: today at 17h00GMT (you can work out what that is in your time-zone) I'm going to change the server to accept clients exclusively. I'll leave it like that for a day or two to make sure there are no issues with the rumble client, then I'm going to wipe all of the rumbles. I'm going to speed up the queue processing for a bit as well to see if I can get the stabilisation to happen a bit faster and not bottleneck at the server.

If anybody has any objections, now is the time, because once I change accepted versions the current stats will be 'tainted' by newer versions with different rules, and will need to be deleted anyway.

Skilgannon (talk)07:23, 2 May 2014

Skilgannon, may I ask to keep old statistic available somewhere? I would think, the ideal would be to have littlerumble instant which does not accept battles but has web interface on.

Second suggestion: would it be possible to program a range of accepted robocode versions? 1.9.2 is the newest today, but months from now it will be obsolete. May be it better to have a black list mask.

Even now, as far as I know, 1.9.2 is not that different from 1.9.1. So there is no point to lock the version to only the 1.9.2 version.

Beaming (talk)14:42, 2 May 2014

Good idea with the littlerumble. I've disabled the app for now, I can set that up tomorrow and copy data across, then re-enable the app.

I'd rather have only one version for submitting battles, simply because we don't know all the bugs yet. It is better to make the chosen version easily available than to allow possibly different versions to submit battles.

Skilgannon (talk)18:09, 2 May 2014

Ok. I am up and running with 1.9.2 hope you will see my CPUs contributions.

Beaming (talk)18:16, 2 May 2014

I see a lot of errors like this:

java.io.FileNotFoundException: http://literumble.appspot.com/UploadedResults
Unable to upload results meleerumble,35,1000x1000,beaming,1399046843566,SERVER ntc.Opposite 1.5,9870,3207,0 spinnercat.Omen 1.0,6542,1976,0

Am I the only one?

Beaming (talk)19:59, 2 May 2014

The app is disabled until I get a chance to copy the data over to another app which won't allow uploads, which will be tomorrow evening. So you can pause clients until then.

Skilgannon (talk)20:07, 2 May 2014

Another question.

What is the official java version to be used with robocode?

I personally use java 6 but I think some bots are compiled with java 7 and do not run on my machine. Shall I switch to java 7?

Beaming (talk)18:18, 2 May 2014

If you're using Sun/Oracle Java, I would strongly argue you should not be using Java 6 anymore, and should not have been for the last year, because you're not getting security updates.

If you're using OpenJDK instead of the Sun/Oracle version, you can still get security updates for Java 6, so that isn't an issue.

As OpenJDK 6 doesn't have official Windows builds, and Sun/Oracle Java 6 does not get security updates, perhaps it is best to as a rule not be using any version of Java 6 (even if it has recent security patches) for Roborumble, as new Windows users submitting bots cannot easily test with Java 6.

Rednaxela (talk)18:36, 2 May 2014

OK. Get it. I was using openJDK all this time. I will switch to java7 in my clients. There are some nice additions for Point2D class which I was tempting to use instead of my own implementations.

Beaming (talk)19:56, 2 May 2014

Literumble is up and running, accepting contributions. There is a static copy of the old data at staticrumble.appspot.com. I'll keep an eye on it from my side, and please let me know if you see any issues with your clients. In a few days, when we're sure everything is working, I'll delete the data and we can start from fresh.

Skilgannon (talk)10:16, 4 May 2014

All my clients show in rumble and meleerumble

OK. Queue full,Wisdom vs GridFu discarded.

naturally, with different bots name.

There is something fishy, since than I see the same bot pair added to queue over and over with messages like this

OK. Wisdom vs GridFu added to queue in 41ms

Beaming (talk)15:50, 4 May 2014

Still something is fishy, on one of my clients I see multiple (like 100) attempt to do something with stat uploading. Currently the following happening, first I bunch of "queue is full" than

OK. Queue full,Tidus vs Zealot discarded.

for this pair of bots.

Above error are for the rumble client, I also run the meleerumble on the same machine and that one complains about Wisdom vs GridFu as in above message, with similar numerous attempts.

What is strange is that the other rumble client seems to behave proper on the other machine. Both machines have identical installations of robocode and java.

Beaming (talk)05:57, 6 May 2014

I think I found the problem. Have to delete content of files and temp directories. Files dir contained the results1v1.txt file with 12MB size which sounds excessive.

Beaming (talk)06:19, 6 May 2014

It seems to be stuck at 'queue full' most of the time.

Regarding the same bot pair added multiple times, perhaps you're referring to how it has to upload once for each rumble that's fitting for the pair of bots? (i.e. the different size categories)

Rednaxela (talk)17:11, 4 May 2014

The reason the queue is full so much is that uploads are happening at a rate of ~35/s, but I can only process ~5/s. I'll work more on optimising load and store times, but there is only so much I can do with that...

Skilgannon (talk)18:37, 4 May 2014

We could upgrade the rumble protocol to implement bulk uploads, allowing bulk commits in the server.

MN (talk)01:49, 6 May 2014

Uh... somebody's client is misconfigured, and uploading a bunch of stuff to the Minirumble which doesn't belong.

For example, "simonton.beta.LifelongObsession 0.5.1" is a Megabot.

Can folks who are currently contributing check that their client isn't doing this please?

Rednaxela (talk)01:46, 7 May 2014

Where to look for it?

Beaming (talk)02:39, 7 May 2014

Beaming, looking at logs it seems to be coming from one of your clients. I see in the Robocode release notes that fixed a bug with the codesize generation. Which Robocode version are you running?

Skilgannon (talk)08:57, 7 May 2014

Does it come from IP starting from 70 or 128?

The one at 70 somehow does not generate codesize1v1.txt file, though they all run robocode-

Any advise would be welcome.

Beaming (talk)13:57, 7 May 2014