TUER: Truly Unusual Experience of Revolution, FPS using JOGL

NEW UPDATE :

  • some objects appear correctly in the experimental mode : bonsaï trees, vending machines, flower pots, tables…
  • the package “drawer” may be used as a component
  • deeper zbuffer

I will try to handle explosions and bots in the next weeks. Please tell me if something is wrong when you start the game. I tried a software to count the number of hit and it may cause some problems.

game executable :
Link removed
Link removed

source code :
Link removed

[quote]I have found a solution, a realistic solution to provide a free access to gaming without advertissement or sponsoring. I will announce it on my own website in a few days.
[/quote]
Could you post about it here too? I’m interested in your solution, and others here might be too.

The explanation is a little bit long. I will write a kind of sum up and post it tomorrow. However, it would be better if all the people interested by this aspect read the whole declaration. Maybe it should be posted on an other forum. Thanks for your interest. ;D

Please can you just launch the game one time? I don’t use the same computer at work, I don’t have any JRE here and I don’t know if the software “lycos statistics” prevents my game from working.

Works OK here - still a bit on the slow side though! (AMD 2800+ JRE 1.6)

Doesn’t work (neither version). It keeps telling me that “stahlforce.d3caster” can’t be found. I’ve emptied the webstart-cache too but to no avail (Java6, Windows Vista Ultimate).

Ok. Thanks for this feedback. It doesn’t come from my game because the manifest file has been updated, I changed the “Main-Class” attribute some days ago. There must be an other cache somewhere. This cache must contain data about the old manifest file but it tries to use it with the new jar file. As the main class changed between these two versions, there is a contradiction between the old manifest file and the new jar file. Then, Microsoft Vista Ultimate doesn’t find the “stahlforce.d3caster” class which was the old main class.
As I want to be able to confirm this without any doubt, I will check my config files anew. Did you use the link? Did you start the game from the command line? I am very sorry for the disturbance and I’m really grateful for your answer as I don’t own Vista and my alpha testers are not available currently.

Yes, the slow side is slow, that’s why it is called the “slow version” but you couldn’t know that I don’t work on it anymore. I don’t optimize the slow version anymore, it would be a waste of time. I’m currently rewriting a complete model (MVC) and a precise collision system to provide all the features currently available in the slow version in the experimental version this time. Thanks for your help. Which operating system did you use to launch the game? Thanks for the feedback too. Don’t forget that it is like 2 games work together at the same time. The next version will be quicker. ;D

NEW UPDATE : bug corrected. You were right. The config files tuer.jnlp and tuer.php had not been updated. Linux only uses the manifest file (which had been updated) to know where the main class is whereas Vista Ultimate looks in priority in the config files (which had not been updated before you told me something was wrong). I wouldn’t have found this bug alone. Thank you very very much. :smiley:

[quote=“gouessej,post:86,topic:29428”]
Windows 2000 pro

Now it starts up, shows the title screen and then comes this:

javax.media.opengl.GLException: java.lang.NullPointerException
	at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:271)
	at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:256)
	at javax.media.opengl.GLCanvas.display(GLCanvas.java:130)
	at main.GameGLEventController.display(GameGLEventController.java:189)
	at main.GameModel.<init>(GameModel.java:462)
	at main.GameModel.main(GameModel.java:3172)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
	at main.VertexSetSeeker.getIDynamicVertexSetInstance(VertexSetSeeker.java:46)
	at main.GameGLEventController.display(GameGLEventController.java:351)
	at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
	at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:281)
	at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
	at javax.media.opengl.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:298)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Hi! Thanks for this feedback. I made the same mistake a second time. Now, the main method is in the component called “connection” inside the class called “GameServiceProvider”. I’ve just updated the config files anew. I hope it will work this time and thank you for your patience. When you launched the game, it called the old main method which did not instantiate the connection between the provided services (from “drawer”) and the required services (from “main”). Then, the delegate does not reach the class which provides the service. Sorry. I’m tired, I have made more and more mistakes!

On the other hand, I’m testing the vertex shaders and the pixel shaders for my game. I hope it will be useful.

Ok, this version works…kinda. It starts up, takes an awful long time to load (i thought it had crashed first…maybe a progress bar or something would help) and creates a black screen in hardware mode (F3). The fps-counter is there and it counts but that’s it. Everything else is just black… :frowning:

The slow mode needs to use PixelGrabber during the loading time, that’s why it is long. It will disappear in the later versions. I think about a progress bar, it is a good idea. Do you have an error? Does something appear in the java console? I did my best. The black screen might be caused by a conflict between DirectDraw and OpenGL. Vista Ultimate seems to prevent my config files from disabling DIrectDraw or one of the application working on your computer enables DirectDraw anew during the execution of the game. Maybe there is a different behaviour of the JVM on Vista Ultimate with the static initializer which are often used in this new version. This time, I don’t really think it comes from my game. I will look at it this evening and I will update the game tomorrow. I’m really sorry, it does not happen on the other version of Windows and NEVER under Linux, I don’t use specific features which could work only on a particular operating system. Maybe it comes from your OpenGL driver. Did you play with another game written with OpenGL? :frowning:

I don’t understand why the slow mode works but not the experimental mode. Even the slow mode uses OpenGL. It seems that there is something wrong with something which is only used in the experimental mode. Which values does the FPS counter display on your screen in the experimental mode? On my machine, the loading time takes only less than 10 seconds :
AMD Sempron 2600+, 2 GB DDR 333, ATI X1950 Pro 512 GDDR4 AGP 8x.

FPS are around 90 in experimental-mode. I can run everything OpenGL without problems may it be windowed (even works in combination with AERO) or fullscreen.

Ok, I will check if I can reproduce the bug under Microsoft Windows XP or Vista at work. Maybe it comes from a particular bug in Java or JOGL on Vista. I’m investigating. I will add a debug panel in the next version. You will see what kind of drawing type is used, which extensions, etc… We will quickly know where it comes from.

BUG CORRECTED!!!
When you emptied your cache, you removed JOGL 1.1.0 too. That is why you were alone to reproduce the bug. Actually, the path name to load JOGL had changed. Now it is not secure, it was “https://download…” and now it is “http://download…”. I corrected the config files. Under Microsoft Windows NT 2000, the java console displayed a message to tell me that the resource had not been downloaded. I’m sorry for the disturbance.

Tomorrow, the new version will display the health, the robots will do less damage. You will be able to receive 5 rockets before losing the game. I might have some time to put some power ups : shield, ammunition, weapon(s). I don’t know which weapon I should create for the close combat : a knife or a gauntlet?

EgonOlsen, a big thank for your patience! ;D Yeah! It works anew! Let’s kill them all!!!

NEW UPDATE :

  • minor bugs corrected
  • health handling
  • damage handling
  • a very little bit quicker loading

Coming soon :

  • correction of a bug which causes a division by zero in main.GameGLEventListener.display() when you change the mode quickly
  • menus, ammunitions, items, power ups
  • Pixel buffer objects for recent graphics cards only to satisfy SimonH’s will in the “slow” mode
  • maybe a progress bar???

The links to launch the game are these furthers :
Link removed
Link removed

Tried it on my secondary machine (Athlon64 X2 4200+@2.6Ghz, XP Pro, GF 7800GS). Experimental mode starts up, renders one screen and immediately exits with this:


javax.media.opengl.GLException: java.lang.ArithmeticException: / by zero
	at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:271)
	at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:299)
	at javax.media.opengl.GLCanvas.display(GLCanvas.java:133)
	at main.GameGLEventController.display(GameGLEventController.java:143)
	at main.GameModel.runEngine(GameModel.java:2235)
	at main.GameModel.<init>(GameModel.java:510)
	at connection.GameServiceProvider.main(GameServiceProvider.java:73)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ArithmeticException: / by zero
	at main.GameGLEventController.display(GameGLEventController.java:173)
	at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
	at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:324)
	at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
	at javax.media.opengl.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:341)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

…but it works fine now on the Core2/Vista machine.

This bug has been corrected in the latest version which will be updated at midday. Windows NT 2000 announced me the error at the bad line, 5 lines after. Mandriva 2007 announced the error on the division at the good line. When you switch between the 2 modes, there was a division by zero in the FPS counter computation.