Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (106)
games submitted by our members
Games in WIP (533)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  what to expect ....  (Read 3376 times)
0 Members and 1 Guest are viewing this topic.
Offline pepe

Junior Member




Nothing unreal exists


« Posted 2004-07-31 08:36:06 »

Hello, folks.
What would you expect from the following list?

- a game running in 800*600
- using java2D only.
- working under 1.4.2 and 1.5
- sprites loaded from 32 bits png files.
- having -each frame- between 30 to 120 sprites alphacomposited, all drawn using affineTransforms. Most would be rotated and/or scaled differently every frames.
- sprites original size ranging from 64*64 to 256*128 (player avatar) Player avatar would be rotated using AffineTransform, but not zoomed. Some sprites would be zoomed two times and drawn 512 * 256.
- sprites can have from 10 to 50% surface transluscent, up to about 50% transparent and up to 50% opaque.
- most sprites displayed would also be composited using their own global alpha.
- some sprites would use vector shapes (Area) for clipping and avoid being drawn partially. shapes would be recreated every frame as they are non mutable and contain over 60 lines. Two would be used each frame.
- drawn using double buffering, and a default bufferStrategy.
- no object pooling. No care taken to avoid object creation. (sparkles from shoots would be objects allocated and unallocated once unused, so would be those of the ship)
- no dirty zones, the game would be completely scrolling. each frame being a completely new one. Standard side scrolling game.
- under 200Kb compressed jar including GageTimer and the windows DLL. (first shot without menu, no real death. Game starts directly and quits once you're dead. Rude one at first. Smiley )
- sprite collisions would be done using AffineTransform-ed Areas, (10 to 16 connected lines), using the AWT methods to check for overlapping. Nevertheless, most of the collisions would occur using Rectangle, but collisions would be checked over almost all of the sprites.
- the game would be time compensated, so whatever the framerate, it would react the same. (that implies that there are multiplications and divisions everywwhere for anything)

What framerate would you expect on a 1Ghz machine using a geforce 2 under windows and a plain 1.4.2 ( no transaccel, no ddrawScale ). How do you expect linux to behave?
Do you expect GC pauses? how long?
Do you expect problems playing the game under the 1.5b2 GL pipeline?

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline kevglass

JGO Kernel


Medals: 120
Projects: 23
Exp: 18 years


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #1 - Posted 2004-07-31 08:56:15 »

I'd suspect you would get less <60fps. Lots of GC pauses on older VMs. At the moment 1.5b GL pipeline isn't showing me any benefits in performance. Linux generally renders reasonably but doesn't perform quite as well (although since you're back to software rendering you might not notice much difference).

Transluceny + AffineTransforms = Software Rendering

Kev

Offline pepe

Junior Member




Nothing unreal exists


« Reply #2 - Posted 2004-07-31 10:03:33 »

Quote

Transluceny + AffineTransforms = Software Rendering

What do you think would performance be under those conditions?

Also, what is the minimum framerate you'd expect for a game to be playable? (think rtype or equivalent)

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Abuse

JGO Coder


Medals: 11


falling into the abyss of reality


« Reply #3 - Posted 2004-07-31 12:28:08 »

I'd expect <5fps, under 1.4.2 without any flags set.

As kev said, if you are alpha compositing and affinetransforming, you realy dont want your back buffer to be in vram.

If you changed the BufferStrategy to a BufferedImage backbuffer, you would have faster alpha compositing.

However, the fillrate for drawing an 800x600 software backbuffer to the screen would also hit your framerate alot.
I'd say 10-15fps using a software backbuffer @ 800x600.

I don't think your collision detection using Area calcs would be your major bottleneck unless you were using the 1.5 OGL pipeline.
If you were using the 1.5 OGL pipeline and it was functioning correctly it *should* give you 60+fps.

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline princec

JGO Kernel


Medals: 342
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #4 - Posted 2004-07-31 12:29:10 »

I would expect no less than 60fps on a modern machine, but I suspect that your combination of factors will lead you to get 15fps. 30fps is about the minimum for a professional look.

Cas Smiley

Offline Malohkan

Senior Member




while (true) System.out.println("WOO!!!!");


« Reply #5 - Posted 2004-07-31 13:15:47 »

the stuff you described is almost exactly my game you've been helping me get ideas to speed up Wink  And it runs at 60fps on my machine and yours no problem.  Of course I actually TRY to make it fast...

Admin and Game Developer at
GameLizard.com
Play Rimscape!    |    Play Conquer!
Offline pepe

Junior Member




Nothing unreal exists


« Reply #6 - Posted 2004-07-31 13:48:54 »

Thanks for your answers.

For you, what would be the specs of a modern machine, Cas?
For you that did statistics about gamer's machine, is the machine i gave in my specs a good representative of the market?

Malohkan:
It's true that there are things that look like.
Nevertheless, you don't have as much transformed sprites, you have very sparse translucency, i saw no global transparency applied to sprites, and you don't seem to use polygon clipping. Those are important and are part of the specs.
i can't see the FPS anymore, is that normal?


Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline Abuse

JGO Coder


Medals: 11


falling into the abyss of reality


« Reply #7 - Posted 2004-07-31 16:08:39 »

Only 60 Sprites (33% opaque, 33% transparent, 33% translucent)
No Collision Detection,
No Scaling,
etc etc

On an Athlon1.33 with GF2gts, I get
9-12fps in both 1.4.2 & 1.5.

In 1.5 with the OpenGL pipeline enabled, I get more than 180fps.


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  
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.*;
import java.awt.geom.*;
public class TinyTest extends Frame      implements Runnable, KeyListener
{
      volatile boolean running = true;
      Sprite [] sprites;
     
      Random rnd = new Random();
     
      public TinyTest(GraphicsDevice gd)
      {
            setUndecorated(true);
            addKeyListener(this);
           
            gd.setFullScreenWindow(this);
            DisplayMode      dm = new DisplayMode(800,600,32,60);
            gd.setDisplayMode(dm);
            createBufferStrategy(2);
           
            GraphicsConfiguration gc = this.getGraphicsConfiguration();
           
            BufferedImage [] images      = new BufferedImage[60];
           
            images[0] =      gc.createCompatibleImage(256,128,Transparency.TRANSLUCENT);
            for(int      i =1;i<images.length;i++)
            {
                  images[i] =      gc.createCompatibleImage(64,64,Transparency.TRANSLUCENT);
            }
           
            for(int      i =      0;i< images.length;i++)
            {
                  int      width =      images[i].getWidth();
                  int      height = images[i].getHeight();

                  Graphics2D g2d = images[i].createGraphics();
     
                  int      color =      rnd.nextInt();
                  g2d.setPaint(new GradientPaint(width/3,0,new Color(color),(width*2)/3,0,new      Color(color&0x00FFFFFF,true)));
                  g2d.fillRect(width/3,0,(width*2)/3,height);
                 
                  g2d.setColor(new Color(rnd.nextInt()));
                  g2d.fillRect(0,0,width/3,height);
                 
                  g2d.setColor(Color.black);
                  g2d.drawRect(0,0,width-1,height-1);
                 
                  g2d.dispose();
            }
           
            sprites      = new Sprite [images.length];
           
            for(int      i =      0;i      < sprites.length;i++)
            {
                  sprites[i] = new Sprite(images[i],
                                                      rnd.nextInt(800),//x
                                                     rnd.nextInt(600),//y
                                                     rnd.nextInt(2)*2-1,//dx
                                                     rnd.nextInt(2)*2-1,//dy
                                                     rnd.nextDouble()*Math.PI*2,
                                                      (rnd.nextInt(2)*2-1)*Math.PI/72);
            }
            new      Thread(this).start();
      }
     
      public void      keyPressed(KeyEvent      ke)
      {
            if(ke.getKeyCode()==KeyEvent.VK_ESCAPE)
            {
                  running      = false;
            }
      }
     
      public void      keyReleased(KeyEvent ke){}
     
      public void      keyTyped(KeyEvent ke){}
     
      public void      run()
      {
            float globalAlpha =      0.0f;
            float alphaStep      = 0.05f;
           
            long prevTime =      System.currentTimeMillis();
            int      counter      = 0;
           
            String fps = "N/A";
           
            while(running)
            {
                  float newAlpha = globalAlpha+alphaStep;
                  if(newAlpha>1.0f ||      newAlpha < 0.0f) alphaStep=-alphaStep;
                 
                  globalAlpha+=alphaStep;
                 
                  Graphics2D g2d = (Graphics2D)(getBufferStrategy().getDrawGraphics());
                  g2d.setColor(Color.white);
                  g2d.fillRect(0,0,800,600);
                  //g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,globalAlpha));
                 g2d.setColor(Color.yellow);
                  for(int      i =      0;i      < sprites.length;i++)
                  {
                        sprites[i].update();
                        sprites[i].render(g2d);
                  }
                  counter++;
                  long timeDifference      = System.currentTimeMillis()-prevTime;
                  if(timeDifference>=1000)
                  {
                        fps      = Float.toString((counter*1000f)/timeDifference);
                        prevTime+=timeDifference;
                        counter=0;
                  }
                  g2d.setComposite(AlphaComposite.SrcOver);
                  g2d.setColor(Color.black);
                  g2d.drawString(fps,50,50);
                  g2d.dispose();
                  getBufferStrategy().show();
            }
            dispose();
      }
     
     
      public static boolean OPENGL = true;
     
      public static void main(String[] args)
      {
            if(OPENGL) System.setProperty("sun.java2d.opengl","True");
            new      TinyTest(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice());
      }
     
      static class Sprite
      {
            BufferedImage image;
            int      x,y,dx,dy; //position &      velocity
           int      width, height; //dimensions
           double angle, dangle; //angle &      angular      velocity
           
            public Sprite(BufferedImage      image, int x, int y, int dx, int dy, double      angle, double dangle)
            {
                  this.image = image;
                  this.x = x;
                  this.y = y;
                  this.width = image.getWidth();
                  this.height      = image.getHeight();
                  this.dx      = dx;
                  this.dy      = dy;
                  this.angle = angle;
                  this.dangle      = dangle;
            }
           
            public void      update()
            {
                  x+=dx;
                  y+=dy;
                  angle=(angle+dangle)%(Math.PI*2);
                 
                  if(x<0 || x>800)
                  {
                        dx=-dx;
                  }
                  if(y<0 || y      > 600)
                  {
                        dy=-dy;
                  }
            }
           
            public void      render(Graphics2D g2d)
            {
                  AffineTransform      af = new AffineTransform();
                  af.setToTranslation(x,y);
                  af.rotate(angle);
                  af.translate(width/-2,height/-2);
                  g2d.drawImage(image, af, null);
                  g2d.drawLine(x,y,x+dx,y+dy);
            }
      }
}

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline pepe

Junior Member




Nothing unreal exists


« Reply #8 - Posted 2004-08-01 09:43:22 »

abuse:
Your test runs at 11fps on my machine, and i have to admit i'm a bit puzzled. Please read your PM.
My first thought is that this microbenchmark thing is not right.

I actually have a 2.8Ghz p4 and a radeon 9700. Is that a uber machine, or can it be elected to the rank of 'modern machine'?


Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline Abuse

JGO Coder


Medals: 11


falling into the abyss of reality


« Reply #9 - Posted 2004-08-01 10:44:31 »

Not suprising realy,
The CPU & graphics card have very little to do with the app. speed when performing software operations (AlphaComposite & AffineTransform) on a surface in vram.

The speed limiting factor is bus speed - and, your results being so close to mine makes me think your machine is running its AGP port at 4x, rather than 8x or above.

With opengl enabled, I would expect your machine to get 400-500fps, as the radeon 9700 is far superior to my GF2gts, and twice the CPU speed can't hurt either =)

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline pepe

Junior Member




Nothing unreal exists


« Reply #10 - Posted 2004-08-01 11:35:45 »

abuse:
i can tell you it's surprising. please read your PM (private board messaging...) you have a message...

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline Abuse

JGO Coder


Medals: 11


falling into the abyss of reality


« Reply #11 - Posted 2004-08-01 12:33:49 »

I adjusted my little TinyTest, so it is closer to what yours is doing - and got a comparable framerate. (23-24fps)

1 interesting thing I noticed.

Windowed mode appears to be faster when performing software operations on vram surfaces. (between 10-20% faster)

So it would seem that either :-

1) Read-back from vram is quicker when operating in windowed mode.
I can't however see why this would be so.

or

2) The software rendering loops for performing the AffineTransform/AlphaComposite are faster when in windowed mode.
This could possibly be explained if the pixel format in windowed mode is compatible with the software loops,
and the pixelformat for fullscreen is not (and so requires the color components be reordered)

Either way it does seem abit peculiar :-/

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline pepe

Junior Member




Nothing unreal exists


« Reply #12 - Posted 2004-08-01 15:13:17 »

comparable.. not that sure.
there are about 50 sprites (outside player, sparks, and the rest) blitted with a big clipping zone each frame. (sea and sky which are not in the actor count) and i saw no global alpha applied to your sprites.
If that is no cost, it's nice, but i doubt it is.
Anyway, it's not that bad.

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline Abuse

JGO Coder


Medals: 11


falling into the abyss of reality


« Reply #13 - Posted 2004-08-01 16:05:24 »

Quote
comparable.. not that sure.
there are about 50 sprites blitted with a big clipping zone each frame. (sea and sky) and i saw no global alpha applied to your sprites.
If that is no cost, it's nice, but i doubt it is.
Anyway, it's not that bad.


I presume the sea and sky pre-rendered images(rather than a runtime GradientPaint),
and they are not transformed or drawn with alpha?
If those 2 assumptions are true, then its equivalent to simply clearing the back buffer each frame - which my example already does.

As for global Alpha, yeah I commented that out, dunno why ^_^
Putting it back in costs almost nothing, around 1fps drop.

p.s.

I tried using a BufferedImage for the backBuffer.

and, while this sped up the AlphaCompositing (avoided the vram readback), the cost of blitting the 800x600 BufferedImage to the screen is so high, it results in no gain at all (infact, a slight drop).

If you lower the res. to 640x480, or increase the number of Sprites rendered per frame, the benefit of a software backbuffer is more apparent.

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline pepe

Junior Member




Nothing unreal exists


« Reply #14 - Posted 2004-08-01 16:16:43 »

it's true that they are not runtime rendered, nor transformed or alpha blit. nevertheless, when i don't render them, i get 6 more FPS.
did not try changing global alpha, btw.

should post the gamechmark officially by wednesday.

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline princec

JGO Kernel


Medals: 342
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #15 - Posted 2004-08-01 18:04:32 »

I'm targeting 700MHz and GeForce 1 - level cards as my min spec now.

Cas Smiley

Offline dranonymous

Junior Member




Hoping to become a Java Titan someday!


« Reply #16 - Posted 2004-08-03 01:07:52 »

Abuse - I ran the test you wrote and got the same as others, 6 - 8 fps on a 1.3 GHz with Java 1.4.2.  I uninstalled 1.5.x, so I can't check the openGL pipeline.

At any rate, I noticed you are using a BufferStrategy.  Is this the better/best way of double buffering on the JFrame?  I've got an app where I declared a BufferedImage and then clear it each frame.  Then I draw to it, then blit it to the graphics context using drawImage(xxx).  It seems like maybe I'm doing work I don't need to.

Does it amount to the same thing roughly?
Offline Abuse

JGO Coder


Medals: 11


falling into the abyss of reality


« Reply #17 - Posted 2004-08-03 08:27:15 »

It depends what you are blitting to it, but in most cases using BufferStrategy will be alot faster.

BufferStrategy is implemented as a VolatileImage, this means the backBuffer is in vram, not system ram - hence any blits to it will be performed by the GPU not CPU - making the blits almost free.(the only CPU cost remaining, is the cost to tell the GPU to perform the blit)

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline pepe

Junior Member




Nothing unreal exists


« Reply #18 - Posted 2004-08-27 04:44:50 »

I have uploaded the gamechmark(r)(c)(*) that corresponds to that specifications. It is webstartable and small. Please try it and report statistics for your machine !!

http://frederic.barachant.com
In programming section.

thanks all for your advice !!

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline kevglass

JGO Kernel


Medals: 120
Projects: 23
Exp: 18 years


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #19 - Posted 2004-08-27 06:55:36 »

8fps on my GF2, Fullscreen, no throttle, Thread.sleep()

Quite a fun game too Smiley Incidently, didn't revert to the original display mode until I closed the little configuration window which was a bit odd.

GoSub - ace name btw.

Kev

Offline pepe

Junior Member




Nothing unreal exists


« Reply #20 - Posted 2004-08-27 07:25:04 »

unless you use 1.5's GL pipeline, it seems that everything is software. can you tell me what is your CPU brand/type and frequency?

About the fullscreen, it seems that unsetting the fullscreen frame only works once all frames are closed. (the key here is that the game starts from an other frame, it seems)

Heh.. i found the name to be a bit Geeky, but as it is a hidden meaning, it is fine. Smiley
Thanks for testing.

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline kevglass

JGO Kernel


Medals: 120
Projects: 23
Exp: 18 years


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #21 - Posted 2004-08-27 07:45:04 »

CPU in this case was an Intel P3 733.

I'll knock 1.5 on tonight and see what happens.

Kev

Offline pepe

Junior Member




Nothing unreal exists


« Reply #22 - Posted 2004-08-27 12:58:00 »

Quote
CPU in this case was an Intel P3 733.

I'll knock 1.5 on tonight and see what happens.

Kev

Be sure to use the zipped file (see readme inside)  to be able to setup J2D acceleration flags.

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline princec

JGO Kernel


Medals: 342
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #23 - Posted 2004-09-01 09:21:49 »

Java Web Start 1.5.0-beta3
Using JRE version 1.5.0-beta3 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\caspian.prince
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
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
0-5: set trace level to <n>
----------------------------------------------------
Selected display mode: Width:800 Height:600 Depth:32 rate:60Hz
1.5 NanoTimer selected.
Exception in thread "Thread-10" java.lang.IllegalStateException: Component must have a valid peer
     at java.awt.Component$FlipBufferStrategy.flip(Unknown Source)
     at java.awt.Component$FlipBufferStrategy.show(Unknown Source)
     at GoSub.RenderingThread.run(Game.java:1043)
     at java.lang.Thread.run(Unknown Source)
--== Please report the information below to gamechmark@barachant.com ==--
Please fill those information by hand:
CPU brand: Intel
CPU frequency: 2Ghz
Graphic card brand and model:GF42Go

--== Detected General Properties ==--
java.version:1.5.0-beta3
java.vm.version:1.5.0-beta3-b60
java.vm.vendor:Sun Microsystems Inc.
java.specification.version:1.5
os.name:Windows XP
os.arch:x86
os.version:5.1
sun.java2d.opengl:null
sun.java2d.trace:null
sun.java2d.accthreshold:null
--== Detected Windows Properties ==--
sun.java2d.transaccel:null
sun.java2d.noddraw:null
sun.java2d.ddoffscreen:null
sun.java2d.ddforcevram:null
sun.java2d.ddscale:null
sun.java2d.d3d:null
sun.java2d.d3dtexbpp:null
--== Detected unix/linux Properties ==--
sun.java2d.pmoffscreen:null
NO_J2D_DGA:null
J2D_PIXMAPS:null
--== Statistics ==--
Time played:96 seconds

update time min:0.357867 ms
update time Average:1.2392569999999998 ms
update time max:20.467685 ms

collision time min:0.039111 ms
collision time Average:0.328542 ms
collision time max:3.316064 ms

draw time min:58.07442 ms
draw time average:78.88226499999999 ms
draw time max:164.732389 ms

sleep time min:-151.146003 ms
sleep time average:-64.67004299999999 ms
sleep time max:0.0 ms

FPS min:5
FPS average:12
FPS max:16

Actor count Max:92
Actor count Average:57

GC pauses factor: 8
GC eventual pauses detected: 1

That's from Webstart...

Cas Smiley

Offline princec

JGO Kernel


Medals: 342
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #24 - Posted 2004-09-01 09:29:23 »

...got about 23fps windowed using the zip but curiously the zip refuses to work fullscreen - I just get a white screen.

Cas Smiley

Offline pepe

Junior Member




Nothing unreal exists


« Reply #25 - Posted 2004-09-01 12:57:44 »

Quote
Exception in thread "Thread-10" java.lang.IllegalStateException: Component must have a valid peer
at java.awt.Component$FlipBufferStrategy.flip(Unknown Source)
at java.awt.Component$FlipBufferStrategy.show(Unknown Source)
at GoSub.RenderingThread.run(Game.java:1043)
at java.lang.Thread.run(Unknown Source)

That happens when game is killed. for a weird reason (threading issue, delayed painting, whatever) i sometimes get the buffer swapped after the thread has quit (and i verify in my code that renderingThread is dead..)

I'm surprised you get a so low fps.. I get 65 fps on a 2.8Ghz P4.
[edit... that reports take too much place...]
Would you mind testing with GL pipeline enabled (zip version needed due to webstart & awt weirdness)

Did the 'blank frame ' test report something in the shell?

Thanks a lot for your testings.

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline princec

JGO Kernel


Medals: 342
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #26 - Posted 2004-09-01 16:26:12 »

From the commandline if I explcitly set the OpenGL property I get 62fps! (About what I'd expect on the laptop screen).

Cas Smiley

Offline pepe

Junior Member




Nothing unreal exists


« Reply #27 - Posted 2004-09-01 16:51:34 »

Quote
From the commandline if I explcitly set the OpenGL property I get 62fps! (About what I'd expect on the laptop screen).

Cas Smiley

Oh, you're using a laptop... That might explain why you get so low results. ( i get about the same results with a 1.4ghz good old duron and a geforce1, reason why it surprised me..) Can you tell me what is brand and model  o fthe laptop ? That will help relativising.

In those conditions having 62 fps in GL is nice.

Thanks for sharing !

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Offline princec

JGO Kernel


Medals: 342
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #28 - Posted 2004-09-01 18:32:42 »

60's about the most I'd expect in Windowed mode anyway really. It's an Inspiron 5150 with 3.2GHz HT P4, a gig of RAM, and a 64MB Gf4 2 Go. Should be good enough for Doom 3 I reckon.

Cas Smiley

Offline pepe

Junior Member




Nothing unreal exists


« Reply #29 - Posted 2004-09-01 19:32:54 »

Quote
60's about the most I'd expect in Windowed mode anyway really. It's an Inspiron 5150 with 3.2GHz HT P4, a gig of RAM, and a 64MB Gf4 2 Go. Should be good enough for Doom 3 I reckon.

Cas Smiley

3.2ghz? err. is that the same machine as the one that did 23fps? I currently have twice your fps in software (non gl pipeline) with an inspiron 9100 (2.8ghz).
I'm as fast in software as your GL. Ain't that  weird?
(nb: as far as i could gather, official information tend to show that  all i do forces the use of software pipeline. Any other info or diagnostic would be welcome)

Home page: http://frederic.barachant.com
------------------------------------------------------
GoSub: java2D gamechmark http://frederic.barachant.com/GoSub/GoSub.jnlp
Pages: [1] 2
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

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

The first screenshot will be displayed as a thumbnail.

pw (24 views)
2014-07-24 01:59:36

Riven (24 views)
2014-07-23 21:16:32

Riven (18 views)
2014-07-23 21:07:15

Riven (21 views)
2014-07-23 20:56:16

ctomni231 (50 views)
2014-07-18 06:55:21

Zero Volt (45 views)
2014-07-17 23:47:54

danieldean (36 views)
2014-07-17 23:41:23

MustardPeter (39 views)
2014-07-16 23:30:00

Cero (56 views)
2014-07-16 00:42:17

Riven (55 views)
2014-07-14 18:02:53
HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
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!