# Start ins Java Game Development



## Vyax (24. Feb 2012)

Hallo Java Community,

ich möchte endlich mal ins Game Development starten und habe dafür die Sprache Java gewählt, da ich Windows für total bekloppt und ******* halte, bitte nehmt es mir nicht übel. Objektive-C mit OpenGL würde ich akzeptieren, aber dann könnten alle in meinem Umfeld es nicht nutzen und so bin auf Java gekommen.

Ich bin quasi Wiedereinsteiger und kenne ich mit dem "Normalen Coding" aus.

Kennt jemand von euch HumbleBundle Mojam? Ich hab mir da von Catacomb Snatch den Source Code angesehen, verstehe den aber nicht. Der Programmtechnische Code ist logisch, aber das, was mit Bildern und Rendern zu tun hat, kapier ich (noch) nicht.

Nun möchte ich aber ins Game Development starten und suche deshalb nach einen guten Tutorial.
Könnt ihr mir ein paar Möglichkeiten nennen, die es in Java gibt? Kennst jemand von euch "Profis" da ein gutes Tut und würde sich vielleicht auch bereit erklären Fragen von mir zu beantworten?

Gruß Vyax


----------



## Empire Phoenix (24. Feb 2012)

Mehr details?

Was genau hast du vor, die welt der Games ist groß und man muss je nachdem was man plant sich mit algorithmik und interner arbeitsweise von physic opengl ect auskennen. (bzw man lernt das dabei das verzögert dann natürlich alles um mehrere Jahre)


----------



## Vyax (24. Feb 2012)

Also ich habe erstmal etwas in 2D vor.
Es soll auf jeden Fall einen Multiplayer haben.


----------



## Spacerat (24. Feb 2012)

Wie bidde? Eine Frage nach einem 2D-Game-Tutorial und kein Link zu Quaxli? Das geht aber mal gar nicht. :lol:
Naja... ist zwar weder Online noch Multiplayer, aber immerhin.


----------



## Noctarius (24. Feb 2012)

Vielleicht solltest du erstmal ein 2D Game machen und wenn dieses steht kannst du Multiplayer hinzufügen.

Zu Rendervorgängen gibt es sowohl generelle Bücher als auch Java spezifische Varianten (z.B. "Killer Game Programming in Java" - PS: hat nichts mit "Killerspielen" zu tun).

Bei konkreten Fragen und Verständnisproblemen kannst du gerne auch hier im Forum fragen.


----------



## irgendjemand (24. Feb 2012)

ohne dich entmutigen zu wollen oder deine kompetenzen in frage zu stellen solltest du trotzdem erstmal mit den basic von java beginnen bevor du dich an ein so großes projekt wagst ... und dich dann auch mal im spieleforum umsehen anstatt hier im afänger bereich


----------



## x22 (24. Feb 2012)

irgendjemand hat gesagt.:


> ohne dich entmutigen zu wollen oder deine kompetenzen in frage zu stellen solltest du trotzdem erstmal mit den basic von java beginnen bevor du dich an ein so großes projekt wagst ... und dich dann auch mal im spieleforum umsehen anstatt hier im afänger bereich



Er sagt doch, er ist Wiedereinsteiger?.. Wieso dann Basics???:L


----------



## TKausL (24. Feb 2012)

x22 hat gesagt.:


> Er sagt doch, er ist Wiedereinsteiger?.. Wieso dann Basics???:L



So wie ich es verstanden habe ist er umsteiger.


----------



## Vyax (24. Feb 2012)

Es ist so, ich habe mal Java gelernt.

Dann bin ich auf Mac und Objective-C gestoßen und es hat mir sofort gefallen.
Ich habe ein paar Apps geschrieben und in den Store gebracht.

Für das Game Development habe ich wieder Java gewählt.
Jetzt will ich ein großes Projekt starten, bei dem ich das Game development lerne.


----------



## Noctarius (24. Feb 2012)

Objective-C hat der gefallen? Wo kriegt man die Drogen her?


----------



## njans (24. Feb 2012)

Objective-C ... Ich kann den Terror nicht beschreiben, der sich in mir aufbaut!


----------



## Vyax (24. Feb 2012)

@Noctarius
Ich bin ein der, keine die.

Ich finde der Code in Objektive-C ist viel übersichtlicher. Gerade die Methoden. Aber egal.

Ich bin gerade dabei, das Tutorial von Quaxli zu machen, komme aber nicht weiter, da es bei mir keine Animation ist, sondern nur das erste Bild angezeigt wird.
Die Methoden 
	
	
	
	





```
public void run()
```
 und 
	
	
	
	





```
paintComponent(Graphics g)
```
 wird bei mir nur 2x aufgerufen, statt immer wieder.
Woran kann das liegen?


----------



## TKausL (24. Feb 2012)

Vyax hat gesagt.:


> @Noctarius
> Ich bin ein der, keine die.
> 
> Ich finde der Code in Objektive-C ist viel übersichtlicher. Gerade die Methoden. Aber egal.
> ...



Startest du denn run() auch als Thread?
Den Fehler machen viele, du musst .start() nutzen, damit run() als Thread läuft, und nicht run() per hand aufrufen.


----------



## Noctarius (24. Feb 2012)

Vyax hat gesagt.:


> @Noctarius
> Ich bin ein der, keine die.



Sollte ein dir sein, sorry


----------



## Vyax (24. Feb 2012)

```
public GamePanel(int iWidth, int iHeight)
{
	setPreferredSize(new Dimension(iWidth, iHeight));
		
	frame = new JFrame("Hubschrauber");
	frame.setResizable(false);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.add(this);
	frame.pack();
	frame.setLocationRelativeTo(null);
	frame.setVisible(true);
		
	initialization();
		
	Thread thread = new Thread(this);
	thread.start();
}
```

Das ist der Kunstruktor von meinem GamePanel.


----------



## Noctarius (24. Feb 2012)

Dein GamePanel ist ein JFrame? Wenn ja, rendern sollte man immer auf ein Canvas. Dieses unterstützt auch Multi-Buffering und Page-Flipping.


----------



## TKausL (24. Feb 2012)

Hast du denn in der run()-Methode auch eine (Endlos)-Schleife?


----------



## Vyax (24. Feb 2012)

Nein, GamePanel ist ein JPanel.
Hat jemand eine Idee, warum [c]run()[/c] nur 1x aufgerufen wird?


----------



## TKausL (24. Feb 2012)

Vyax hat gesagt.:


> Nein, GamePanel ist ein JPanel.
> Hat jemand eine Idee, warum [c]run()[/c] nur 1x aufgerufen wird?



Run wird eben nur einmal aufgerufen. Aber halt in einem neuen Thread, weswegen du ohne Probleme darin eine Endlosschleife nutzen kannst, ohne den Rest des Programmablaufs zu stören.


----------



## Vyax (24. Feb 2012)

Hab meinen Fehler gefunden.
Ich hab vergessen in die run() Methode eine while Schleife reinzuhängen.


----------



## Noctarius (24. Feb 2012)

Das Zauberwort (in der Gamebranche) was du suchst ist Mainloop: Hier ist ein hübsches "Tutorial" Game Engine & Framework in Java

Aber auch hier sollte man Canvas zum Zeichnen nutzen um Flackern beim Aufbau zu verhindern.


----------



## Vyax (25. Feb 2012)

Bye Leute, ich geh wieder zu Objektive-C.
Da hat man wenigsten Ordnung, ordentliches Ressourcenmanagment, Performance, den InterfaceBuilder, @properties und Xcode <3.


----------



## Noctarius (25. Feb 2012)

Ähm ja... viel Spaß da


----------

