Hallo Community,
mein Name ist Maximilian Apel und ich bin seit Kurzem volljährig. Ich beschäftige mich nun seit ungefähr einem Jahr mit Programmierung in Java, mit dem Ziel, eines Tages mal tolle Spiele zu programmieren. Bisher habe ich Bradley Kjells Java Tutorial durchgelesen und in "Java von Kopf bis Fuß" reingeschnuppert, also nur allgemeine Java-Programmierung gelernt, ohne näher auf Spiele, Engines, Grafiken und Sound einzugehen. Diese Themen werden von Bradley Kjell leider nur sehr oberflächlich behandelt. Trotzdem habe ich mich vor einigen Wochen an die Programmierung meines ersten Spieles herangewagt und trotz schwerer "Bildungslücken"
![:D](wcf/images/smilies/biggrin.png.pagespeed.ce.UPFXer8Yu2.png)
und anderer Schwierigkeiten ist es jetzt geschafft!
Na gut, irgendwie hätte ich es mir schöner vorgestellt. Letzten Endes ist es doch äußerst simpel geblieben, trotzdem hoffe ich, dass es reicht, um einmal ein bisschen Feedback zu meiner Arbeit zu bekommen. Das Spiel findet ihr hier:
http://rapidshare.com/share/BFDE0B3E87268D24E54872C0EE1CF2D1
Programmiert habe ich mit Java, hauptsächlich im Texteditor (ja, ich weiß, dass das unprofesionell ist, aber ehrlich gesagt kann ich mich einfach nicht mit IDE's anfreunden, ich habs oft genug versucht
![:(](wcf/images/smilies/sad.png.pagespeed.ce.R_Dlrl8CWi.png)
). Nur wenn es einmal sehr brenzlig wurde, habe ich den Code mal meinem Freund Net Beans gegeben, damit er mal nach Fehlern sieht
![;)](wcf/images/smilies/wink.png.pagespeed.ce.L9LRa_F2a5.png)
.
Das Ganze ist natürlich in 2D-Grafik, aus der Draufsicht.
Im Spiel selbst geht es darum, Zombies zu töten (wow, ich bin beeindruckt von meiner Kreativität
). Diese kommen in steigender Anzahl kontinuierlich auf einen zu, erst aus einer Ecke, dann aus 2, dann 3… bis die Maximalzahl von 6 Spawnpunkten erreicht ist. Soweit die Theorie. In der Praxis zeigt sich, dass dank Permadeath und One-Touch-Kill niemand Level 5 überleben sollte, aber ihr könnts gerne probieren
.
Viel Wert habe ich auf die Modellierung der Waffe gelegt, einen 8-schüssigen Revolver im Kaliber .22, der 6 der 10 Sounds, die im Spiel verwendet werden, für sich beansprucht. Das Nachladen und Schießen ist sehr realistisch gestaltet, nur bei der Nachladezeit musste ich zwecks Balancing am Ende ein Auge zudrücken
![;)](wcf/images/smilies/wink.png.pagespeed.ce.L9LRa_F2a5.png)
.
So viel zum Eigenlob, jetzt noch mal zu den Problemen, die ich bemerkt habe und nicht ausradieren konnte/wollte:
1. Der Sound ist verbuggt
![:(](wcf/images/smilies/sad.png.pagespeed.ce.R_Dlrl8CWi.png)
, keine Ahnung warum, aber manchmal scheint ein Schuss korrekt registriert zu werden, bleibt aber einfach stumm. Dasselbe passiert mit anderen Waffengeräuschen, hauptsächlich dem "cocking"- und "insert"-sound. Der entsprechende Code befindet sich in "GameLoop.java" unter "//shoot" und "//reload", bzw. im Konstruktor.
2. Der Spieler kann problemlos über den unteren Rand des Spielfeldes hinausmarschieren! Das Problem liegt vermutlich irgendwo in "GameLoop.java" ("//move Player"), "GameArea.java" oder "GameWindow.java".
3. Ich wollte die Zombies außerhalb des Bildes spawnen lassen, das funktioniert aber irgendwie nicht, sie tauchen dann einfach nicht auf. Es gibt dann aber keine Exception und das Programm läuft ansonsten normal. Der Code zum Spawn liegt in "GameLoop.java" ("//spawn zeds").
4. Die Spielschleife scheint sehr unregelmäßig zu laufen. Im Regelfall braucht sie während dem Spiel 2-3 Millisekunden pro Iteration, vereinzelt aber bis zu 17! Woran liegt das? Ich nehme an, dass dies die Ursache für Problem Nr. 4 ist, das da lautet, dass die Zombie-Sterbeanimationen total unregelmäßig schnell ablaufen, manchmal mit normaler Geschwindigkeit und manchmal kaum zu sehen.
5. Ich entschuldige mich dafür, dass ich kein Hauptmenü bieten kann. Ich hatte mir eins vorgenommen, jedoch musste ich einsehen, dass der ganze Kladderadatsch mit Artwork etc. den "Release" noch mal locker um ein halbes Jahr verschoben hätte
![:D](wcf/images/smilies/biggrin.png.pagespeed.ce.UPFXer8Yu2.png)
. Auf eine großartige Sterbeanimation des Spielers habe ich bewusst verzichtet, weil ich es schön finde am Ende zu sehen, woran man gestorben ist (also welcher Zombie einen berührt hat).
Programmiertechnisch weiß ich, dass viele Features noch sehr unprofessionell eingefügt sind, aber zu meiner Verteidigung muss ich sagen: Ich weiß es einfach noch nicht besser
![:(](wcf/images/smilies/sad.png.pagespeed.ce.R_Dlrl8CWi.png)
. Ich freue mich auf Hinweise und Tipps, und wenn mir jemand ein gutes Spiele-Tutorial empfehlen kann, bin ich sehr dankbar. Das Tutorial "Spiele-Programmierung in Java" hier aus dem Forum (Autor ist aus der PDF leider nicht ersichtlich) habe ich mir schon mal angesehen, es hilft mir aber nicht wirklich weiter, da es eher Lösungen aufzählt als sie erklärt.
Wenn ihr Fragen oder Hinweise für mich habt, freue ich mich, hier von euch zu lesen. Sorry für den langen Text, aber ich konnte mich einfach nicht zügeln
![;)](wcf/images/smilies/wink.png.pagespeed.ce.L9LRa_F2a5.png)
LG Max
Edit:
Ich vergaß das Offensichtlichste: Es gibt keine funktionierende .jar-Datei. Wenn ich das Spiel verpacken will, wird der Sound nicht mehr gefunden und es lässt sich wegen der daraus resultierenden NullPointerException nicht mehr starten. Kann mir da jemand helfen?
Edit:
Dropbox-Link:
https://www.dropbox.com/sh/ueqapfh85hyjx1e/T6nQ8-LQyO
Ich hoffe, das funktioniert.