UpdateI tried running the same setup, but with Java 1.4.0_1, no difference, still get random lockups every 30 seconds or so.
After i upgraded my Jdk from 1.3.1 to 1.4.1 (subversion 05-b01) circles are no longer drawn as full circles. Now the end is now somewhere at 380! degrees, resulting in an almost complete circle with a straight line from approx. 340 to 380 degrees. This probably has to do with the SDK. Do others have the same experience? -- Loki
OK so I've got gl4java installed and the sample applications with it run. And run with speed! I honestly did not think this kind of graphics speed was possible with Java. But when I run robocodeGL this is reported:caching resources ..................... 2003-03-09 20:07:57.319 java invalid drawableAnd I get no view of the battle field at all. =( The battles are seemingly run and all. I even get the properties window up when I click on where the battle field would be. Ideas anyone?
I'm running Mac OS X JDK 1.4.1 DP10 if that's a clue to anybody.
Acftually. This error doesn't always occur. One of the about 20 times I have truid I didn't get the "invalid drawable" message. Instead I got the tiniest battle field representation (about 5mm in square). It ran in 300+ fps and I could actually see the scan arcs and stuff! But, not usable of course. ... -- PEZ
I've fixed the tiny battlefield bug. The battlefield now has the same size and aspect ratio as the normal Robocode one regardless of window size, battlefield size, etc.
The other thing I can't help you with, looks like some bug in gl4java on the Mac. --David Alves
The 'invalid drawable' is gone with the recently released Java 1.4.2 Update 1. -- Jonathan
May be would be nice if somebody could post a compiled version? -- Albert
The .zip file has the compiled .class files and .java source files in it. Just look!
If I try with JDK1.3.1 I get screen after screen of messages talking about stuff like:NOT FOUND underscoreName _glIsVariantEnabledEXT underscoreName _glGetVariantBooleanvEXTand then robocode exits with this message:Exception in thread "main" java.lang.NoClassDefFoundError: javax/imageio/ImageIO-- PEZ
The javax.imageio.ImageIO? class was introduced in Java 1.4. I'll write code to load the image files the hard way in the next version so that it will work on Java 1.3 - or you can. :-) --David Alves
PEZ solved this with /PEZsPatch? Works great, thanks!
Take it back - /PEZsPatch? doesn't seem to load all of the frames of the explosion animation. The explosions are much shorter when it's active because it's missing the later frames.
That's a strange effect. Could it be related to the image type used for bufferedImage? I see that the type BufferedImage.TYPE_4BYTE_ABGR_PRE is used elsewhere whereas my patch uses BufferedImage.TYPE_INT_ARGB.
Still doesn't work when I use BufferedImage.TYPE_4BYTE_ABGR_PRE
Too bad. I guess it is a shortcoming in the old style image loading library. I wonder how it's done in Robocode itself... I would be happy to try help with this, but since I can't get RobocodeGLV014 to work it would be only blind attempts like the last one... -- PEZ
I have got this installed and it looks awesome. However it doesn't always appear to start correctly. Most of the time I seem to be getting an error similar to PEZ i.e Robocode appears to start but I only get a battlefield window of approx 20pixels by 20pixels at the top centre of the main window. The top menu is also drawn twice but only the 'real' top menu works. (I'd post an image but I don't know how to do that on Wiki)
It seems to work approximately 1 time in 3 if I keep killing & then restarting Robocode (don't you just hate those sort of bugs).
I am running on Windows XP with JDK1.4.1.02 Sun JVM. I can't even get close to the 400fps by the way, more think 80 - 100 Fps what spec is your machine David cos I want one :).
Any help will be gratefully received.
It happened to me also. Problems disapeared when I recompiled GLPreferences.java in robocode/manager directory. -- Albert
The tiny battlefield bug is fixed in 0.1.4.
The thing about the top menu being drawn twice - it's not being drawn twice, it's just that the JPanel holding the battlefield view wasn't being repainted. That's fixed too.
My machine is an Athlon 1800+ with a GeForce? 3. The speed is dependent on the bots you use, of course, but I get about 400 fps when using 10 SpinBots?. It looks hilarious, try it. :-D DuelistMicroGL? vs. DuelistMicroGL? gets about 225 fps on my machine, about 300 if I disable drawing to the screen. --David Alves
1) When running at 1000x1000 the battlefield is still in the 800x600 ratio. Looks a little strange. 2) I cant get any of the new debugging drawing to run. Ive tried using the DuelistMiniGL? bot, but that gives:
davidalves.net.DuelistMicroGL? 1.11 (1): Exception: java.security.AccessControlException?: Preventing davidalves.net.DuelistMicroGL? 1.11 (1) from access: (java.io.FilePermission? C:\Games\robocode\.robotcache\davidalves.net.[DuelistMicroGL 1]?.11.jar_\robocode\robocodeGL\GLRenderer.class read): You may only read files in your own root package directory. java.security.AccessControlException?: Preventing davidalves.net.DuelistMicroGL? 1.11 (1) from access: (java.io.FilePermission? C:\Games\robocode\.robotcache\davidalves.net.[DuelistMicroGL 1]?.11.jar_\robocode\robocodeGL\GLRenderer.class read): You may only read files in your own root package directory.
Is this my fault, or something someone overlooked? Thx,
Aspect ratio bug is fixed. Try DuelistMicroGL? 1.11_2 and see if it works on your computer. Works on mine. :-) --David Alves
I installed jl4java and Compiled robocodeGL,but when i run it,the robocodeGL exit when the GUI opened,i got a report:
wu~~~~~~~~~~I dont know hot to fix it.:(-- iiley
Looks to me like a problem with your gl4java or OpenGL on your computer, rather than a problem with RobocodeGLV014. I'm new to gl4java though, so I'm not the person to ask. :-P --David Alves
message "gljDestroy failed (free) when exiting RoboCodeGL?"
This is not a major error as RobocodeGLV014 runs without problems, but just to make it perfect.
Something else: I don't know if others have the same experience, but RobocodeGLV014 does seem to get slower after using it a while. Most noticable when starting a new battle and waiting for the robot selection box to appear and when the results are presented. --Loki
Do you notice it slowing down only when you run bots that draw to the screen, or with all bots? I'm calling glDeleteTextures? to free the texture memory, but I've noticed that gl4java never reassigns a texture ID once it has been used, which makes me wonder if they are really being freed. If not, that could cause a slowdown. Otherwise it might just be that the garbage collector isn't collecting the RenderLists? in between rounds - that would cause it to slow down over time. An explicit System.gc() might help. Other than that, I don't know. More info needed. --David Alves
I have run a couple of battles with both 'standard' Robocode and RobocodeGLV014. In both cases the memory usage after completion of a battle is raised with 2-5 Mb, maybe slowing down the system after running many battles. As both version of Robocode show the same behaviour, is does not seem to be related to the use of gl4java. I only observed it first with RobocodeGLV014, probably because i was also running my Java Ide (JDeveloper, which consumes some 50Mb on a machine total of 256Mb) at the time. --Loki
The canvas does not resize as it should. In the regular viewer, when you resize the window, the render area resizes with it. Could we get this functionality in with RobocodeGLV014? :) --nano
If I run a battle, and then try to start a new one, after I click Start Battle, it hangs for a while then dies with a Segmentation Fault or a Bus Error. Also, if I click on any of the bots' names on the right to get their info, the window never pops up and the UI stops responding.
I'm running using Java 1.4.1 under Mac OS X 10.2.4 on a 1Ghz dual-processor G4
Clarification: I have problems with just about every version of Robocode I have. I'll outline the setups and my problems with them below:
- Normal Robocode with latest Java (1.4.1)
- Game runs at 2 fps (known issue w/ Apple's latest Java), and the UI does not respond after a battle has been started. (Not even after the battle has finished)
- RobocodeGLV014 with lastest Java (1.4.1)
- Problems listed above
- Normal Robocode with Java 1.3.1
- None of the above problems, but crashes if Radar Scans are on, and non-minimized FPS is fairly low (<30, even w/ target fps at 10000)
- RobocodeGLV014 with Java 1.3.1
- Segfaults after printing "Caching resources." using /PEZsPatch?
Also, using RobocodeGLV014, I don'bocode.mansults dialog once the battle is finished. What gives?
I'm afraid that I don't know how to set java to use only one processor - I can't find anything on google or the ADC. If someone can tell me how to do so, I can try.
The standard version of Robocode also has issues with dual-processor systems, so it may not be a problem with RobocodeGLV014's code. Could you try running a regular version and seeing if the bug occurs? Robocode's dual-processor problems can be avoided by setting Java to use only one processor.
Would it be possible to change the RobocodeGLV014 popup window to only pop up when you <i>right
RenderElement?.drawStrings() is called when graphical debug is disabled. After looking in the code I think the solution is to clean up everything.
The menu does not appear correctly. When i click any button on the menu in RobocodeGLV014, it appears to be "behind" the canvas of where the robots are. It used to not do this, when i had Java 1.4.1_02, but when I upgraded to java 1.4.2 it does not work. I am running Windows 2000. Thanks in advanced. -- DragonTamer
After I upgraded my Jdk from 1.4.1 to 1.4.2_03 (on Windows 2000) i got the same: the menu is displayed behind the battle area. The tip from Paul causes the program to freeze completely. Any Ideas ? --Loki
I fixed this problem by forcing robocode to use heavyweight menus by decompiling robocode.dialog.RobcodeMenuBar (I used JAD), then I added the line:JPopupMenu.setDefaultLightWeightPopupEnabled(false);to the top of the constructor of RobocodeMenuBar, then recompiled the class. I've no idea what I have realy done but it sorted out most of the Swing lightweight/heavyweight issues. -- Paul Evans
When running RobocodeGLV014 for an extended period I frequently (not always), upon exit, get a bluescreen page fault and my system reboots. I'm running WinXP SP1 and Java 1.4.1. -- Kuuran
Addendum: It usually only happens after a very extended period of being open. I'm running a Radeon 8500 and AthlonXp? 1900+.
Hmmm, I am running WinXP SP1 and Java 1.4.1_01, and I do not experience this problem... I am running on an GeForce3? and Athlon XP 2400. -- nano
Uhh... Why are droids drawn with radars? And how come nobody noticed until now? -- Vuen
E:\java\robocode>E:\programs\jdk1.4.2\bin\java.exe -Xmx560M -cp .; robocode.Robocode Preventing unknown thread Application Thread from access: (java.lang.RuntimePermission? loadLibrary.GL4JavaJauGljJNI14?) java.lang.ExceptionInInitializerError? java.lang.ExceptionInInitializerError?at robocode.battleview.BattleView?.<init>(BattleView?.java:44) at robocode.dialog.RobocodeFrame?.getBattleView?(RobocodeFrame?.java:181) at robocode.dialog.RobocodeFrame?.getBattleViewPanel?(RobocodeFrame?.java:224) at robocode.dialog.RobocodeFrame?.getMainPanel?(RobocodeFrame?.java:203) at robocode.dialog.RobocodeFrame?.getRobocodeContentPane?(RobocodeFrame?.java:266) at robocode.dialog.RobocodeFrame?.initialize(RobocodeFrame?.java:401) at robocode.dialog.RobocodeFrame?.<init>(RobocodeFrame?.java:115) at robocode.manager.WindowManager?.getRobocodeFrame?(WindowManager?.java:46) at robocode.manager.WindowManager?.showRobocodeFrame?(WindowManager?.java:55) at robocode.Robocode.initialize(Robocode.java:194) at robocode.Robocode.main(Robocode.java:35)Caused by: java.security.AccessControlException?: Preventing unknown thread Application Thread from access: (java.lang.Ru ntimePermission loadLibrary.GL4JavaJauGljJNI14?)at robocode.security.RobocodeSecurityManager?.checkPermission(RobocodeSecurityManager?.java:281) at java.lang.SecurityManager?.checkLink(SecurityManager?.java:810) at java.lang.Runtime.loadLibrary0(Runtime.java:782) at java.lang.System.loadLibrary(System.java:834) at gl4java.GLContext$1.run(GLContext.java:828) at java.security.AccessController?.doPrivileged(Native Method) at gl4java.GLContext.doLoadNativeLibraries?(GLContext.java:812) at gl4java.awt.GLCanvas.<clinit>(GLCanvas.java:194) ... 11 morejava.lang.NullPointerException java.lang.NullPointerExceptionat java.awt.Container.addImpl(Container.java:625) at java.awt.Container.add(Container.java:307) at robocode.dialog.RobocodeFrame?.getBattleViewPanel?(RobocodeFrame?.java:224) at robocode.dialog.RobocodeFrame?.getMainPanel?(RobocodeFrame?.java:203) at robocode.dialog.RobocodeFrame?.getRobocodeContentPane?(RobocodeFrame?.java:266) at robocode.dialog.RobocodeFrame?.initialize(RobocodeFrame?.java:401) at robocode.dialog.RobocodeFrame?.<init>(RobocodeFrame?.java:115) at robocode.manager.WindowManager?.getRobocodeFrame?(WindowManager?.java:46) at robocode.manager.WindowManager?.showRobocodeFrame?(WindowManager?.java:55) at robocode.Robocode.initialize(Robocode.java:194) at robocode.Robocode.main(Robocode.java:35)
D:\Programme\robocode>java -Xmx256M robocode.robocodeGL.Robocode Caching resources .Exception in thread "main" java.lang.NoClassDefFoundError:javax/imageio/ImageIO at robocode.robocodeGL.system.TextureCache.loadData(TextureCache.java:97) at robocode.robocodeGL.system.TextureCache.<init>(TextureCache.java:40) at robocode.robocodeGL.system.GLRenderer.startup(GLRenderer.java:91) at robocode.robocodeGL.Robocode.main(Robocode.java:32)
drawStrings() is called when graphical debug is disabled. After looking in the code I think the only real solution is to clean up everything. Edit: Whoops, these two sentences are almost identical to something just above here. Noticed it a little too late...
Slowdown / PausesI am getting some major lockups / pauses when running RGL. It doesnt happen when running the original robocode. I have the latest drivers for my GFX cards etc. I used to run RobocodeGL fine, before I upgraded my PC and OS. The lockups can last anything up to a minute, which slows down every other application I am running, and locks up Robocode. Inbetween the pauses, everything runs fine. Any ideas?
My current system config is: Athlon64 3000+ WinXP Pro with SP2 1 GB Ram, Java 1.4.2_08 Radeon 9800Pro running the latest Catalysts.
UpdateI tried running the same setup, but with Java 1.4.0_1, no difference, still get random lockups every 30 seconds or so.
Post your problem here and the solution will appear. :-)