Talk:RoboRumble/Contributing to RoboRumble
|
Contents
Old Wiki
I presume all older issues are not valid anymore, otherwise you can find them on /StartingWithRoboRumbleOld or put them here below again.
Sweet. Much easier now thanks. How can I control how many battles are run at once? Or should I just setup a for loop in a batch file for that? --Miked0801
- Halfway the file "roborumble.txt" you'll find "NUMBATTLES=xx", there you fill in the number of battles fought before uploading results and quitting robocode. In the batch-file I have made an infinitive loop so my client can run unattended all night. -- GrubbmGait
- (Edit conflict) There are .txt files for each type of rumble - roborumble.txt, meleerumble.txt, and teamrumble.txt - in the 'roborumble' directory. The "NUMBATTLES" controls how many are run before uploading, "BATTLESPERBOT" is the minimum number of battles a bot needs before it stops getting priority, and "USER" is just to identify yourself in the logs and such. I have mine with "ITERATE=NOT" and I do use a shell script that loops to keep it running. -- Voidious
this bash script will be good for unix "roborumbler". Run forever battles, it catch standard and error stream and put it to a file in the directory ./log/tempNUMBER_OF_BATTLE.txt (the script have to be in the roborumble directory). For Linux: save it to a file in the roborumble directory, right click and set the file executable, create a directory called "log", then run the script from shell:
#!/bin/bash echo # new line count=0 while [ "$var1" != "fine" ] # forever do let "count=count+1" echo "battle n: " $count sh roborumble.sh &> ./log/temp$count.txt echo done exit 0
p.s.: it's very useful for catch error, someone can traslate the script in windows's dos? Asdasd
Wow - is 256MB still the default for the rumble? Why not at least 512, if robocode's default itself is 512? -- Simonton
I'm not sure - maybe because the GUI takes a lot of memory? -- Skilgannon
Ehh, the GUI shouldn't, not compared to many adaptive bots (particularly log targeting). Personally I always set 512MB in the rumble, and the only time I've had an out of memory problem with 512MB was when some particularly memory-heavy team (can't remember which one) was going. Personally I'd support defaulting to 512MB, at least for teams/melee, if Fnl is listening :-) -- Rednaxela
Can someone please zip a new update, i've unzipped the archives above and still get a ton of "Ignoring xxx..." message because they weren't download...thank you! (or even better someone start a new repository and put the zipped bots there...) --Starrynte
RoboRumbler
I didn't know where to post this, but I guess the talk section is always good enough. I created an Java Application called RoboRumbler to help controlling the resources RoboRumble uses. It's basically an application to let me work and run RoboRumble at the same time, I further explain it in it's page if anyone is interested. --zyx
Hmm, I'm curious about this. How does it account for the fact that RoboRumble is highly sensitive to the amount of CPU allocated to it? (i.e. other apps taking lots of CPU can make bots skip turns and potentially give very wrong results). If this limits the CPU allocated to RoboRumble, does it correctly make sure the constant for the time robots get per turn is increased suitably? (P.S. on the new wiki you can use --~~~~ or the signature button to sign your messages with time/date easily. Personally I'd recommend it because it makes it possible to look back at conversations and know when they happened. :)) --Rednaxela 21:45, 26 November 2008 (UTC)
Right now the application is not intended to work with CPU intensive applications, it basically runs them in the same way as they would normally do, but allows you to run then from time to time, and then forever by itself again and stuff like that. So you could be working in the machine, but not hogging the CPU yourself, you can set it to have a few battles and then sleep for 20 minutes. You could be writing some code(I did it to work on my thesis in the mean time), but not execute it until the RoboRumbler goes to sleep. Then you would have those 20 or any other amount of time to use the whole CPU when no rumble battles are running, so you could compile and test your application, and then, when the rumble is about to start again, you lower your activity. And when you are heading to your bed, set the sleep time to 0 and let it rumble without stop.
Hopefully it will grow to a system that doesn't need for the user to be careful, but right now is the best I have. I was doing the same thing but manually, I ran the rumble battles while I was writing stuff, waited for it to finish so I could ran my application and then set the rumble again. But in no moment my idea was to really lower the CPU usage for RoboRumble during battles, but to have some deterministic break times when I could use the computer. (P.S. Thanks about the --~~~~, I saw it before in your post, but thought you wrote it yourself, and seemed like to much work) --Zyx 23:44, 26 November 2008 (UTC)
stable rumble client
Are the stable rumble client 1.5.4 and, 1.6.0 or 1.6.0.1? someone have tested the new robocode version? --lestofante 15:44, 10 December 2008 (UTC)
I know 1.6.1.4 is stable (some earlier 1.6.1.x versions were bad), with a minor aesthetic bug that it sometimes spams the "Round 31 initializing...." to stdout but that doesn't affect the battles or the uploading so it's good for RR. Additionally, as of 1.6.1.4 the ITERATE option works properly again, so external loop scripts shouldn't be needed. I plan to test 1.6.2 Beta 2 some time but haven't done that yet. --Rednaxela 20:10, 10 December 2008 (UTC)
RUNONLY
I have RUNONLY=NANO in meleerumble, yet it still runs battles with tons of non-nano bots. 1) will this affect rankings improperly 2) how do you get it to run only nanos...as runonly is supposed to do (using version 1.6.0.1) --Starrynte 00:59, 3 April 2009 (UTC)
- I've never tried these modes so don't know how well they work. I'm pretty sure RUNUNLY=SERVER is the only way to guarantee full pairings, since that's the mode where the client uses priority battles sent by the server. Also, I think the client considers nano pairings in melee to be any matchups between two nano bots, even if there are other sizes in the same battle -- which means you don't need a battle with 10 nanos in order to get meleenano results. That's why ntc.Opposite's nano results are up to 600+ already. --Darkcanuck 01:18, 3 April 2009 (UTC)
Questions from Positive
Hey, I'd like to contribute, but need some help. I've followed the instructions on this page (I used version 1.6.1.4). But what's the correct configuration for meleerumble.txt for Darkcanuck's server? Also: Can I safely quit the roborumble client when I need my CPU back? Is there something else usefull to know/do before running? :) --Positive 16:40, 17 July 2009 (UTC)
I think you can just replace the domain with darkcanuck.net, but my full URLs are:
- PARTICIPANTSURL=http://robowiki.net/w/index.php?title=RoboRumble/Participants/Melee
- UPDATEBOTSURL=http://darkcanuck.net/rumble/RemoveOldParticipant
- RESULTSURL=http://darkcanuck.net/rumble/UploadedResults
Yes, run the client as much or as little as you like, of course. =) Hmm, one issue comes to mind: the bots using Robocode Repository ids will fail to download, I think. I fixed the URLs on the 1v1 list and some on the Melee list, but still lots of ids there. Running the 1v1 client to download bots first might get a lot of the missing ones. I'll try and get that fixed today.
--Voidious 16:58, 17 July 2009 (UTC)
Hrm, well it seems like it should work, with Portia it did, or did you have to add it manually? I could make a script and change all lines with "ROBOTNAME,NUMBER" to "ROBOTNAME,http://www.robocoderepository.com/BotFiles/NUMBER/ROBOTNAME.JAR" --Positive 17:11, 17 July 2009 (UTC)
Hmm, now I'm not sure, really. I don't think I grabbed Portia manually. Feel free to update the list yourself, if you want, I did exactly as you said using regular expression find/replace in my text editor (TextWrangler). I'll get to it later today if you haven't yet. --Voidious 17:24, 17 July 2009 (UTC)
Hmm, I tried it, and it's not that easy. For example, the pure converted form of TheArtOfWar changes from "tzu.TheArtOfWar 1.2,689" to "tzu.TheArtOfWar 1.2,http://www.robocoderepository.com/BotFiles/689/tzu.TheArtOfWar 1.2.jar". But I don't know what the actual download link is. (It's not "tzu.TheArtOfWar_1.2.jar" either). Any downside to just activating roborumble and seeing what happens? --Positive 17:54, 17 July 2009 (UTC)
It seems TheArtOfWar was an exception, I'll replace the original with the new in a few moments. :) --Positive 18:06, 17 July 2009 (UTC)
Cool. I'm not sure what's up with that, but I was thinking, "I swear I used that same format for the 1v1 list and it worked." =) Also, Darkcanuck was kind enough to post all his rumble bots here: [1], so you can grab any missing ones. (I didn't mention before because it's not a great way to get all of them.)
One of us should post an updated .zip of rumble bots as a base point for new RoboRumblers... there are a few old ones posted around the wiki, but I can never remember where. The hurdle with that is cleaning out all the multiple versions of certain bots before zipping.
--Voidious 18:14, 17 July 2009 (UTC)
I found the .zip here: RoboRumble/Starting With RoboRumble. That zip is pretty complete, the message I got only showed a few missing:
Trying to download tripphippy.Alice 1.0 Downloaded tripphippy.Alice 1.0 into ./robots/tripphippy.Alice_1.0.jar Trying to download voidious.Diamond 1.183b Downloaded voidious.Diamond 1.183b into ./robots/voidious.Diamond_1.183b.jar Trying to download voidious.micro.BlitzBat 1.04 Downloaded voidious.micro.BlitzBat 1.04 into ./robots/voidious.micro.BlitzBat_1. 04.jar Trying to download voidious.mini.BrokenSword 1.04 Downloaded voidious.mini.BrokenSword 1.04 into ./robots/voidious.mini.BrokenSwor d_1.04.jar Trying to download zyx.mega.YersiniaPestis 1.1 Downloaded zyx.mega.YersiniaPestis 1.1 into ./robots/zyx.mega.YersiniaPestis_1.1 .jar Trying to download zyx.micro.Ant 1.1 Downloaded zyx.micro.Ant 1.1 into ./robots/zyx.micro.Ant_1.1.jar Trying to download zyx.nano.Ant 1.1 Downloaded zyx.nano.Ant 1.1 into ./robots/zyx.nano.Ant_1.1.jar Trying to download zyx.nano.BacillusComma 1.0 Downloaded zyx.nano.BacillusComma 1.0 into ./robots/zyx.nano.BacillusComma_1.0.j ar Ignoring jwst.DAD.DarkAndDarker_1.1.jar: .\robots\jwst.DAD.DarkAndDarker_1.1.jar (Can't find file) Ignoring jwst.DAD.DarkAndDarker_1.1.jar: .\robots\jwst.DAD.DarkAndDarker_1.1.jar (Can't find file) Removing old participants from server ... Removing entry ... bzdp.BoxCar_1.0 from meleerumble FAIL. Function temporarily disabled. Please try again later. Removing entry ... bzdp.BoxCar_1.0 from minimeleerumble FAIL. Function temporarily disabled. Please try again later. Removing entry ... bzdp.BoxCar_1.0 from micromeleerumble FAIL. Function temporarily disabled. Please try again later. Preparing melee battles list ... No robocode.properties, using defaults. Building robot database. Executing melee battles ...
So only a few are actually missing at the moment. No idea how much old ones there are. Anyway the rumble server has gotten 3 battles from me! Thanks for the help. :) --Positive 18:34, 17 July 2009 (UTC)
Feel free to replace links in the participant lists to those on the rumble server (if they exist). I'm not planning to remove any of those bots, and will periodically copy new ones over from my client. --Darkcanuck 18:53, 17 July 2009 (UTC)
I'll see if I can post new versions of the participants zipfiles for one-on-one and melee this weekend. Last time I had trouble getting it online as my webspace (20Mb) was full. --GrubbmGait 13:00, 18 July 2009 (UTC)
- You may contact me or Voidious to put them on my or his webspace. I don't know how much Voidious has, but I have around 1.1GB free. » Nat | Talk » 14:33, 18 July 2009 (UTC)
- Just curious, isn't it possible to upload the zipfile to this wiki? It seems the right place to put it. A complete zip for one-on-one would be approx 18 Mb, for melee approx 8 Mb. Just need to bring up my rusty Perl knowledge so I don't have to sort out the current participants manually. --GrubbmGait 11:30, 19 July 2009 (UTC)
- You must have access to this server to do that. I don't know if you have it or not. Because the wiki only accept .png, .gif, .jpg and .jpeg files. I agree with you that the wiki is the right place to upload them; but if you can't, feel free to contact me, my email is on my user page. » Nat | Talk » 11:41, 19 July 2009 (UTC)
- It's not possible for me, max download is 2Mb. Melee is 6.5Mb, full one-on-one 16.8Mb. I'll try to put it on my own space first. --GrubbmGait 12:51, 19 July 2009 (UTC)
Friendlier Starting?
We've always had this problem, but now I'm the victim instead of the perpetrator! "Getting Started" really should be ... let's say three steps at the most: 1) Install robocode in a fresh directory. 2) Apply this patch (that takes care of config). 3) Download these bots (all in one file). And really, (2)'s config should be packaged w/ robocode as long as the rumble itself is. In the mean time, perhaps update the instructions to point the config files to the correct server? I followed them, and unless I missed it every time I read through them, it never says to change the URLs to something other than http://rumble.fervir.com/... What should they be? I tell ya - a guy just wants to help out his old community and has to go to all this trouble ... --Simonton
Because the newer version isn't stable yet, we don't use the newer version of Robocode in RoboRumble. Starting from 1.7.1, you just install it, edit a little config, download bots and let it runs. We can't package the (2) with Robocode though, it is older version. This feature has already been implemented in 1.6.2 and later.
And I must say, we are close to the new stable release. If we change to 1.7.1.x, we must all change (diff movement rule) our client. » Nat | Talk » 14:21, 5 August 2009 (UTC)
Oh, Simonton? Nice to see you still randomly visit the wiki. I'll update it soon. » Nat | Talk » 14:23, 5 August 2009 (UTC)
(Edit conflict) Yeah, we can use all the help we can get, so this should be as easy as possible. I think you just replace the rumble.fervir.com domain with darkcanuck.net. For Melee, the URLs are:
- PARTICIPANTSURL=http://robowiki.net/w/index.php?title=RoboRumble/Participants/Melee
- UPDATEBOTSURL=http://darkcanuck.net/rumble/RemoveOldParticipant
- RESULTSURL=http://darkcanuck.net/rumble/UploadedResults
I think just the participants URL would lack "/Melee" for 1v1, but I'm not at my rumble computer right now to confirm. And yeah, like Nat mentioned, we only allow 1.6.1.4, with the patched .jar, for RoboRumble clients right now. --Voidious 14:25, 5 August 2009 (UTC)
- I think he know what to do, he just pointed out that the newbie won't understand it at all =) » Nat | Talk » 14:38, 5 August 2009 (UTC)
As I rewrote the starting guide, I noticed some funny thing. It used to say that:
(Sorry, a little dirty) ... on your first time you can start robocode with ...
Sorry, for anyone who didn't find this amusing at all. And feel free to delete this if you think it shouldn't be here. » Nat | Talk » 14:38, 5 August 2009 (UTC)
How about this... as soon as I get home from work, I'll make a patched robocode-setup-1.6.1.4.jar (maybe renamed robocode-rr-setup-1.6.1.4.jar or something), which includes the patched robocode.jar, fixed config files, AND the jar files of all robots currently in roborumble, that'll solve this :) --Rednaxela 16:41, 5 August 2009 (UTC)
That's what basically Simonton asked. I don't think ALL robots in rumble is good idea, it is large! And the installation will take very long. It is better if you just do all thing, zip it, and upload. You don't want the desktop and start menu shortcut for RR client. » Nat | Talk » 16:48, 5 August 2009 (UTC)
The Roborumble Superpack is here! With this simple zip file, it is now virtually effortless to deploy a robocode installation suitable for your RoboRumble needs! I intend to update the Roborumble Superpack whenever a new version of robocode is approved for RoboRumble submissions, or the list of bots changes significantly. Cheers! :) --Rednaxela 02:08, 6 August 2009 (UTC)
I'm not sure having all the bots in the pack is such a great idea, as I think roborumble downloads them automatically, no? As long as they have to download it anyways, they may as well get the complete list instead of an old version ;) But having the pack will definitely help, it was a bit of a nuisance to get the old robocode when I was starting with it last week. Spinnercat 02:20, 6 August 2009 (UTC)
Awesome! Sure, you'll have to download the new versions for some of them, but probably 90% of the bots in that .zip are unlikely to ever change, so I like having the option to get them all at once. And some of us are still scarred from the days when the Robocode Repository would crash if you tried to actually download hundreds of bots in a row witha fresh RR client. =) --Voidious 02:28, 6 August 2009 (UTC)
Thanks, Red! Works great. --Simonton
No problem Simonton! Also, updated superpack zip, to fix the default memory limit on melee/team rumble to be 512M instead of 256M and 128M. Added the new Diamond version while I was at it as well since there was no reason not to. --Rednaxela 06:19, 6 August 2009 (UTC)
Error Running RoboRumble
Hi, i get the following error when tring to run roborumble.bat with version 1.6.14 (newest version of RoboRumble works great though):
Iteration number 0 Could not load properties file: ./roborumble/files/codesize1v1.txt Downloading rating files ... Downloading participants list ... Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind ex out of range: -1 at java.lang.String.substring(String.java:1937) at roborumble.netengine.BotsDownload.downloadParticipantsList(Unknown So urce) at roborumble.RoboRumbleAtHome.main(Unknown Source)
Anybody know why? It's very frustrating when i can't contribute and nobody is uploading results when i know i have bot that might score higher then 90% against certain top mini-bots :). --Rsim 13:00, 13 August 2009 (UTC)
This is why. You missed a comma, which broke all main rumble clients momentarially :) --Rednaxela 13:13, 13 August 2009 (UTC)
Woops! I'm sorry about that. Thanks for the help! --Rsim 13:20, 13 August 2009 (UTC)
Superpack update 20090814
Updating the RR superpack now. The changes are:
- Fully updated collection of rumble bots
- robocode.jar being patched for a bug (See Talk:RoboRumble/Reported Problems#IllegalThreadStateException)
- AND the shiny new TwinDuel, Rumble Edition.
Enjoy :) --Rednaxela 03:51, 15 August 2009 (UTC)
Does that .jar have Darkcanuck's patch? I haven't test it yet, but I want to be sure. » Nat | Talk » 04:44, 15 August 2009 (UTC)
Yep, it does. It's based upon the old superpack, just with the fixed robocode.jar (already had Darkcanuck's roborumble.jar), updated robots, and the twinduel stuff. --Rednaxela 05:03, 15 August 2009 (UTC)
Argh! I read "robocode.jar" as "roborumble.jar". Sorry =) » Nat | Talk » 05:18, 15 August 2009 (UTC)
Haha, don't worry much about that. I've sometimes been getting those two mixed up when reading/typing things myself. --Rednaxela 05:28, 15 August 2009 (UTC)
A few questions
Hi, I want to contribute (and if I find some time, also to write an own robot). I already uploaded some results, but three questions came up:
- If in roborumble.txt DOWNLOAD is set to YES, everytime I'm starting the program it's trying to download some missing bots which takes quite some time without any success. I took a look at the /robots page by Darkcanuck, but those ones are not shown there unfortunately (e.g. ar.horizon.Horizon 1.2.2). With ITERATE=YES it works kinda well, but still it is disturbing me a bit :-)
- Is there a way to actually "watch" the battles fought when running the rumble?
- Is it "allowed" to change the NUMBATTLES variable to something like 100?
And by the way, is there a way to automatically add the time and date behind my nick? --Kenran
Welcome, and some answers:
- Alas not, if the repository is down and Darkcanuck does not host them (yet), the client is not able to fetch them.
- The client uses robocode without userinterface, so it's not possible to watch them.
- it is allowed to change NUMBATTLES to whatever you want
- you can use --~~~~ or click the most-but-one right option at the topbar (signature with timestamp)
- It is wise to use separate installs for roborumble, meleerumble and own development. This way they are not interfering with eachother.
--GrubbmGait 13:58, 28 November 2009 (UTC)
Thank you! What could cause problems if I developed my bots within the install that I also use to run roborumble? Don't get me wrong, I believe in what you said and will use a separate robocode folder for development. I'd just like to know :-)
--Kenran 14:10, 28 November 2009 (UTC)
If you don't run the roborumble and Robocode at the same time, there is no problem unless you count you have to wait for a long time each time you started new battle to wait for robot database to be reloaded. If you run them at the same time, problems may occur especially when the Robocode and RoboRumble are running the same robot at the same time. This result in weird, unexpected result. Trust me, I have done it before, and somehow RoboRumble result injected into MeleeRumble result. --Nat Pavasant 15:57, 28 November 2009 (UTC)
- Running both at the same time is a bad idea anyway. Both like to eat up lots of CPU and of course other things using lots of CPU can cause skipped turns. Even on a dual core machine I don't think it would be trustworthy to run two instances of robocode at once, since robocode with GUI does graphics painting in a seperate thread from running the bots, and that can also take substantial CPU. I'd only really trust running two instances at once on quad core machine. --Rednaxela 16:03, 28 November 2009 (UTC)
- I strongly agree that people should mind their CPU consumption on any machine that runs a RoboRumble client. But I quite disagree with needing a quad core machine to run two Robocodes safely. On my MacBook Pro (Core 2 Duo, 2.8 GHz), I can run a second minimized Robocode with no slowdown to the first. Neither core even hits 100% utilization. That's not true of every dual core machine, so you should test it before trying it - my MacBook 2.0 GHz sees about a 15% slowdown in each if I run two at once. For RoboResearch, I'd certainly still run two threads and just adjust the CPU constant, but for the rumble, it's always better to be extra cautious. Keep in mind that Melee has a much better chance of spilling over into a second CPU core, as well.
- On a separate note, another reason to have them separate is data saving. You don't really want bots learning from battles that you're watching and taking that knowledge into the RoboRumble. And some bots have configurable options in their data files, like Shadow can be set not to fire. You really don't want to be playing with that option and then leave him that way in the rumble.
- --Voidious 20:10, 30 November 2009 (UTC)
Ok, new problem. With Windows7 - 64-bit, when trying to run 1.6.1.4 roborumble, I'm getting an array out of bounds exception as soon as it tries to run a battle. Any ideas? Also, wehn can we switch to the new version for rumbles? --Miked0801 04:15, 31 January 2010 (UTC)
- Very odd issue... Is this an issue with any bot or just a specific one. As far as switching to a new version for the rumble, we can't yet. I've tested 1.7.1.6 and there are still pending rumble-relevant bugs. I intend to watch for 1.7.1.7 betas/alphas very closely so I can help ensure 1.7.1.7 will be rumble-ready. --Rednaxela 06:03, 31 January 2010 (UTC)
- Appears not be be bot related. I also rolled back 64-bit java and just used 32-bit and still am getting the same issue:
Preparing battles list ... Using smart battles is true Prioritary battles file not found ... Executing battles ... Fighting battle 0 ... jk.micro.Toorkild 0.2.4,robar.nano.Vespa 0.95 Preparing battle... Exception in thread "Application Thread" java.lang.ArrayIndexOutOfBoundsExceptio n: 0 at roborumble.battlesengine.BattlesRunner.runBattles(Unknown Source) at roborumble.RoboRumbleAtHome.main(Unknown Source)
- Could it have something to do with multi-core or hyper-threading? I remember something about having to assign the Robocode process to a specific core/CPU on Windows, but I have no experience with it myself. That's the only thing I can think to try... Is it Robocode, too, or just RoboRumble? --Voidious 17:57, 31 January 2010 (UTC)
- Just Rumble, and only this particular version - and yes, this is a 4 core system.
- I believe that deleting the robot database file and letting it reconstitute the list has cleared up that problem for me in the past, many versions ago. I vaguely recall guessing it was related to a faulty bot download, but this was literally years ago. -- Martin Pedersen
- Could it have something to do with multi-core or hyper-threading? I remember something about having to assign the Robocode process to a specific core/CPU on Windows, but I have no experience with it myself. That's the only thing I can think to try... Is it Robocode, too, or just RoboRumble? --Voidious 17:57, 31 January 2010 (UTC)