3D Applet Maze Demo Game , Software & Hardware rendering, JVM 1.1 to 1.6

3DzzD V2 is in progress…

we made a little demo to have some feedback about platform compatibility, we would be interrested in knowing bugs you may encounter in this little demo game on different platform linux/mac/windows:

This demo should run from Microsoft JVM 1.1 to Sun JVM 1.6, you can switch to hardware mode if you use a JOGL compatible JVM

http://dzzd.net/demo/DEMOLG/

we already know about the but “fall trought the grounds”.

also could you give us your platform target and average fps in soft & hard (with resolution) mode as well as CPU/GPU.

thanks in advance for any information you may provide to us!

ps: nothing happend for now when you will find the outdoor…

it asked me if i wanted to install java, even though i have it enabled. the applet started tho:

thanks for the reply,

You may try it with Internet Explorer Browser there are two know bugs with FF, java detection & Security Exception while trying to load models & ressourses files… we are working on both :frowning:

wow, really impressive software mode! :slight_smile:
Didn’t work in FF. Hardware mode runs too fast to control and my ruling chipset produces this:

http://www.krautsoft.com/test.jpg

edit: xpress200 on IE

I got it under Firefox (Mandriva Linux 2007, ATI radeon 9250 Pro, 2 GB DDR RAM) :
java.lang.NullPointerException
at java.applet.Applet.getAppletContext(Applet.java:187)
at java.applet.Applet.showStatus(Applet.java:224)
at AppletTest01.resize(AppletTest01.java:103)
at sun.plugin.viewer.MNetscapePluginObject.setFrameSize(MNetscapePluginObject.java:757)
at sun.plugin.viewer.MNetscapePluginObject.appletStateChanged(MNetscapePluginObject.java:985)
at sun.applet.AppletEventMulticaster.appletStateChanged(AppletEventMulticaster.java:32)
at sun.applet.AppletPanel.dispatchAppletEvent(AppletPanel.java:258)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:744)
at sun.applet.AppletPanel.run(AppletPanel.java:362)
at java.lang.Thread.run(Thread.java:619)

Test it on a large dataset, something like 100000 vertices and I think you will be less proud.
Problems with games using features of OpenGL 1.4 and above appear both under Linux and Windows with ATI Xpress 200 :
http://dri.freedesktop.org/wiki/Radeon200M?highlight=(CategoryHardwareChipset)


I’m fed up with repeating it.

[quote]java.lang.NullPointerException
at java.applet.Applet.getAppletContext(Applet.java:187)
at java.applet.Applet.showStatus(Applet.java:224)
at AppletTest01.resize(AppletTest01.java:103)
[/quote]
I hope/guess that a simple try catch will resolve this bug, seems that Applet.showStatus is not well handled. not my fault :wink:

[quote]Didn’t work in FF. Hardware mode runs too fast to control and my ruling chipset produces this:
[/quote]
have you got any console output I can examine for FF ? maybe SecurityException as above. Strange I have made some test on FF and sometimes it works and sometime it dosen’t… thig bug appear to be hard to resolve. Firefow try to connect to ip XX.XX.XX.XX rather than making a full url request, that way Java launch a security exception hac applet is on dzzd.net and firefox try to connect to ip XX.XX.XX.XX wich is a different domain and so not enable in Applet.

Also it seems that in FF the following code will always execute the JScript function myfunction even if AppletTag is understood, this should not be true as inside Applet HTML should only be threated if Java is not enable ???


<Applet.....>
<Script Language=JavaScript>
myfunction()
</SCRIPT>
</APPLET>

Anyways we will try to resolve all those bugs. thanks a lot for testing and reactivity!

@Hansdampf:
The FPS has not been limited as this demo is intended for test+benchmark, does the problem you encounter is related to screen size ? or z near clipping ?, if it is related to screen size as it seems on your screenshot, try to change resolution 3/4 times to see if it resolve, you may also try to refresh, this is just for my information to know if it is related to order of events or if it is a different API bug

@gouessej :

[quote]Test it on a large dataset, something like 100000 vertices and I think you will be less proud.
[/quote]
I made tests with models up to 100k triangles and did not notice any problem ? are you talking about x200 GPU only ?

once again thanks a lot!

Windows XP
AMD64 3000+
512MB RAM
ASUS Radeon 9600PRO 128MB

40-45fps in software
450-500 fps in hardware

Hardware mode is uncontrollable. Everything reacts big to the smallest movement.

I’m only talking about ATI Xpress 200 GPU. You have made a very impressive work. Hansdampf doesn’t admit that this chipset has some bugs that prevent the use of very very large datasets. The links I gave talk about it. If you test with models up to 100000 triangles with this chipset, you will have a huge slowdown like me with TUER. Often, this chipset has 8 times worse performance than an ATI 9250 whereas ATI 9250 is quite old. If you’re not convinced, play with Hexxagon and compare the FPS with the both cards.

Finally, it works at home under Firefox but I’ve got a message written in red in the bottom : Unable to switch Render3D to JOGL
I’ve got 26 FPS in software mode. I’ve still the exceptions I quoted in the previous post.
I precise that I use JVM 1.6 update 2 and that JOGL 1.1.0 is already installed on my machine.

Firefox:

Software: 95fps
Hardware: 25fps

IE:

Software: 95fps
Hardware 1500fps

In both browsers, the sky is flashing sometimes when in hardware mode. Everything else works fine (except the controls, as others have already mentioned).
System is a Core2 Duo@3Ghz, HD2900XT, Vista Ultimate

Nice to see dualcore makes that a big difference with our software rendering implementation!

JOGL rendering is still work in progress, but that a big difference in FPS between FF & IE is very strange… you have this issue with other JOGL applets too?

[quote]Finally, it works at home under Firefox but I’ve got a message written in red in the bottom : Unable to switch Render3D to JOGL
[/quote]
hum may be it is related to the fact that JOGL is already installed in you machine

[quote]I’m only talking about ATI Xpress 200 GPU. You have made a very impressive work. Hansdampf doesn’t admit that this chipset has some bugs that prevent the use of very very large datasets. The links I gave talk about it. If you test with models up to 100000 triangles with this chipset, you will have a huge slowdown like me with TUER. Often, this chipset has 8 times worse performance than an ATI 9250 whereas ATI 9250 is quite old. If you’re not convinced, play with Hexxagon and compare the FPS with the both cards.
[/quote]
I trust you, did you know any workaround ?!

As mentioned by Thijs Hardware renderer is still in works as the Software, it is not an Alpha demo just a demo made with the current WIP of the API, last step of the software engine is still a big alone function that should be splitted in many more to improve performance by unrolling loop, for now each pixel drawn have a lot of if/else (I hope a gain of 3 to 10 times depending on face rendered type)

[quote]In both browsers, the sky is flashing sometimes when in hardware mode. Everything else works fine (except the controls, as others have already mentioned).
System is a Core2 Duo@3Ghz, HD2900XT, Vista Ultimate
[/quote]
May be there is a repain/paint/update method that we should shortcut in Jogl Renderer.

About the FPS on FF hardware mdoe, Thijs ask a very good question above, have you got same issue with other JOGL applet on FF?

We lack of Mac/linux/Playstation 2 :slight_smile: user to tests ?

thanks!

running linux, firefox 2, java 6 here

firstly i get the following dialog box

http://img220.imageshack.us/img220/6131/snapshot3qm1.png

clicking cancel allows me to continue, after which i get this dialog

http://img217.imageshack.us/img217/6803/snapshot4lw5.png

the details section contains the following error

java.lang.NullPointerException
	at java.applet.Applet.getAppletContext(Applet.java:187)
	at java.applet.Applet.showStatus(Applet.java:224)
	at AppletTest01.resize(AppletTest01.java:103)
	at sun.plugin.viewer.MNetscapePluginObject.setFrameSize(MNetscapePluginObject.java:757)
	at sun.plugin.viewer.MNetscapePluginObject.appletStateChanged(MNetscapePluginObject.java:985)
	at sun.applet.AppletEventMulticaster.appletStateChanged(AppletEventMulticaster.java:32)
	at sun.applet.AppletPanel.dispatchAppletEvent(AppletPanel.java:259)
	at sun.applet.AppletPanel.runLoader(AppletPanel.java:745)
	at sun.applet.AppletPanel.run(AppletPanel.java:363)
	at java.lang.Thread.run(Thread.java:619) 

after which the applet just hangs with the message Loading 3D

console output is as follows

Java Plug-in 1.6.0_03
Using JRE version 1.6.0_03 Java HotSpot(TM) Client VM
User home directory = /home/dir


----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
p:   reload proxy configuration
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------

resize to 600,360
java.lang.NullPointerException
	at java.applet.Applet.getAppletContext(Applet.java:187)
	at java.applet.Applet.showStatus(Applet.java:224)
	at AppletTest01.resize(AppletTest01.java:103)
	at sun.plugin.viewer.MNetscapePluginObject.setFrameSize(MNetscapePluginObject.java:757)
	at sun.plugin.viewer.MNetscapePluginObject.appletStateChanged(MNetscapePluginObject.java:985)
	at sun.applet.AppletEventMulticaster.appletStateChanged(AppletEventMulticaster.java:32)
	at sun.applet.AppletPanel.dispatchAppletEvent(AppletPanel.java:259)
	at sun.applet.AppletPanel.runLoader(AppletPanel.java:745)
	at sun.applet.AppletPanel.run(AppletPanel.java:363)
	at java.lang.Thread.run(Thread.java:619)
resize to 600,360
resize to 600,360
start
Render3D.setSize(int viewPixelWidth,int viewPixelHeight)
Render3D.setSize(int viewPixelWidth,int viewPixelHeight,int maxAntialias)
Exception in thread "Thread-13" java.security.AccessControlException: access denied (java.net.SocketPermission 213.186.33.2:80 connect,resolve)
	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
	at java.security.AccessController.checkPermission(AccessController.java:546)
	at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
	at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
	at java.net.Socket.connect(Socket.java:513)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:155)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
	at sun.net.www.http.HttpClient.New(HttpClient.java:306)
	at sun.net.www.http.HttpClient.New(HttpClient.java:323)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)
	at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2031)
	at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:579)
	at java.net.URLConnection.getContentLength(URLConnection.java:474)
	at net.dzzd.core.bc.a(Unknown Source)
	at net.dzzd.core.bc.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:619)
update image
Exception in thread "Thread-12" java.security.AccessControlException: access denied (java.net.SocketPermission 213.186.33.2:80 connect,resolve)
	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
	at java.security.AccessController.checkPermission(AccessController.java:546)
	at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
	at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
	at java.net.Socket.connect(Socket.java:513)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:155)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
	at sun.net.www.http.HttpClient.New(HttpClient.java:306)
	at sun.net.www.http.HttpClient.New(HttpClient.java:323)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)
	at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2031)
	at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:579)
	at java.net.URLConnection.getContentLength(URLConnection.java:474)
	at net.dzzd.core.bc.a(Unknown Source)
	at net.dzzd.core.bc.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:619)
update image
Render3D.setSize(int viewPixelWidth,int viewPixelHeight)
update image
Render3D.setSize(int viewPixelWidth,int viewPixelHeight,int maxAntialias)
update image
compile Light3D :null
compile Camera3D :null
update image
update image <repeating string forever>

:-\ once again ans as above this is the Applet.ShowStatus that made you unable to run it, I will post a reply for this once it will be fixed.

First message about installing Java is related to firefox as already mentionned above, strange that FF execute inside HTML of Applet Tag even if Java is installed ?!

thanks for testing it on linux

I doubt that the second core is used for anything. The demo uses 50% of both cpus, so it seems to be single threaded. It’s just that software renderers seem to love Core2-cpus. It’s not the only application that show this behaviour.
About the IE/Firefox-issues: I think Firefox limits the framerate here somehow. It’s the same when running LWJGL-based applications in a browser: IE at full speed, Firefox somewhere in the 20th. Has to be related to the way Firefox does its rendering or something.
For the record, i’ve run the demo on my secondary machine (Core2 Duo@2.45Ghz, XP home, X1900XT):

Firefox:
Software: 83fps
Hardware: 20fps

IE:
Software: 83fps
Hardware: 900fps

firefox is REALLY REALLY REALLY slow if you have the QA add-on (talkback) running (!)

I remember Ken Russel mentioning something about this back when they where expirimenting with JOGL applets. Cant find the post that talked about that anymore though…

[quote]firefox is REALLY REALLY REALLY slow if you have the QA add-on (talkback) running (!)
[/quote]
sry, I dont understand what you mean, My english is so poor some time :-\

about the FPS limitation on FF,I was wondering if you think that 20 FPS if enought smooth to play ?? if so, it will not really be a problem as it wont decrease under 20 fps with more features.

I believe the QA talkback is a plugin that reports back errors to Mozilla.

That’s probably true, since there are no optimalisations done whatsoever to make the rendering take advantage from multithreading. Im wondering how much more we could squeeze out of it by having multiple threads render different tiles…

didn’t work for me in FF, opened it in IE and was surprised to see that the software performance wasn’t that bad at all, it hung around the 54 - 61fps margin. The hardware version was vysnced to 75.

DP :slight_smile: