what to do with about printing to much?
Kind of a weird link, but PEZ recently posted all his bots to a GitHub repo so that's fresh in my mind. See the robot.getDataFile() stuff: [1]
Thanks, I will look at it.
Is there a way to see if bot run with GUI or through a rumble client? So one can disable all of the debugs during rumbling matches to save on CPU and quotas.
One more questions, why rumble client needs a display under x11 environment? It does not use gui so it should run just fine.
I don't think Robocode exposes anything about the environment (app vs control API, graphics or not). You can tell if graphical debugging is enabled, though, because onPaint() will be called. You could use that as your debug switch. I mainly use graphical debugging and log severe stuff to file.
As for X11, I don't know, I would guess it's due to using some java.awt code internally or something. I have run RoboRumble over a terminal quite a bit, but maybe my terminal has the X stuff setup. (Mac OS X Terminal connecting to Ubuntu.)
Unfortunately, RoboRunner seems to suffer from the same issue.
Set DISPLAY variable to something crazy and run RoboRunner you will see it crush as well.
Try adding the "-Djava.awt.headless=true" parameter to how you invoke Java. I believe that does the trick. I seem to recall once trying this in the past.
This helps with rumble clients, so it probably good idea to ping developers about this switch to be on by default.
However, it does not help with RoboRunner.
You can update the JVM arguments passed to the Robocode process by modifying "jvmArgs" in roborunner.properties. Each thread starts in its own process with its own JVM because the Robocode engine isn't thread-safe.
Edit: And I'll put it on my RoboRunner to-do list. :-) I didn't have any other plans for a next version but it could probably use a few touchups...