# Performancetest: Kleines Spielchen



## Steev (16. Sep 2009)

Hallo liebe Forengemeinde,

ich habe ein kleines Spielchen geschrieben. Bei mir funktioniert das Spielchen zwar. Ich würde aber gerne wissen, ob das Spiel auch bei anderen performant läuft.







Unter folgendem Link könnt Ihr euch das Spiel herunterladen:

http://steev.st.ohost.de/BallonShooter.zip

*Anleitung: Ballon Shooter*

Installation:
1. zip-Datei entpacken
2. jar-Datei ausführen

Achtung, das Spiel startet sofort

Spielen:
Das Spiel ist ein Endlosspiel.
Ziel des Spieles ist es, so viele Punkte wie möglich zu erreichen. Für jeden Ballon, der nicht abgeschossen wurde, wird ein Punkt abgezogen, für jeden abgeschossenen Ballon gibt es zwei Punkte.
Damit das Spiel nicht zu einfach wird ist die Zeit und die Munition begrenzt. Man kann also nicht wahllos herumklicken.

Achtung, manchmal hängt an den Ballon eine Objekt. Wenn diese Objekte abgeschossen werden, gibt es Zusatzpunkte. Wird hingegen der Ballon abgeschossen, so fällt das Objekt herunter und es gibt keine Zusatzpunkte.

Die Objekte sind wichtig, weil es für manche Objekte zusätzliche Zeit, Munition oder Punkte gibt.


Über Rückmeldungen ob und wie das Spiel bei euch funktioniert würde ich mich freuen.


----------



## andre111 (16. Sep 2009)

Wäre es in Ordnung wenn du die Sourcen uploaden würdest, würden mich mal interessieren. Funktioniert bei mir ohne Probleme.


----------



## Steev (16. Sep 2009)

Da spräche eigendlich nichts gegen. Allerdings benutze ich meine Engine EGE dafür, daher hält sich der Quellcode für das Spielchen in Grenzen.
...und dann habe ich noch das Problem, dass ich z.Z. nur mit einem Modem im Netz bin...

Ich probiere mal den Source hochzuladen...


----------



## andre111 (16. Sep 2009)

Gegen die Sourcen der Engine hätte ich auch nichts


----------



## Steev (16. Sep 2009)

Das kann ich mir denken 

Ich gucke mal, ob ich das ganze irgendwie hochladen kann. Javadocs habe ich schon erstellt. Ich habe nur gerade einen Upload von 0.06Kbs...............das kann also noch etwas dauern.


----------



## Steev (16. Sep 2009)

So, der Source für das Spielchen ist online:

unter folgendem Link kann der Source heruntergeladen werden.

http://steev.st.ohost.de/BallonShooter_Source.rar

Ausführbar ist das ganze jetzt natürlich nicht mehr, da ja die jar-Datei der Engine fehlt. Die reiche ich aber sobald es geht nach...

[edit]
So, ich habe mal die JAR, die JavaDocs und den Source der Engine hochgeladen.

Die Engine:
http://steev.st.ohost.de/ege/EGE.jar

Der Source der Engine:
http://steev.st.ohost.de/ege/EGE_Source.rar

Die JavaDocs:
http://steev.st.ohost.de/ege/EGE_docs.rar

Viel Spaß damit
Gruß
Steev


----------



## Marco13 (16. Sep 2009)

Ja, funktioniert - die Performance war aber auf meinem Rechner weniger die Frage... :smoke:  Noch ein paar Farben ändern, dann kannst du es als Werbespiel für Pro Familia einsetzen


----------



## Steev (16. Sep 2009)

Mach ich bestimmt

PS:
Auf meinem Rechner ist die performance auch kein Problem (AMD Phenom X2 955)
Aber gerade das ist ja ein Problem, weil man dann leich so programmiert, dass es nur noch bei einem selbst funktioniert


----------



## Marco13 (16. Sep 2009)

Etwas irritierend finde ich jetzt die _extreme_ Allgemeingültigkeit der Game Engine, und im Kontrast dazu die _vergleichsweise_ ""Einfachheit"" des Spiels. War das ... eher ein "Test" für die GameEngine?


----------



## Steev (16. Sep 2009)

Ja und nein 

Die Game Engine war das eigendliche Projekt. Da ich mit diesem Projekt jetzt weitesgehend "durch" bin, fange ich an meine Engine zu nutzen. Der eigendliche Test ist aber schon abgeschlossen.

Von daher sind diese Spielchen so eine Art "Test" der Engine, weil ich gucken will, ob ich mit der Engine klar komme.


----------



## Quaxli (17. Sep 2009)

Nettes Spielchen - läuft auch bei mir problemlos. 
Ich fand es nur sehr schwer, die Boni abzuschießen.


----------



## Steev (17. Sep 2009)

Das soll ja auch nicht zu einfach sein...

Das liegt daran, dass für alle Objekte eine Pixelgenaue Kollisionsabfrage verwendet wird. Die Boni-Objekte sind tw so klein, dass man dann nur auf etwa 16x16 Quadratpixel klicken muss.

Falls ihr meint, dass das zu schwer ist, mache ich für die Bonis einen Boundingbox-HitTest.


----------



## Grey_M (17. Sep 2009)

Also ich habe auch oft genug daneben geschossen, vor allem bei den Bonis.

Ich finde die Pixe genau Kollisionsabfrage aber toll. Soll ja nicht zu einfach sein.


----------



## Steev (17. Sep 2009)

Ich weis ja nicht wie es euch geht, aber ich finde das Spiel irgendwie langsam zu einfach. Wenn man einigermaßen Treffsicher ist, dann kann man das Spiel endlos spielen...

Wie könnte ich das Spiel anspruchsvoller machen?

Level mit steigender Geschwindigkeit und kleineren Ballons?
Weniger Zeit und Munition bei Pickups?
Mindestpunktzahlgrenze und höhere Abzüge für durchgelassene Ballons?

Ich habe keine Ahnung, vieleicht habe ihr ja ein paar nette Ideen...


----------



## hdi (18. Sep 2009)

Meine Vorschläge

1) wie wär's mit Wind? Also seitliche Bewegung der Ballons

2) Dieses Dynamit-Pickup würde ich überarbeiten:
• nur ein bestimmter Radius der Explosion, das gibt dem ein taktisches Element. Da sich die Ballons ja auch unterschiedlich schnell bewegen, gibt es einen Zeitpunkt bei dem ich die meisten Ballons damit zerstöre.
• ich würde da zudem einen Effetk einbauen für die Explosion / Druckwelle

3) "Ghost-Balloons": Sie sind unsichtbar und blenden sich zB alle 2 Sekunden nur kurz ein und aus. Damit muss man etwas mitrechnen und predicten wo das Teil grad ist bzw. wo es gleich auftaucht. Natürlich gibt so ein Ballon mehr Punkte.

4) Ich würde ne kleine Bonus-Runde einbauen: Wenn man x Ballons in Folge abgeschossen hat (kein Fehlschuss), schaltet sich ne Bonus Runde zwischen, wo man dann ne Maschine-Gun hat und durchklicken kann, und der Bildschirm ist prall gefüllt mit Ballons. Einfach aus Fun, um Punkte zu sammeln als Belohnung für die Zielgenauigkeit. Nach x Sekunden ist die runde zu ende und das normale Spiel geht weiter.

5) Du könntest ne Tiefenebene einbauen, sodass zB ein Ballon vorne, der schneller ist, einen hinteren überholt. Für einen Shot durch 2 Ballons könnte es dann auch Extra-Punkte geben.

6) Vllt die Grafik der Ballons etwas überarbeiten, so einen kleinen Spiegeleffekt vllt rein. NAch ca 30 Sekunden spielen kam es mir irgendwie vor als würde ich auf Sperma schiessen


----------



## Steev (18. Sep 2009)

Danke für die Vorschläge,

das müsste eigendlich alles kein Problem sein, ich werde mich mal dran machen, das ganze umzusetzen.
Ein Shot durch mehrere Ballons ist jetzt schon möglich, nur dass man keine Extrapunkte bekommt 
Falls jemand noch Vorschläge zur Verbesserung hat, bitte posten, ich freue mich...


----------



## Marco13 (18. Sep 2009)

Die Vorschläge von hdi finde ich super :toll: :applaus: 
Lediglich die Ghost-Ballons nicht ... das ist so "unrealistisch" ... 
Die "Tiefenebene" Könnte sich schon allein in unterschiedlich großen Ballons äußern - ggf. könnten weiter entfernte (kleinere) dann auch mehr Punkte bringen ... obwohl sie sich (wegen der größeren Entfernung) dann eigentlich auch insgesamt langsamer bewegen müßten.


----------



## spyboot (19. Sep 2009)

points: 228 
hits: 134
shoots: 200
time left: 3


----------



## Steev (21. Sep 2009)

So,

ich habe jetzt mal (fast) alle Vorschläge mit in das Spiel aufgenommen. Die neue Version steht euch unter folgendem Link zum Download zur Verfügung. Den Source habe ich jetzt nicht aktualisiert.

http://steev.st.ohost.de/BallonShooter2.rar

Ich hoffe das Spiel ist immer noch spielbar und performant.

Die Grundlegenden Neuerungen sind:
1. Es gibt jetzt einen Shop, wo man sich für Punkte Munition, Zeit, und Waffen kaufen kann
2. Es gibt einen Windsack, der anzeigt, wie der Wind weht
3. Die Ballon sind verschieden weit von der Kamera weg
4. Es gibt jetzt eine Pause-Funktion (Leertaste)
5. Wenn man 20 Mal hintereinander trifft wird ein Bonuslevel freigeschaltet
6. Kleinere Ballons und PickUps bringen mehr Punkte

Es gibt folgende Waffen:
1. Pistole: Die Standardwaffe, hat nur einen Schuss pro Klick
2. Shotgun: Schießt mehrere Kugeln pro Schuss und kann mehrere Ballons in der Umgebung treffen
3. Maschinengewehr: Wenn mann die Maus gedrück hält, dann hat man 59 Schuss, die geschossen werden, ohne Munition zu verbrauchen
4. Sniper: Schießt nur einen Schuss pro Klick, stellt aber ein Zielfernrohr bereit, mit dem an Objekte gezoomt werden kann (Mausrad)

Wenn Ihr noch weitere Verbesserungsvorschläge habt, dann postet doch bitte. Mich würde auch interessieren, ob das Spiel bei langsameren Rechnern gut läuft.


----------



## Marco13 (21. Sep 2009)

Wie äußert sich denn das "Bonuslevel"?


----------



## Steev (22. Sep 2009)

Für 20 Sekunden kommen nur große Ballons und die Wahrscheinlichkeit, dass an diesen PickUps hängen ist größer als normal.


----------



## TheKing (14. Nov 2009)

Bei mir kann ich das Spiel nicht öffnen. Wenn ich die Jar manuell öffne kommt die Meldung das die Datei nicht geöfnet werden kann, und über java -jar:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)


----------



## Steev (14. Nov 2009)

Hmm, das ist ja eigenartig. Was verwendst du für ein Betriebssystem und welche Version hast du ausprobiert?


----------



## TheKing (14. Nov 2009)

ich hab mac osx und hab die beiden versionen ausprobiert..den source kompilieren kann ich auch nicht..


----------



## Marco13 (14. Nov 2009)

Dein JDK bzw JRE ist wohl nicht das neueste - schau' dich mal auf den Sun-Seiten nach dem JDK 1.6 um...


----------



## Steev (14. Nov 2009)

Kommt beim Kompilieren des Quellcodes dieselbe Fehlermeldung oder eine andere? Was hast du für eine Java-Version? (EDIT: Ups, wir haben uns überschnitten :-D)

Ach so, für das Kompilieren des Quellcodes benötigst du die class-Dateien der EGE-Engine. Die liegen in der JAR-Datei bei.


----------

