Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (524)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (592)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
   Home   Help   Search   Login   Register   
  Show Posts
Pages: [1]
1  Game Development / Networking & Multiplayer / OpenGL Driver detection/autopatching tool? on: 2004-01-08 06:15:13
First, thanks for posting the interesting statistics; they certainly highlight the need for some OpenGL driver autodetection+patching tools, especially for the legions of technologically uninclined Windowsers.

A while back you said you were planning to write and release a little DLL to sort out automatic driver detection and patching... any news on that?  Even an unfinished-code dump could be pretty useful at this point.

Thanks for what's here, and in advance for anything you can add,
lamster
2  Java Game APIs & Engines / JOGL Development / Re: Why doesn't GLJPanel work? (Works now thanks!! on: 2003-12-21 05:20:45
GKW:
A while back you posted an implementation of GLJPanel that uses pbuffers instead of the MS software renderer.  This looks great to me: I'd like to use your GLJPanel in a project I'm working on, however, when I try to use the 'jogl.jar' on your http://www.geocities.com/groundskeeperwiley/ page I get some exceptions during startup that do not occur with the latest official release jogl.jar:

[size=1]
net.java.games.jogl.GLException: pbuffer creation error: wglChoosePixelFormatARB
() failed
       at net.java.games.jogl.impl.windows.WindowsPbufferGLContext.createPbuffe
r(WindowsPbufferGLContext.java:221)
       at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent
(WindowsOnscreenGLContext.java:118)
       at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:230)
       at net.java.games.jogl.GLCanvas.displayImpl(GLCanvas.java:196)
       at net.java.games.jogl.GLCanvas.display(GLCanvas.java:88)
       at net.java.games.jogl.impl.windows.WindowsGLContextFactory.createGLCont
ext(WindowsGLContextFactory.java:94)
       at net.java.games.jogl.GLJPanel.reshape(GLJPanel.java:159)
       at java.awt.Component.setBounds(Unknown Source)
       at java.awt.Component.resize(Unknown Source)
       at java.awt.Component.setSize(Unknown Source)
       at java.awt.Component.resize(Unknown Source)
       at java.awt.Component.setSize(Unknown Source)
       at javax.swing.JViewport.setViewSize(Unknown Source)
       at javax.swing.ViewportLayout.layoutContainer(Unknown Source)
       at java.awt.Container.layout(Unknown Source)
       at java.awt.Container.doLayout(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validate(Unknown Source)
       at java.awt.Window.show(Unknown Source)
       at java.awt.Component.show(Unknown Source)
       at java.awt.Component.setVisible(Unknown Source)
       at LevelEdit.LevelEdit.init(LevelEdit.java:246)
       at LevelEdit.LevelEdit.<init>(LevelEdit.java:210)
       at LevelEdit.LevelEdit$LevelEditManager.newEditor(LevelEdit.java:202)
       at LevelEdit.LevelEdit.main(LevelEdit.java:186)
Cannot Create Pbuffer
Exception in thread "main" net.java.games.jogl.GLException: Unable to set pixel
format
       at net.java.games.jogl.impl.windows.WindowsGLContext.choosePixelFormatAn
dCreateContext(WindowsGLContext.java:303)
       at net.java.games.jogl.impl.windows.WindowsOffscreenGLContext.create(Win
dowsOffscreenGLContext.java:164)
       at net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(Windows
GLContext.java:120)
       at net.java.games.jogl.impl.windows.WindowsOffscreenGLContext.makeCurren
t(WindowsOffscreenGLContext.java:120)
       at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:230)
       at net.java.games.jogl.GLJPanel.reshape(GLJPanel.java:170)
       at java.awt.Component.setBounds(Unknown Source)
       at java.awt.Component.resize(Unknown Source)
       at java.awt.Component.setSize(Unknown Source)
       at java.awt.Component.resize(Unknown Source)
       at java.awt.Component.setSize(Unknown Source)
       at javax.swing.JViewport.setViewSize(Unknown Source)
       at javax.swing.ViewportLayout.layoutContainer(Unknown Source)
       at java.awt.Container.layout(Unknown Source)
       at java.awt.Container.doLayout(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validateTree(Unknown Source)
       at java.awt.Container.validate(Unknown Source)
       at java.awt.Window.show(Unknown Source)
       at java.awt.Component.show(Unknown Source)
       at java.awt.Component.setVisible(Unknown Source)
       at LevelEdit.LevelEdit.init(LevelEdit.java:246)
       at LevelEdit.LevelEdit.<init>(LevelEdit.java:210)
       at LevelEdit.LevelEdit$LevelEditManager.newEditor(LevelEdit.java:202)
       at LevelEdit.LevelEdit.main(LevelEdit.java:186)
[/size]

Any idea what I'm doing wrong?  I swapped out the latest release jogl.jar for your jogl.jar, kept the release dll, and am running on WindowsXP with an ATI card; am I missing a necessary extension?

Thanks for your GLJPanel work and any info on general restrictions or debugging advice you can provide,
lamster
3  Java Game APIs & Engines / JOGL Development / Fullscreen/Windowed toggle on: 2003-09-24 10:00:51
has anyone figured out how to toggle between fullscreen and windowed mode (under winXP or any OS that supports true FS) while using jogl?

Entering fullscreen by way of setFullScreenWindow is pretty reliable, but then I can never get rid of fullscreen, except when the program exits.  Since the program always exits and returns my original display gracefully, I'd think there'd be an easy way to handle this issue directly.

The API says setFullScreenWindow(null) should break fullscreen and restore original display mode, and I've tried manually setting the display mode to my 'old-mode', but neither option is working since I switched to JOGL -- especially frusturating since, after a good deal of dancing around what're apparently bugs in sun's implementations, I'd had a pure j2d switcher working without problems.

I'd love to see a working example (capable of at least window->FS->window) or some directions for how to figure out what code the VM executes to automatically restore display mode just before exit.

Thanks in advance for any insight you can provide
lamster
4  Java Game APIs & Engines / JOGL Development / Re: Render-Time Benchmarking Problem - display() b on: 2003-09-21 06:02:18
Thanks! glFinish() is exactly what I needed.

Somehow every time I scanned the GL reference function list my mind skipped glFinish and fixated on glFlush, which, of course, wasn't helpful at all.
5  Java Game APIs & Engines / JOGL Development / Render-Time Benchmarking Problem - display() bug? on: 2003-09-20 17:59:00
I was under the impression that I could tell how long it'd take to render something by wrapping an appropriate subsection of the display(GLDrawable) function with time-checks and noting the elapsed time:
Ex.
before = hires.getTime()
gl.glBegin( GL.GL_QUADS )....gl.glEnd()
elapsed = hires.getTime()-before

While this method seems to capture _some_ of the time required to perform a particular render, I've recently noticed another associated time that is, in some cases, many times more important (say 400x for large shapes) and requires more careful benchmarking.  The time I refer to is the delay between successive display(GLDrawable) calls by an Animator which, as far as I can tell, is calling display in a pretty tight loop.

For example, when drawing 200 620x460 white quads to the screen on my p4/radeon.mobility.9000, the 'direct', timer-wrapped elapsed time is about 00.14ms, while the time between successive display calls jumps to around 63.52ms.  I'm sure that the successive call delay is directly related to the quad rendering because cutting the number-to-render in half also halves the successive display wait, and forgoing renders altogether brings successive display wait to a (healthy?) baseline of about 1.8ms.

I'm sure I must misunderstand something fundamental about how the OGL framebuffer gets swapped onscreen, or else this latency is the result of some enormous performance-destroying bug.

Please straighten me out Smiley

Example program to illustrate what I'm talking about:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
93  
94  
95  
96  
97  
98  
99  
100  
101  
102  
103  
104  
105  
106  
107  
108  
109  
110  
111  
112  
113  
114  
115  
116  
117  
118  
119  
120  
121  
122  
123  
124  
125  
126  
127  
128  
129  
130  
131  
132  
133  
134  
135  
136  
137  
138  
139  
140  
141  
142  
143  
144  
145  
146  
147  
148  
149  
150  
151  
152  
153  
154  
155  
156  
157  
158  
159  
160  
161  
162  
163  
164  
165  
166  
167  
168  
169  
170  
/* Demonstrates the (strange?) pauses between display(GLDrawable) calls
 * managed by an Animator when large amounts of area are filled during each
 * display call.  On my p4/mobility radeon 9000, high-res timing indicates
 * that the time _between_ display() calls is over 400x the time spent
 * within a particular display() function call when several hundred large
 * white quads are drawn to the screen each display() (63.52ms vs 00.14ms).
 ********************************************************************************/


import java.awt.*;
import java.awt.event.*;
import sun.misc.Perf;
import net.java.games.jogl.*;

public final class DDelay extends Frame implements GLEventListener, KeyListener
{
      private GraphicsDevice gd;
      private DisplayMode dm;

      // JOGL:
      private GLCanvas canvas;
      private Animator animator;

      public static void main( String[] args )
      {
            boolean openFullScreen = args.length >= 1 && args[0].equals("y");
            System.out.println( "open fullscreen = "+openFullScreen );
            DDelay test = new DDelay( openFullScreen );
            test.show();
      }

      public DDelay( boolean fs )
      {
            super( "Strange Delay Between display(GLDrawable) Calls" );

            GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas( new GLCapabilities() );
            canvas.addGLEventListener( this );
            add( canvas );
            animator = new Animator( canvas );

            addKeyListener( this );
            addWindowListener( new WindowAdapter(){public void windowClosing( WindowEvent e ){close();System.exit( 0 );}});

            gd = getGraphicsConfiguration().getDevice();
            dm = new DisplayMode( 640, 480, gd.getDisplayMode().getBitDepth(), gd.getDisplayMode().getRefreshRate() );

            fs = fs && ( dm != null && gd.isFullScreenSupported() );

            setIgnoreRepaint( true );
            setResizable( false );

            setUndecorated( fs );
            if( fs )
            {
                  gd.setFullScreenWindow( this );
                  gd.setDisplayMode( dm );
            }
            else
            {
                  pack();
                  Insets insets = getInsets();
                  int w = 640+insets.left+insets.right;
                  int h = 480+insets.top+insets.bottom;
                  setSize( w, h );
                  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                  setLocation( (screenSize.width-w)/2, (screenSize.height-h)/2 );
                  show();
            }

            animator.start();
      }

      // GLEventListener:
      public void init( GLDrawable drawable )
      {
            GL gl = drawable.getGL();
            gl.glEnable( GL.GL_DEPTH_TEST );
            gl.glEnable( GL.GL_CULL_FACE );
            drawable.addKeyListener( this );
      }
      public void reshape( GLDrawable drawable, int x, int y, int width, int height )
      {
            GL gl = drawable.getGL();
            GLU glu = drawable.getGLU();
            gl.glViewport( 0, 0, width, height );
            gl.glMatrixMode( GL.GL_PROJECTION );
            gl.glLoadIdentity();
            // java-style display coordinates, (0,0) is top left
            glu.gluOrtho2D( 0, 640, 480, 0 );
            gl.glMatrixMode( GL.GL_MODELVIEW );
      }
      public void displayChanged( GLDrawable arg0, boolean arg1, boolean arg2 ) {}

      public void display( GLDrawable drawable )
      {
            // begin display, record time for future printing
            double startDisplay = Timer.getTime();
            double betweenDisplays = startDisplay - endDisplay;

            GL gl = drawable.getGL();
            gl.glClear( GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT | GL.GL_ACCUM_BUFFER_BIT );
            gl.glColor3f( 1.0f, 1.0f, 1.0f );

            // draw a simple quad occupying most of the screen, 200 times (one on top of the next)
            for( int i = 0; i < 200; i++ )
            {
                  gl.glBegin( GL.GL_QUADS );
                        gl.glVertex2i( 10, 470 );
                        gl.glVertex2i( 630, 470 );
                        gl.glVertex2i( 630, 10 );
                        gl.glVertex2i( 10, 10 );
                  gl.glEnd();
            }

            // Every second, print how much time was spent drawing the quads, and how much time was spent between display() calls:
            if( lastPrint == 0 )
                  lastPrint = Timer.getTime();
            else if( startDisplay - lastPrint > PRINT_DELAY )
            {
                  System.out.println( "Between display()'s for "+printFormat.format(betweenDisplays) + " milliseconds" );
                  System.out.println( "Rendering display() for "+printFormat.format(lastRenderTime) + " milliseconds" );
                  System.out.println( "--------------------------------------------" );
                  lastPrint = startDisplay;
            }

            // end display, record time for future printing
            endDisplay = Timer.getTime();
            lastRenderTime = endDisplay - startDisplay;
      }

      private final static java.text.NumberFormat printFormat = java.text.NumberFormat.getNumberInstance();
      static
      {
            printFormat.setMinimumIntegerDigits(3);printFormat.setMinimumIntegerDigits(3);printFormat.setMinimumFractionDigits(3);printFormat.setMaximumFractionDigits(3);
      }
      private final static double PRINT_DELAY = 1000;
      private double lastPrint;
      private double lastRenderTime;
      private double endDisplay;

      // KeyListener:
      public final void keyTyped( KeyEvent e ){}
      public final void keyPressed( KeyEvent e )
      {
            if( e.getKeyCode() == KeyEvent.VK_ESCAPE )
            {
                  close();
                  System.exit( 0 );
            }
      }
      public final void keyReleased( KeyEvent e ){}
     
      public final void close(){      animator.stop(); }
}

final class Timer
{
      static Perf hiResTimer;
      static double freq;
     
      static
      {
            hiResTimer = Perf.getPerf();
            freq = hiResTimer.highResFrequency();
      }
     
      public static double getTime()
      {
            return hiResTimer.highResCounter() * 1000.0 / freq;
      }
}


And some example output:
[size=1]
Between display()'s for 127.347 milliseconds
Rendering display() for 000.142 milliseconds
--------------------------------------------
Between display()'s for 063.521 milliseconds
Rendering display() for 000.115 milliseconds
--------------------------------------------
[/size]
Oh yeah, every once in a while the generally consistent between-display time will spike by a factor of ~2.  And enabling DEPTH_TEST seemed to reduce between-display delay by about 40%.

Also, any advice on how to measure actual, total render time an operation ends up consuming, short of isolating the operation in its own test program and measuring successive display wait, would be nice.  Online OGL FAQs of apparent repute seem to indicate the sort of direct benchmarking I've tried would work..Sad
6  Java Game APIs & Engines / JOGL Development / Fullscreen DisplayList Crash on: 2003-09-20 07:08:15
I'm using the sept. 5 JOGL binaries on a Pentium 4 with a 'MOBILITY RADEON 9000' graphics card running Dell's default laptop drivers and have run into native exceptions when trying to invoke a display list while in fullscreen mode.

If running in windowed mode, calling a display list works without a hitch.
And there are no problems when equivalent gl-calls are substituted for a glCallList while running in fullscreen mode.

However, attempting to glCallList while in fullscreen mode causes an immediate native exception.

Anyone run into similar problems, or is this crash specific to my card+driver?  Anyone know a workaround?

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
93  
94  
95  
96  
97  
98  
99  
100  
101  
102  
103  
104  
105  
106  
107  
108  
109  
110  
111  
112  
113  
114  
115  
116  
117  
118  
119  
120  
121  
122  
123  
124  
125  
126  
127  
128  
129  
130  
131  
132  
133  
134  
135  
136  
137  
138  
139  
140  
141  
142  
143  
144  
145  
146  
147  
148  
149  
150  
151  
152  
153  
154  
155  
156  
157  
158  
159  
160  
161  
162  
163  
164  
165  
166  
167  
168  
169  
170  
171  
172  
173  
174  
175  
176  
177  
178  
179  
180  
181  
182  
183  
184  
/*
 *  Testing JOGL Fullscreen Display-List Crash Bug
 *   Using my Pentium 4/Mobility Radeon 9000 Laptop:
 *    When in fullscreen mode, any attempt to call a
 *    display list causes an immediate native exception.
 *    If not in fullscreen mode, or equivalent gl calls
 *    not from a display list are used, no error occurs.
 **********************************************************/


import java.awt.*;
import java.awt.event.*;

import net.java.games.jogl.*;

public final class BugTest extends Frame implements GLEventListener, KeyListener
{
      private boolean fullscreenEnabled;
      private boolean fullscreen;

      private GraphicsDevice gd;
      private GraphicsConfiguration gc;
      private DisplayMode old_mode;
      private DisplayMode dm;

      // JOGL:
      private GL gl;
      private GLU glu;
      private GLCanvas canvas;
      private Animator animator;

      // TESTING: if both true, my p4/Mobility Radeon 9000 crashes, otherwise, no problems
      private static boolean openFullScreen;
      private static boolean useDisplayList;
     
      public static void main( String[] args )
      {
            openFullScreen = args.length < 1 || args[0].equals("y");
            useDisplayList = args.length < 2 || args[1].equals("y");
           
            System.out.println( "open fullscreen  = "+openFullScreen );
            System.out.println( "use display list = "+useDisplayList );
     
            BugTest test = new BugTest( openFullScreen );
            test.show();
      }

      public BugTest( boolean fs )
      {
            super( "Fullscreen DisplayList Crash Bug" );

            GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas( new GLCapabilities() );
            canvas.setSize( 640, 480 );
            canvas.setIgnoreRepaint( true );
            canvas.addGLEventListener( this );
            add( canvas );
            animator = new Animator( canvas );

            addKeyListener( this );
            addWindowListener( new WindowAdapter(){
                        public void windowClosing( WindowEvent e )
                        {
                              close();
                              System.exit( 0 );
                        }
                  });

            gc = getGraphicsConfiguration();
            gd = gc.getDevice();

            old_mode = gd.getDisplayMode();
            dm = new DisplayMode( 640, 480, old_mode.getBitDepth(), old_mode.getRefreshRate() );

            fullscreenEnabled = ( dm != null && gd.isFullScreenSupported() );

            setIgnoreRepaint( true );
            setResizable( false );

            if( fullscreenEnabled && fs )
                  openFullScreen();
            else
                  openWindowed();

            animator.start();
      }

      public final void openFullScreen()
      {
            System.out.println( "Entering full screen mode" );
            fullscreen = true;

            setUndecorated( true );
            gd.setFullScreenWindow( this );
            gd.setDisplayMode( dm );
      }

      public final void openWindowed()
      {
            System.out.println( "Entering windowed mode" );
            fullscreen = false;

            setUndecorated( false );

            pack();
            Insets insets = getInsets();
            int w = 640+insets.left+insets.right;
            int h = 480+insets.top+insets.bottom;
            setSize( w, h );

            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            setLocation( (screenSize.width-w)/2, (screenSize.height-h)/2 );
            show();
      }

      public final void close()
      {
            animator.stop();
      }

      // GLEventListener:
      public void init( GLDrawable drawable )
      {
            gl = drawable.getGL();
            glu = drawable.getGLU();
           
            drawable.addKeyListener( this );
           
            compileDisplayList();
      }
      public void reshape( GLDrawable drawable, int x, int y, int width, int height )
      {
            gl.glViewport( 0, 0, width, height );

            gl.glMatrixMode( GL.GL_PROJECTION );

            gl.glLoadIdentity();

            // java-style display coordinates, (0,0) is top left
            glu.gluOrtho2D( 0, 640, 480, 0 );

            gl.glMatrixMode( GL.GL_MODELVIEW );
      }
      // Not implemented yet?
      public void displayChanged( GLDrawable arg0, boolean arg1, boolean arg2 ) { }

      public void display( GLDrawable drawable )
      {
            gl.glClear( GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT );
           
            if( useDisplayList )
                  gl.glCallList( 1 );
            else
                  drawQuad();
      }

      public void compileDisplayList()
      {
            gl.glNewList( 1, GL.GL_COMPILE );
                  drawQuad();
            gl.glEndList();
      }

      public void drawQuad()
      {
            gl.glColor3f( 0.0f, 1.0f, 0.0f );
            gl.glBegin( GL.GL_QUADS );
                  gl.glVertex2i( 100, 100 );
                  gl.glVertex2i( 200, 100 );
                  gl.glVertex2i( 200, 200 );
                  gl.glVertex2i( 100, 200 );
            gl.glEnd();
      }
     
      // KeyListener:
      public final void keyTyped( KeyEvent e ){}
      public final void keyPressed( KeyEvent e )
      {
            if( e.getKeyCode() == KeyEvent.VK_ESCAPE )
            {
                  close();
                  System.exit( 0 );
            }
      }
      public final void keyReleased( KeyEvent e ){}
}


And an example error report:
[size=1]
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x69075DDD
Function=[Unknown.]
Library=c:\WINDOWS\system32\atioglxx.dll

NOTE: We are unable to locate the function name symbol for the error
     just occurred. Please refer to release documentation for possible
     reason and solutions.


Current Java thread:
     at net.java.games.jogl.impl.windows.WindowsGLImpl.glCallList(Native Method)
     at BugTest.display(BugTest.java:150)
     at net.java.games.jogl.impl.GLDrawableHelper.display(GLDrawableHelper.java:74)
     at net.java.games.jogl.GLCanvas$DisplayAction.run(GLCanvas.java:194)
     at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:192)
     - locked <0x100a0cd0> (a net.java.games.jogl.impl.windows.WindowsOnscreenGLContext)
     at net.java.games.jogl.GLCanvas.displayImpl(GLCanvas.java:182)
     at net.java.games.jogl.GLCanvas.display(GLCanvas.java:82)
     at net.java.games.jogl.Animator$1.run(Animator.java:104)
     at java.lang.Thread.run(Unknown Source)

Dynamic libraries:
0x00400000 - 0x00406000       c:\WINDOWS\system32\java.exe
0x77F50000 - 0x77FF7000       C:\WINDOWS\System32\ntdll.dll
0x77E60000 - 0x77F46000       C:\WINDOWS\system32\kernel32.dll
0x77DD0000 - 0x77E5D000       C:\WINDOWS\system32\ADVAPI32.dll
0x78000000 - 0x78086000       C:\WINDOWS\system32\RPCRT4.dll
0x77C10000 - 0x77C63000       C:\WINDOWS\system32\MSVCRT.dll
0x08000000 - 0x08136000       C:\Program Files\Java\j2re1.4.2\bin\client\jvm.dll
0x77D40000 - 0x77DC6000       C:\WINDOWS\system32\USER32.dll
0x77C70000 - 0x77CB0000       C:\WINDOWS\system32\GDI32.dll
0x76B40000 - 0x76B6C000       c:\WINDOWS\system32\WINMM.dll
0x10000000 - 0x10007000       C:\Program Files\Java\j2re1.4.2\bin\hpi.dll
0x00390000 - 0x0039E000       C:\Program Files\Java\j2re1.4.2\bin\verify.dll
0x003A0000 - 0x003B8000       C:\Program Files\Java\j2re1.4.2\bin\java.dll
0x003C0000 - 0x003CD000       C:\Program Files\Java\j2re1.4.2\bin\zip.dll
0x02C60000 - 0x02D6A000       C:\Program Files\Java\j2re1.4.2\bin\awt.dll
0x73000000 - 0x73023000       c:\WINDOWS\system32\WINSPOOL.DRV
0x76390000 - 0x763AC000       c:\WINDOWS\system32\IMM32.dll
0x771B0000 - 0x772D1000       C:\WINDOWS\system32\ole32.dll
0x02F70000 - 0x02FC0000       C:\Program Files\Java\j2re1.4.2\bin\fontmanager.dll
0x51000000 - 0x51047000       c:\WINDOWS\system32\ddraw.dll
0x73BC0000 - 0x73BC6000       c:\WINDOWS\system32\DCIMAN32.dll
0x5C000000 - 0x5C0C8000       c:\WINDOWS\system32\D3DIM700.DLL
0x07050000 - 0x07057000       C:\Program Files\Logitech\MouseWare\System\LgWndHk.dll
0x07060000 - 0x07065000       C:\Program Files\Java\j2re1.4.2\bin\jawt.dll
0x07070000 - 0x070F5000       C:\erik\dev\ogl\simple\jogl.dll
0x5ED00000 - 0x5EDC6000       c:\WINDOWS\system32\OPENGL32.DLL
0x68B20000 - 0x68B3E000       c:\WINDOWS\system32\GLU32.dll
0x071A0000 - 0x071A6000       C:\Program Files\Strokeit\mhook.dll
0x071B0000 - 0x071BB000       C:\Program Files\Common Files\Logitech\Scrolling\LgMsgHk.dll
0x55900000 - 0x55961000       C:\WINDOWS\System32\MSVCP60.dll
0x69000000 - 0x6949A000       c:\WINDOWS\system32\atioglxx.dll
0x76C90000 - 0x76CB2000       C:\WINDOWS\system32\imagehlp.dll
0x6D510000 - 0x6D58D000       C:\WINDOWS\system32\DBGHELP.dll
0x77C00000 - 0x77C07000       C:\WINDOWS\system32\VERSION.dll
0x76BF0000 - 0x76BFB000       c:\WINDOWS\system32\PSAPI.DLL

Heap at VM Abort:
Heap
def new generation   total 576K, used 381K [0x10010000, 0x100b0000, 0x104f0000)
 eden space 512K,  73% used [0x10010000, 0x1006e550, 0x10090000)
 from space 64K,   6% used [0x100a0000, 0x100a1140, 0x100b0000)
 to   space 64K,   0% used [0x10090000, 0x10090000, 0x100a0000)
tenured generation   total 1408K, used 366K [0x104f0000, 0x10650000, 0x14010000)
  the space 1408K,  26% used [0x104f0000, 0x1054bbe0, 0x1054bc00, 0x10650000)
compacting perm gen  total 4352K, used 4112K [0x14010000, 0x14450000, 0x18010000)
  the space 4352K,  94% used [0x14010000, 0x144143d0, 0x14414400, 0x14450000)

Local Time = Sat Sep 20 03:03:04 2003
Elapsed Time = 3
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2-b28 mixed mode)
#
[/size]
7  Java Game APIs & Engines / Java 2D / Re: Who stole the TAB KeyEvent on: 2003-09-18 17:34:32
I think what you want is

// I'd like to see the TAB, Shift-TAB events, thank you:
(myFrame).setFocusTraversalKeysEnabled( false );

during the setup of your Frame
8  Games Center / Archived Projects / oh- and: re terrorist map on: 2003-09-15 22:03:26
<Sorry to keep bumping my own thread!>

Regarding the new york vs 'terrist' map:
Yeah, that map is pretty offensive and politically incorrect.  However, it's a custom map (built with the included leveleditor) and hosted on a server someone I don't know is running off their own cpu/bandwidth, so I really only have control over it at a 'filtering server-list' level.

If the game ever goes public I'll have the client's default filtering options set to show only servers running "official" maps (those with bold-green names on server list), but for now I'm trying to encourage map-making to test the editor, and to get some new ideas out there that I can adapt into official maps.

If you'd like to avoid this sort of thing in the future, make sure to only join servers running bold-green-named maps.
9  Games Center / Archived Projects / Re: Biplanes on: 2003-09-15 21:51:47
The auto-updater's been a bit neglected; the version up right now throws away all temporary files if it runs into problems copying over new files, I'll fix that for the next version.

Regarding web start:
The original incarnation of my game used web-start, however the combination on the following issues was a deal-breaker:

(1) users were unwilling to install java on their own just to play, probably due to its obnoxious (sometimes multiple) java sys-tray popups and incompatibility with some MS-centric 'java' games (like yahoo chess, which'll crash on win9x with default java != ms1.1x)
(2) users with slow internet connections and half the web cached in their temporary internet files would have to clear their precious cache in order for web-start to launch consistently (resolved in a recent patch? maybe, don't think so tho)
(3) random startup errors (would only load every third time for some useres, never tracked all of these down)
(4) even for me, with the latest java/web-start, running the most common recent OS, winXP, I almost always have to try to launch a web-start link (like those for many games I've tried from this forum) at least twice, killing all javaw processes before the second launch in order to make the game work.  Most of my users would be frusturated and/or dismiss the game as trash before getting that far.
(5) bad desktop integration and ridiculous caching problems, users would have to lookup the game under web-start in program files, manually delete old caches randomly/when I updated several files
(6) I'm borrowing web-space from friends and they're buying their bandwidth from big-name providers who don't give them access to things like mime-type control (making jnlp configuration a huge pain)

SO
Now I use these tools for installation/updating:
(1) zero-g installanywhere free installer, easy to use, will install a bundled VM if you want it to (very important for new windows users expecting a 1-click download/install), installs the program like a native executable, with platform-consistent shortcuts, program files entry, etc

(2) a homemade auto-updating suite that lets me upload patches absolutely painlessly (scripted ftp of whichever files have changed to a friend's webserver via ncftp), and automatically patches clients upon connection

I'm not sure how many of my old web-start issues have been resolved, but I've gone from an install problem every 2 attempted installs to no installation problem reports in a couple months (except yours blahblah!)..so I don't plan to switch back.

If there're actually people interested in using a distribution method similar to mine for their own games, I'd be happy to clean up my auto-updater and release it as some sort of non-virally-open-source project.

Also, blahblah: if you're still getting resource transfer errors please instant message me so I can figure out what's going wrong..this is the first problem report I've heard in a while and would like to fix the issue. AIM=iamlamtheham
10  Games Center / Archived Projects / Re: Biplanes on: 2003-09-14 21:50:11
Misleading client-side interpretation of a vestigial message.. I just updated the format used to communicate server status/versioning info to clients looking for games.  Unfortunately, the servers running a copy of the game from 3 days ago will report their status in a format that is close enough to right to not be thrown out, but causes the client to interpret the server's version as unreasonably high (newer than client's).  Disregard the notification the "tfp" server gives, as it is in fact out of date; once that server's been rebooted this sort of mixup should never occur again :]
In the meantime, all the other servers are running the version the autopatcher will give you, so join one of them.
11  Games Center / Archived Projects / Re: Biplanes on: 2003-08-04 16:34:12
thanks everyone

Re: Abuse
I put kill messages back in on bare, everyone seems to want them.
I too noticed drawString being slow on an accelerated buffer, so I already use buffers to store the result of all text rendering to save the game from repeated drawString calls.  Thanks for the warning though Smiley.  The rendering bottleneck is now the unavoidable fillPolygon calls :\

Re: blahblahblahh
To see all current commands, press B:
TAB to view scores/team scores
Up/Down arrow keys to change speed
12  Games Center / Archived Projects / Re: Can't connect to server on: 2003-08-03 17:49:23
Quote
But I can't connect to the server, ping times out. Maybe I'll try setting up a server.

So you're seeing a server but you timeout on connect (i.e. ping=9999), or no servers pop up when you update server list?  What OS/firewall?

Only problems I've seen recently have been due to routers/firewalls. The game will try to communicate via UDP on port 27005 (configurable under Option->port from main hub), so make sure to open up UDP traffic on the appropriate port.  

Let me know if you figure out what's going wrong.
13  Games Center / Archived Projects / Biplanes on: 2003-08-03 15:45:23
I've been working on a 2d multiplayer dogfighting game for a while now, and would like to get some feedback from the folks here.

To install (for people who know the command line and have java 1.4+):
Download: http://www.gamedit.com/~lampster/Master.jar
Download: http://www.gamedit.com/~lampster/biplanes.cfg
Run: java -jar Master.jar biplanes.cfg

There's also a user-friendly native installer, link to the game's forum, and how-to set up your own server guide here: http://www.gamedit.com/~lampster

Things are still very much prerelease, and I'm not too much in need of testers (tho I'd love programmer testers if I could get them =), but I was hoping you could help me with some graphics API questions.

First, does anyone have a sense for how much trouble it'd be to convert from java.awt.Graphics rendering to OpenGL (via LWJGL or JOGL) rendering?

Also, could I expect significant speedups by making the switch?  Right now rendering is the performance bottleneck which seems like a shame since, for lack of artists, I designed everything around simple 2d polygons(fillPolygon) which even I can draw.  I'm optimistic that a polygon-based API like OpenGL would handle this sort of rendering well, but I'm extremely ignorant on this point so please let me know the real story.

Thanks for checking things out, and any testing you're inclined to do,
lamster
gnet_biplanes@yahoo.com
14  Java Game APIs & Engines / Java Sound & OpenAL / Re: javax.sound.sampled 1.4.1 problem on: 2003-02-14 20:28:30
Quote

What Bug ID did you get? I couldn't find it in the bug parade (or is it too soon?).

It's too soon yet; I'll post the pertinent infos to this thread as soon as the bug team sends me a response.  Sun claims typical processing time of about 3 weeks for new bug reports, so expect to wait until at least March 2nd for the update.

In the meantime you can always test your stuff with 1.4.0_03 (http://java.sun.com/j2se/1.4/download.html), but it'll be painful to have to try to distribute an obsolete java as a prerequisite for a release game :(
15  Java Game APIs & Engines / Java Sound & OpenAL / Re: javax.sound.sampled 1.4.1 problem on: 2003-02-12 13:49:31
Thanks for the confirmation guys,

I've submitted the bug to the java parade, let's
hope it's dealt with in 1.4.2.
16  Java Game APIs & Engines / Java Sound & OpenAL / javax.sound.sampled 1.4.1 problem on: 2003-02-09 20:34:08
When playing sampled sounds using the Windows java 1.4.1 virtual machine, sounds play back incorrectly and the sound thread blocks all other goings-on, causing the main game thread to slow down and chop madly.  After some testing I've concluded that this problem does not exist under the Windows 1.4.0_* runtimes and all other previous runtimes that implement javax.sound.sampled.

Am I doing something wrong?  Or is the new runtime just horribly flawed?

I've posted an example jar (source included) that demonstrates the problem at
http://www.zianet.com/emeasure/SoundTest.jar

To run:
java -jar SoundTest.jar
p to play sound
arrow keys to move oval (demonstrates choppiness)

Relevant code:
--------------------------------------

private Clip clip;

private final void initializeClip()
{
     try
     {
           AudioInputStream stream =
           AudioSystem.getAudioInputStream( getClass().getResource( "test.wav" ) );
           
           AudioFormat format = stream.getFormat();
           
           DataLine.Info info = new DataLine.Info(
           Clip.class, stream.getFormat(), ( (int) stream.getFrameLength() * format.getFrameSize() ) );
           clip = (Clip) AudioSystem.getLine( info );
           
           // Wait until audio file completely loaded
           clip.open( stream );
     } catch( Exception e )
     {
           e.printStackTrace();
     }
}

private final void playClip()
{
     clip.setFramePosition( 0 );
     clip.loop( 0 );
}


--------------------------------------
Thanks in advance for any insights you can provide,
lamster
Pages: [1]
 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

toopeicgaming1999 (55 views)
2014-11-26 15:22:04

toopeicgaming1999 (48 views)
2014-11-26 15:20:36

toopeicgaming1999 (8 views)
2014-11-26 15:20:08

SHC (24 views)
2014-11-25 12:00:59

SHC (24 views)
2014-11-25 11:53:45

Norakomi (26 views)
2014-11-25 11:26:43

Gibbo3771 (23 views)
2014-11-24 19:59:16

trollwarrior1 (36 views)
2014-11-22 12:13:56

xFryIx (75 views)
2014-11-13 12:34:49

digdugdiggy (52 views)
2014-11-12 21:11:50
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!