BedMaker

Fragment of a discussion from User talk:Tkiesel
Jump to navigation Jump to search

That error you're getting is just because RoboResearch is really strict and dies if it sees any console output it doesn't recognize. Some newer versions of Robocode added some new output and it broke RoboResearch. The updated versions (like the zip you downloaded, from Chase-san) should have that fixed. I also posted a version of mine a while back (with hacked melee support) here if you want to give that a try.

I'd make sure you've copied the libs into roboresearch/libs and installed a new version of Robocode into roboresearch/robocode_install. I went years before realizing it was using the libs/robocode.jar to run battles, not the one in robocode_install, nullifying tons of tests I thought I'd run on bots in different Robocode versions.

I hate seeing people struggle so much getting RoboResearch setup, because it's so freaking useful once you have it going!

Voidious15:45, 20 July 2012

Yeah.. I reeeeeeaaaallllly want it to run with multiple threads. As is, I have to wait about 12-18 hours for 150bots/14seasons. Not bad, since there's lots of other things going on in life.. but I keep remembering those old Heinz Ketchup commercials... *singing* "Anticipattioonnnnn." *chuckles*

What version should I use for the libs/ directory and the robocode_install/ directory? Is it vital that they are the same version?

Going to give your .zip a try here. Wish me luck!

Tkiesel16:04, 20 July 2012
 

Well, the libs dir is what's actually used to run the battle. I'm not sure the version in robocode_install even matters, but I'd keep it the same for the sake of argument.

Voidious16:06, 20 July 2012
 
  • grumbles*

Unzipped archive. Installed a fresh Robocode into the robocode_install directory. Started up database_server.sh No problems.

First problem on client run:

java.io.FileNotFoundException: settings/properties (No such file or directory)

No settings directory and settings/properties file in the .zip archive. Copied that from my old RR and adjusted the paths accordingly. Could you post the contents of your settings/properties file? Some stuff in there that I'm not sure about, especially that "threads" line.


Second Problem: Bunch of sample.VelociRobot problems? Ah ha! looks like your comment at Talk:Scarlet. I deleted all the sample bots from robocode_bots.

Third problem: It's still yelling about sample.VelociRobot? Grrrrrrrr.

Tkiesel16:35, 20 July 2012
 

Deleted everything from inside roboresearch/trunk/robocode_install/robots, including non-.jar robots. This eliminated errors about sample.VelociRobot.

Now I'm back to this again....

tom@gecko ~/roboresearch/trunk $ ./cli.sh -S deB108.cfg

Challenge Specifications:

Challenge: deBroglierev108 150-57-95

Bot: tjk.deBroglie rev0108

Alias: null

Rounds: 35

Threads: 1

Type: null

Seasons: 14


(Running using server)

Thread 1: Running tjk.deBroglie rev0108 vs. EBBU.Sim2 1.02


Thead 1: Unrecognized output from robocode, "jeremyreeder.Vincent: Got an error with this class: java.lang.IllegalStateException: Can't overwrite cause". Killing battle.

Thread 1: will be terminated

java.io.IOException: Stream Closed

at java.io.FileInputStream.readBytes(Native Method)

at java.io.FileInputStream.read(FileInputStream.java:236)

at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:282)

at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:324)

at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:176)

at java.io.InputStreamReader.read(InputStreamReader.java:184)

at java.io.BufferedReader.fill(BufferedReader.java:153)

at java.io.BufferedReader.readLine(BufferedReader.java:316)

at java.io.BufferedReader.readLine(BufferedReader.java:379)

at simonton.utils.ReaderByEvents.run(ReaderByEvents.java:30)

Thead 1: battle was terminated

  • sigh*
Tkiesel16:42, 20 July 2012
 

I should note: after that line "Thread 1: Running tjk.deBroglie rev0108 vs. EBBU.Sim2 1.02" there's a LOOONG pause by RoboCode standards..


Deleted both jeremyreeder bots in the challenge file because both of them threw that same error.

Now it's

(Running using server)

Thread 1: Running tjk.deBroglie rev0108 vs. EBBU.Sim2 1.02


Thead 1: Unrecognized output from robocode, "tjk.deBroglie rev0108 stopped successfully.". Killing battle.

Thread 1: will be terminated

java.io.IOException: Stream closed

-- etc etc etc --

Thead 1: battle was terminated

Thread 1: Running tjk.deBroglie rev0108 vs. Ex.Survival 3.7


Hey Voidious, mind zipping your entire current roboresearch directory (sans only trunk/robocode_bots which I can populate from my rumble folder) so I can try a crack at it? I'll have to edit trunk/settings/properties to fit my paths, but otherwise should need to change nothing.

Tkiesel16:53, 20 July 2012
 

I was thinking of asking you the same... =)

Ok, I cleared out robocode_bots, working_dirs, robocode_install/robots, robocode_install/battles, database/roboresearch.log, and database/roboresearch.script, and here you go: [1]

Voidious17:04, 20 July 2012
 

I haven't fired this thing up yet... but it doesn't have a lib directory. Is that normal?

Tkiesel17:09, 20 July 2012
 

I'd forgotten about that, but it looks like I modified BattleRunner.java to look in robocode_install/libs instead, so there's no libs directory confusion like I fell victim to. =)

Voidious17:12, 20 July 2012
 

Ah ha!

After a permissions issue of some kind ("user not found" kind of thing) with the db, I just managed to get battle srunnign with one thread. Now trying 3+.....

Huzzah!!!!! Working!!!

Voidious, you are a king, good sir! Thank you a thousand times!

Oh, and I am about to send you an email to let you know about soemthing else that was in that file. Take it down from your hosting ASAP!

Tkiesel17:19, 20 July 2012
 

Awesome! And thanks for the lightning quick feedback on the potential security breech. =)

Voidious17:25, 20 July 2012
 

Not a problem! :) Thanks (yet) again for all of the help!

Tkiesel17:28, 20 July 2012
 

You might want to tweak the CPU constant from what I have set. You can just start Robocode from robocode_install and do Options > Recalculate CPU constant (or something like that). The number in my config/robocode.properties was calculated on my system then manually increased a bit, just to be safe with the multiple threads.

Voidious17:55, 20 July 2012
 

Thanks for the tip. I recalculated it just now, and added ~5% just for kicks.

Do you occupy every core on your machine? I've been leaving one free just because I'm paranoid about skipped turns.

Tkiesel22:40, 20 July 2012
 

Yes, and actually, on my new quad core with hyperthreading, I'm using 6 threads. The OS thinks I have 8 because of hyperthreading, and somewhat surprisingly, 6 or even 8 run measurably faster than 4. For the RoboRumble, I only run 3 because the integrity matters a lot more there. I up my CPU constant by ~25%, which is about how much slower individual battles run going from 4 to 6. There's some talk and benchmarks on User_talk:Voidious#CPU_benchmark_advice_47 if you want to have a look.

Voidious22:48, 20 July 2012
 

Cool. Well, I'm off on fixing up my hitrate normalization.. so that I can choose my firepower more intelligently.

The painful part is that this really screws with my score via mucking with my movement choices... Stat decay and flattener amount run off of the enemy's normalized hitrate already. Ahh, but I can see how my changes influence things against a big group of bots now! It's great!

Tkiesel23:26, 20 July 2012