I'm working on some UI and editor cleanup/improvements around Robocode. So far:
Contrived picture of my version of the editor:
Ok, I just uploaded my changes to my lovely bit of Robocode web space (a.k.a. the RobocodeLittleLeague site). This is my UI improvements, the enhanced editor, and my fix for the HyperThreading hang bug. Please post here if you've tested any of these new features and also any thoughts about it if you have any (I'm trying to track how well tested these changes are so that if it happens to all work, I can say it's been used by some number of active Robocoders for their normal Robocode activities). I've also tested it a good amount and everything seems to be good. One thing that's still maybe undertested by me is Find / Replace.
~3 hours and ~400 battles down, still running smoothly. -- Kuuran
Outstanding. Are you running melee battles perchance? With 8 hardware threads, maybe you should ;-) -- Kawigi
I really like the new editor. A note though, windows still remain present in the window menu even after they have been closed. -- Alcatraz
It does look very neat and the extra options are very handy. Two remarks though, one about the editor and one about the hypertreading bug. First, the buttons in the 'Find' and 'Replace' menu's do not have the same size, which looks ugly, at least on WinME. Second, the 10 second redraw of the debugscreen still appears, I hoped that you had removed that on the fly. -- GrubbmGait
It stopped on the 647th battle, but I think that's just because my ssh session timed out and I forgot to screen the thing. Trying again with melee, as suggested. I'm also a bit curious as to why the log of this says I ran 546 battles of Shadow 3.56.5, is that version even IN RoboRumble? -- Kuuran
Ok, attempt number 2 is again with OneOnOne. Can anyone tell me why RoboRumble on my machine can't retrieve a melee ratings file (that's really all RR tells me, so it's all I have to go on)? -- Kuuran
Alcatraz - Dang it, I thought I fixed that. Are you using my robocode.jar, or did you compile it from the source? Edit: It didn't happen on mine, so I re-uploaded newrobocode.jar to make sure it was the same one I was using.
GrubbmGait - Maybe I can make up a way to use tricky layout managers to make those all even. Unfortunately, the console refresh bug wasn't fixed by this, but I think it might have been caused by Mat trying to do something to see if it helped.
One thing is that I cant find the robocode API anywhere. The help in this doesnt link to it, none of the links I find have it. There used to be one on google when I searched, right at the top, but now theres nothing even 8 pages in. Anyone have a working link, or maybe a copy stored? -- Jokester
I thought running robocode-setup.jar put it on your computer. If you change browser.bat in your robocode install directory to use %1 instead of $1 (bug) and just open robocode and do Help->Robocode API (or just open it from robocode\javadoc). If you don't have it at all, that's probably a mistake, too :-p (which I wouldn't have seen since I just installed Robocode 1.0.7 on top of Robocode 1.0.6). -- Kawigi
If you do still see hangs, by the way, note which bots were fighting at the time. -- Kawigi
Found another instance of a hang bug, thanks to the ImplementsDroidCompetition - I think it has to do with the battle thread updating the battlefield and a robot thread checking for collisions at the same time, probably when there is a collision :-). It'll be hard to verify this fix, since it's a little more obscure, but I'll be checking that it doesn't do anything catastrophic. -- Kawigi
Keep the good work up Kawigi, will be great to have these hang bugs solved! -- Pulsar
I've seen some strange behaviour that I did not notice in 1.0.6. In melee two bots are left and the timeout counter is running out disabling one of the two bots. Instead of standard win, sometimes suddenly all bots appear again with full strength but they do not do anything. The roundnumber stays the same. If this is the case, the bot who whould have won can still move (and fire) most of the time. No strange messages appear in the console-window. The editor is a pleasure to work with and the 10-second redraw of the console-window is still annoying ;-) --GrubbmGait
Could I suggest that you have a go to feature? It gets sort of hard to locate a buggy line once you start having huge robots. -- Kinsen
Also, the window list is buggy. I tried to open a few of my robots' sources, then closed all of them but there were still a few left in the list. It could be when one robot's source is opened twice without closing the first one. -- Kinsen
Goto was in the original design, but I got lazy and didn't implement it. As for the windows menu... I thought I fixed that and uploaded a new one. Maybe not. I'll verify that it works for me and that we're all looking at the same thing. And, while I'm at it, I'll make sure [RobocodeNG] has it working right ;-) -- Kawigi
What is the status of this Kawigi? Do we feel comfortable in making all this the "official" robocode release to use for the RR@Home etc? I'll put together a binary download site/page to make it easy for newcomers etc to get started (and not sort through various pages here) with robocode and RR@Home-- Pulsar
Kawigi, great job! I am definitely using your version instead of the standard - the lack of editing features was a constant annoyance! Keep up the good work. -- Greywhind
I'm haveing 2 problems still though. Easily reproducible.
First one is if I press pause something is still running, I will for example still execute my main loop.
Secondly the output window obviously has thread bug somewhere. I haven't looked at the code myself but if anything is copying the old text, adding the new one and inserting it back in there are obviosuly at least two threads trying to do this and sometimes get duplicated output. Otherwise it might just be a event dispatcher thread and normal thread issue. Example output with problem: /OutputProblem Any ideas? I think this is related to being unable to debug robocde correctly with a debugger as some threads states are not controlled correctly somewhere. --Pulsar
The second problem is introduced by Mat Nelson with the introduction of v1.0.7, see http://sourceforge.net/tracker/index.php?func=detail&aid=1150818&group_id=37202&atid=419486 When you can find the right wait(10000)'s and alter them back to synchronized wait(), I think the output window problems will be solved. If it will be compatible with Kawigi's update I do not know. --GrubbmGait
Is the actual source code available for Robocode 1.0.7? I have checked SourceForge? and even Kawigi's jar and all I am seeing is class files. And Java files available? I figgured that was the purpose of open source, so maybe I am just not seeing it. -- Martin Alan Pedersen
Evidently you need to set up a CVS tool and SSH connection to grab a copy of the source, or you can use the web based tool to get them one file at a time (from SourceForge?). Ah well.. guess this is gonna take a while .. -- Martin Alan Pedersen
I already sent the result of my boredom to Fnl. If he integrates it then he integrates it, if not then he doesn't. --Chase-san