Skipped Turns
This is bot just about Oculus but it happens a lot to me. I do the things below.
- Start the battle
- Maximise the speed(Oh no too many skipped turns)
- Minimise the windows(Wow my robot is faster than Shadow. No skipped turns)
Is this normal. Maybe something about robocode robot painting time. Debug graphics are closed by the way.
Yeah, I also noticed this. Robocode seems to give every robot a certain amount of time to do calculations. Whenever I activate debug graphics, the skipped turns become less. Maybe because Robocode provides more time in that case. When the window is minimized, battles run faster. Maybe the time for painting the battlefield is added to the regular bot calculation time, but I am not sure.
Does anybody know whether there is a way for the robot to know how much time he can spend before it would lead to a skipped turn?
I would say simply try and save data ;)
e.g. just run your code like normal, but with time recorded. when skipped turn recorded, try to limit run time and save that. Only when skipped turns are not happening, the time limit will not decrease, then you know it.
However if the skipped turns are happening occasionally, you may end up limiting yourself too strict ;)
If your robot does skipped turns you can't measure the time.=)
Skipping turns is disabled when debugging graphics is enabled. This is so you can do extra work in your debugging compared to regular without skipping turns.
The thing I wonder is that why skipped turns stop when I minimise the window.
It could be that painting generates a lot of objects for the garbage collector.
The permitted amount of time per tic for a robot is given by "cpuConstant" (see the source). On a modern computer it is about 5 -- 6 mS. You can check/recalculate it via the menu in GUI, see under options. It is reported in nano seconds.
If you want to time your bot, I would recomment to use nanoTime() call for profiling. You can see how a bit more fancy profiling done via a special class at [[1]] I am using it in EvBotNG. If you look at console, you will see profiler info at the end of every round.
Mine is a bit slow. It's about 6.4 milliseconds.