# Space PingPong Game --> Performance ok?



## macfreakz (10. Aug 2004)

Hallo Forumteilnehmer, 

nachdem ich ein Memory Spiel programmiert hatte, dachte ich mir, dass ich ein besseres PingPong Spiel programmieren sollte. 

Darüber werde ich vielleicht auch ein Tutorial schreiben, wenn die Zeit mir erlaubt ...   

Bitte bewerte dieses Spiel Performance und Flüssigkeit ... danke ... 

(Wie schaut mit der CPU Auslastung? FPS? ... ) schreibt hier rein ... 
kann hier schlecht testen, weil mein Rechner nur 8 MB Grafikkarte hat ... danke !!! 

Download Space Ping Pong


----------



## Beni (10. Aug 2004)

Bis zu 30 Frames/Sek. Durchschnitt 24
Auf einem AMD Athlon 3000+ eine CPU-Belastung von 100%...

Und das Ding ruckelte trotz der angeblich hohen Framerate extrem, unspielbar.

Tja, hast Du noch was zu tun


----------



## Rydl (10. Aug 2004)

also das spiel ruckelt bei mir extrem, 
lastet meinen athlon xp 2000+ noch lange nich voll aus, 
hat etwa 31/32 fps und funktioniert noch nicht richtig.
also man kann ja garnich verlieren?? außerdem gelangt der ball am unteren rand außerhalb der sichtweite.
noch etwas kurioses: wenn ich ein das fenster vom spiel nicht mehr im fokus hab, läufts plötzlich fast flüssig...


----------



## macfreakz (10. Aug 2004)

@Rydl + Beni: SEHR KOMISCH!!! 

Mein Rechner: 2 GHz mit 8Mb Grafikkarte!

Daten: 












Und das Spiel ist etwas flüssig ... wer kann mir erklären???


----------



## Beni (10. Aug 2004)

Ich habs mit dem 1.5.0 und 1.4.2 versucht, beides mal dasselbe. Es gibt Momente in denen das Ding gut läuft, aber die sind nur kurz.


----------



## bummerland (10. Aug 2004)

bei mir auf arbeit ist es relativ spielbar.
15 fps
amd duron 800mhz, 240 mb ram, billiggraka


----------



## macfreakz (10. Aug 2004)

Neue Version uploaded!

Download Link --> siehe ganz oben!

@becstift: endlich mal was Positives  :lol:


----------



## Beni (10. Aug 2004)

Schwankt ein bisschen, aber bei mir hats nicht viel gebracht :cry:


----------



## Noar (10. Aug 2004)

Hi,

läuft bei mir mit 33 FPS.  Es ist spielbar, aber ruckelt in regelmäßigen Abständen stark.
Ach, eine Frage am Rande: Das der Bildauschnitt scrollt soll so sein, ja? Finde ich persönlich für ein Pong-Spiel unnütz.

Gruß Noar


----------



## Anubis (10. Aug 2004)

Auf einen P4 2,6GHz, mit 512Mb Ram, WinXP und 16-64Mb Intel-Grafikchip um die 60fps. 

Aber  nicht konstant


----------



## Isaac (10. Aug 2004)

Konstant 65 Frames


----------



## Anubis (10. Aug 2004)

Wie wird denn der Linke Schläher gesteuert??? :roll:


----------



## Illuvatar (10. Aug 2004)

Also auch mal:
Athlon 2500+; 512 Ram; GF4 Ti 4200; WinXP; JDK1.5 Beta 2

stark ruckelnd mit 35-36 fps.
Edit: CPU-Auslastung: 85-100%

Wenn ich das Fenser nicht im Fokus hab, ruckelts nicht mehr, mit konstant 29 fps.
Wenn ich dann ein anderes kleineres Fenster über dem Fenster verschiebe werden sogar bis zu 120 fps angezeigt.

Zum Spiel:
Bildschirmausschnitt sollte sich nicht verschieben.
Kollisionsabfrage einbauen.
Schläger darf nicht weiter als zum Bildschirmrand.


----------



## Isaac (10. Aug 2004)

Hmm wieso rennt das bei mir so flüssig?
Meine Prozessorauslastung ist bei 1%


Wenn er darüber ein Tutorial schreiben will ist das SCrollen but weil es einen Aspekt der Spieleprogrammierung abdeckt.


----------



## Stefan1200 (10. Aug 2004)

Also dieser Rechner iMac G3 350 MHz, MacOS 10.3.4:

6 Frames mit aktiven Fenster, stark ruckelnt. Etwas besser, wenn das Fenster kein Fokus mehr hat, mit 7-8 Frames.


----------



## Beni (10. Aug 2004)

@macfreakz
Du kannst sonst den Code auf den Server werfen, damit man damit "rumspielen" kann. Vielleicht entdeckt ja hier einer einen ganz trivialen Fehler oder so..  :###  ???:L


----------



## stev.glasow (11. Aug 2004)

25 - 30 fps (ruckelt trotzdem ziehmlich stark)
P3 450 Mhz 256 MB Ram


----------



## bummerland (11. Aug 2004)

also bei mir zu hause läufts absolut flüssig, ca. 90-100 fps, komisch, dass das bei euren top-rechnern nicht so ist !?!

pentium 4 1,4 ghz, 
1 GB RAM (vielleicht macht der es aus?)
32 MB graka


----------



## macfreakz (11. Aug 2004)

Und noch ein Test auf meinem eMac 1,25 GHz, 32 MB Grafikkarte: flüssig mit 35 FPS !

@Beni: Ja, genau! ICH versteh die Welt nicht mehr ... heute mittags werde ich die Code veröffentlichen  :wink: 

@alle: danke, dass ihr es getestet habt! 8)

Und ob 1 GB RAM was ausmacht? Habe nach geschaut, dass mein Spiel nur 27 MB Arbeitsspeicher benötigt!


----------



## thE_29 (11. Aug 2004)

also hab nen PIV 2.66 GHZ (no HT) und bekomme max. 8% Auslastung zusammen und habe 60fps

Habe noch 512 RAM und so ne IntelGraphics Karte, da der PC nur fürs programmieren ist!

Ich finds nett


----------



## Manfred (11. Aug 2004)

Bei mir (P4 1,6 und 256 MB) läufts flüssig mit 50FPS


----------



## Anubis (11. Aug 2004)

Hab es mal auf einen celeron 1,0GHz, 384MB Ram, GF2-MX, JDK1.4.2 und WinXP Gespielt: maximal 14f/s. 
Wenn das Fenster kein Fokus hat fliegt der ball gleichmäßig, mit Fokus ungleichmäßig!

Probiere gleich mal auf SuSE lin9.0, Kernel 2.4.21, JDK 1.4.2 und KDE 3.2.2


----------



## Anubis (11. Aug 2004)

Zu meinem Lin Tst: schön flüssig mit knapp 90f/s. (Jar-File war entpackt)


----------



## macfreakz (11. Aug 2004)

@alle: danke sehr, dass ihr es getestet habt! 

bei vielen geht das Spiel flüssig, bei vielen nicht! Was kann das dann heissen? Liegt es am Code? Liegt es am Lust von Java Interpreter? Liegt es am Arbeitsspeicher? 

Ich denke, es wäre besser, wenn ich die Code hier veröffentliche und Euch allen anfordere, die Code mal anzuschauen, wo vielleicht eine Fehler drin steht!

Habe erneut etwas am Code geändert! Probiert mal das Spiel aus und guck mal die Code an ... gell? 

hier Download

Bitte um Feedback und Veröffentlichung, wer am Code etwas geändert bzw. angeschaut hat!


----------



## thE_29 (11. Aug 2004)

also jetzt ist die performance im arsch 

hab 30 fpsund 70 - 100% cpu auslastung und 50% kernelauslastung!


----------



## bygones (11. Aug 2004)

das gleiche bei mir... CPU Lastung geht sofort auf 100% (habe nur die jar gestartet sonst nix).....

Habe einen 2Ghz AMD Athlon, 512MB speicher (Grafikkarte weiß ich net genau....)


----------



## Guest (11. Aug 2004)

@the_29: erhöhe den sleep Wert in der Methode "gameLoop()" (SPPController.java) auf 20 und vermindere den Wert "spielGeschwindigkeit" auf 1. Ach, probier doch mal aus ...


----------



## pogo (11. Aug 2004)

bei mir ist die CPU last bei 70%
1GHZ
512 MB RAM
32 MB Graka


----------



## bygones (11. Aug 2004)

ah - da sind ja 2 jars drinnen... habe mal die zweite benutzt - CPU auslastung ist nicht so schlimm - läuft flüssig

aber mein Paddel kann sein wo es will - der Ball bounct immer zurück....


----------



## macfreakz (11. Aug 2004)

Der Gast da oben war ich ... alles klar?

@ALLE: spiel mit dem Code herum ... bitte !!! ;-) 

@deathbyaclown: dies ist eine ältere Version! Guck mal meinen Hinweis oben (Gast) ...


----------



## Anubis (11. Aug 2004)

Unter Lin hab ich eine Systemlast von 45% bei etwa 90fps.

Von der Framerate her ist bei mir Lin etwa 7 mal schneller als Win (Gleicher Rechner!!)
Was CUP Last angeht, hat Lin nur die Hälfte von Win


----------



## Beni (11. Aug 2004)

Ich hab den GameLoop mal mit dem AWT-Thread synchronisiert, dadurch ging zwar die CPU-Belastung nicht runter, aber es ruckelte dafür nicht mehr so stark.


```
// das GAME LOOP 
    public void gameLoop()
    {
        TimeStopper.start();
        while(true)
        {
            try
            {
            	SwingUtilities.invokeAndWait( new Runnable(){
            		public void run(){
	                    spaceWorld.updateGame();
	                    
	                    spaceWorld.getCamera2D().updateCamera();
            		}
            	});
            	
            	spaceWorldView.repaint();
                Thread.sleep(10);
            }
            catch(InterruptedException ie)
            {
            }
            catch( InvocationTargetException ex ){
            	
            }
        }
    }
```


----------



## pogo (11. Aug 2004)

deathbyaclown hat gesagt.:
			
		

> ah - da sind ja 2 jars drinnen... habe mal die zweite benutzt - CPU auslastung ist nicht so schlimm - läuft flüssig.



mit der 2. läufts bei mir auch, allerdings mit einer framerate von kanpp 30


----------



## macfreakz (11. Aug 2004)

@Beni: Habe diese Methode eingebaut und es läuft etwas besser! Trotzdem, danke!

@alle: habe eine neue Version hochgeladen! Es sollte bei allen RECHERN flüssig laufen! 

Hier Download


----------



## Kerberus (11. Aug 2004)

Die Performance ist besser geworden...
Habe einen G4 QuickSilver 867MHz. Allerdings läuft das Programm immer noch nicht flüssig.

Noch eine Frage: Wieso kann ich das Panel aus dem Bild hinaus bewegen?


----------



## bummerland (11. Aug 2004)

jetzt läufts extrem flüssig bei mir zu haus, auch viel schneller. die framerate liegt konstant bei 100. kann es sein, dass sie nicht mehr als 100 anzeigt?


----------



## Beni (11. Aug 2004)

Also bei mir gabs sogar eine Verschlechterung, maximal 25 Fps.

Ausserdem reagiert das Ding nicht mehr auf meine Tastatur  ???:L


----------



## bummerland (11. Aug 2004)

Beni hat gesagt.:
			
		

> Also bei mir gabs sogar eine Verschlechterung, maximal 25 Fps.
> 
> Ausserdem reagiert das Ding nicht mehr auf meine Tastatur  ???:L



komisch... wie kann es denn sein, dass das programm so extrem riesige performance-unterscheide aufweist?


----------



## akira (11. Aug 2004)

Bei mir (Athlon 2Gig, 512MB, 128MB Graka,WinXPSP2) läuft die Version mit schlappen 40fps bei 100% Auslastung. Das Ruckeln hat jedoch erheblich abgenommen, ist aber noch nicht ganz weg.

Ich könnte mir vorstellen, daß das komische Verhalten etwas mit der Tastaturabfrage zu tun hat.
Soweit ich gesehen hab werden zwar Event enabled:


```
enableEvents(8L);
```

(Sind KeyEvents 8?) aber es wird kein KeyListener registriert. 
Bin nicht so fit in Swing, aber das scheint mir doch etwas komisch.
_
Edit: Ok, ich verstehe es jetzt doch, du hast ja die processKeyEvent-Methode überschrieben._


----------



## Beni (11. Aug 2004)

Wow: ich hab mal direkt auf das Canvas, und nicht zuerst auf das Image gezeichnet: 250 fps, flüssig (leider flackernd).

Edit:  anstelle von

```
dbImage = createImage( this.getSize().width, this.getSize().height);
```
hab ich

```
dbImage = createVolatileImage( this.getSize().width, this.getSize().height);
```
geschrieben.

Resultat: *300 fps, flüssig*  (ich wage nicht, das "Thread.sleep(1)" zu entfernen  )


----------



## macfreakz (12. Aug 2004)

@Beni: Interessant! Bei mir wird die FPS nicht so hoch geschraubt. Wie kann ich dann ein Spiel entwickeln, das für alle flüssig läuft? Gibt es ein Tutorial darüber, wie man richtig Threads einsetzt / die Game Loop Methode richtig geschrieben wird? Bin momentan auf der Suche nach einem guten Tutorial (Englisch oder Deutsch) ! 

@alle: weiss jemand vielleicht die Ursache? Hmmm ... 

@akira: genau! alles klar? Wenn du Fragen hast, PM mir einfach ...


----------



## Grizzly (12. Aug 2004)

macfreakz hat gesagt.:
			
		

> @Beni: Interessant! Bei mir wird die FPS nicht so hoch geschraubt. Wie kann ich dann ein Spiel entwickeln, das für alle flüssig läuft? Gibt es ein Tutorial darüber, wie man richtig Threads einsetzt / die Game Loop Methode richtig geschrieben wird? Bin momentan auf der Suche nach einem guten Tutorial (Englisch oder Deutsch) !


Auch wenn ich nicht Beni heiss  : Es gibt ein nettes Buch zum Thema: Developing Games in Java

Und ein Tutorial gibt es auch. Ist zwar eigentlich für Applets, aber ist auch so anwendbar: Java Game Programming Tutorial



			
				macfreakz hat gesagt.:
			
		

> @alle: weiss jemand vielleicht die Ursache? Hmmm ...


Für was? Das VolatileImage so abgeht?


----------



## Beni (12. Aug 2004)

API hat gesagt.:
			
		

> Because of the potential for hardware acceleration, a VolatileImage object can have significant performance benefits on some platforms.


Das "erklärt", wieso VolatileImage so einen enormen Unterschied macht, und auch wieso es nicht überall so ist. (can have != allways...).


----------



## Heiland (30. Aug 2004)

Ich habe mir die sources zu deinem Spiel geladen! Doch kannst du mir sagen, was die Hauptklasse ist. Ich blicke da nicht ganz durch ;-) Möchte das ganze ein wenig umbauen für mein Pong Spiel.

Gruß, JaVa


----------



## Reality (30. Aug 2004)

Warum lässt sich keine Version spielen?

Liebe Grüße
Reality


----------

