# Fragen wegen Spieleprogrammierung



## MadMax33309 (24. Sep 2009)

Hallo
Bin neue hier und hab auch gleich ein paar fragen^^

Ich möchte gerne mit paar andere Leute eine art MMORPG mit Java Programmieren.
Hab mich ein bischen klug gemacht und bin auf LWJGL gestoßen.
Meine frage ist nun kann ich Java mit LWJGL und mit Blender verwenden?
Worauf muss ich so achten?
Gibt es vielleich Bücher über LWJGL oder ähnliches(wenns geht in Deutsch)?

Eine frage noch zu Blender.
Ich will gerne Blender lernen aber ich war nocht nie wirklich kreativität.
Kann ich trozdem gut mit Blender arbeiten oder meint ihr ohne kreativität läuft nix?
Geht auch Cel-Optik mit Blender?

Wegen Netzwerk C/S geschichte habe ich an UDP und Multicast gedacht.
Geht das in ordnung?

Bin für jeden tipp und vorschläge sehr dankbar^^


----------



## Landei (24. Sep 2009)

LWJGL ist ziemlich "low-level" - nicht viel mehr als eine OpenGL-Schnittstelle. Vielleicht solltest du dir doch lieber Game-Engines anschauen wie JMonkeyEngine (das übrigens auf LWJGL aufsetzt und viele verschiedene 3D-Formate versteht) und für die Netzwerk-Kommunikation ein Framework wie Project Darkstar oder das einfachere JGN bemühen. Viel Erfahrung habe ich mit sowas nicht, aber so würde ich anfangen. Hauptsache nicht das Rad neu erfinden - selbst mit Engine und Netzwerk-Framework wirst du noch genügend Nüsse zu knacken haben.


----------



## Gastredner (24. Sep 2009)

MadMax33309 hat gesagt.:


> Gibt es vielleich Bücher über LWJGL oder ähnliches(wenns geht in Deutsch)?


Bücher explizit über LWJGL sind mir bisher keine über den Weg gelaufen. Etwas häufiger findet man hingegen Java 3D oder JOGL. Und auf Deutsch war keines davon, sofern ich mich korrekt erinnere.
Recht gute Bücher, so empfinde ich es zumindest, sind die von Andrew Davison: Einmal Killer Game Programming in Java, welches vor allem auf Grundlagen eingeht, und Pro Java 6 3D Game Development, welches sich wohl eher auf einige Teilbereiche spezialisiert. Momentan lese ich selbst das erste Buch und konnte bisher keine Nachteile entdecken - selbst die Tatsache, dass der Autor auf Java v1.4.2 arbeitet, ist kein Problem, da er oftmals auf Änderungen ab Java 5 verweist.


----------



## MadMax33309 (24. Sep 2009)

Landei hat gesagt.:


> LWJGL ist ziemlich "low-level" - nicht viel mehr als eine OpenGL-Schnittstelle. Vielleicht solltest du dir doch lieber Game-Engines anschauen wie JMonkeyEngine (das übrigens auf LWJGL aufsetzt und viele verschiedene 3D-Formate versteht) und für die Netzwerk-Kommunikation ein Framework wie Project Darkstar oder das einfachere JGN bemühen. Viel Erfahrung habe ich mit sowas nicht, aber so würde ich anfangen. Hauptsache nicht das Rad neu erfinden - selbst mit Engine und Netzwerk-Framework wirst du noch genügend Nüsse zu knacken haben.



Ok angenohmen ich verwende JME. Wie genau kann ich das dann mit Blender verwenden? Kann ich JME irgenwie in Blender einbauen und direkt dort sehen wie es aussieht?
Sry fang erst jetzt damit an deswegen auch diese fragen^^



Gastredner hat gesagt.:


> Bücher explizit über LWJGL sind mir bisher keine über den Weg gelaufen. Etwas häufiger findet man hingegen Java 3D oder JOGL. Und auf Deutsch war keines davon, sofern ich mich korrekt erinnere.
> Recht gute Bücher, so empfinde ich es zumindest, sind die von Andrew Davison: Einmal Killer Game Programming in Java, welches vor allem auf Grundlagen eingeht, und Pro Java 6 3D Game Development, welches sich wohl eher auf einige Teilbereiche spezialisiert. Momentan lese ich selbst das erste Buch und konnte bisher keine Nachteile entdecken - selbst die Tatsache, dass der Autor auf Java v1.4.2 arbeitet, ist kein Problem, da er oftmals auf Änderungen ab Java 5 verweist.



Hm ich guck dir mir mal an aber die idee von Landei sind sehr gut und erspart mir erst mal große arbeit aber die Bücher sehen trozdem sehr interessant aus viellleich hole ich sie mir mal später


----------



## Evil-Devil (24. Sep 2009)

@LJWGL: Entweder ins Wiki schauen und die paar Tutorials zur Verwendung als Grundlage nutzen und für fortführende Lekture einfach nach OpenGL Tutorials suchen. Zb. auf Nehe. Und das LWJGL Forum bietet einem in aller Regel freundlichen Support bei Fragen.

@Blende/JME: Du erstellst in Blender dein 3D Modell und speicherst/exportierst dieses in ein Format das JME versteht. Dann musst du es lediglich in JME laden und seinem Verwendungszweck entsprechend verwenden. Das läuft also alles getrennt voneinander ab. Blender ist "nur" ein Mittel zum Zweck.


----------



## Gastredner (24. Sep 2009)

MadMax33309 hat gesagt.:


> Hm ich guck dir mir mal an aber die idee von Landei sind sehr gut und erspart mir erst mal große arbeit aber die Bücher sehen trozdem sehr interessant aus viellleich hole ich sie mir mal später


Ich würd ja sagen: Wenn du nicht schon über zumindest grundlegende Kenntnisse in Java einerseits und auch der Spieleprogrammierung andererseits verfügst, dann solltest du dir _erst_ das notwendige Wissen aneignen und _dann_ erst mit einem richtigen Projekt starten, nicht umgekehrt.


----------



## MadMax33309 (24. Sep 2009)

Evil-Devil hat gesagt.:


> @LJWGL: Entweder ins Wiki schauen und die paar Tutorials zur Verwendung als Grundlage nutzen und für fortführende Lekture einfach nach OpenGL Tutorials suchen. Zb. auf Nehe. Und das LWJGL Forum bietet einem in aller Regel freundlichen Support bei Fragen.
> 
> @Blende/JME: Du erstellst in Blender dein 3D Modell und speicherst/exportierst dieses in ein Format das JME versteht. Dann musst du es lediglich in JME laden und seinem Verwendungszweck entsprechend verwenden. Das läuft also alles getrennt voneinander ab. Blender ist "nur" ein Mittel zum Zweck.



Alles klar und danke für die tipps.
EIne frage noch.
Wie sieht es eigenlich dann mit der grafik aus?
Wenn ich in Blender was erstelle und guck es mir dort an kann es dann unter JME anders aussehen oder wie genau läuft das ab?



Gastredner hat gesagt.:


> Ich würd ja sagen: Wenn du nicht schon über zumindest grundlegende Kenntnisse in Java einerseits und auch der Spieleprogrammierung andererseits verfügst, dann solltest du dir _erst_ das notwendige Wissen aneignen und _dann_ erst mit einem richtigen Projekt starten, nicht umgekehrt.



 Hab mir natürlich schon grund Bücher geholt und bin dabei sie zu lesen und in meiner Schule hatte ich ein Jahr Java^^
Bischen grundwissen hab ich schon^^


----------



## EgonOlsen (24. Sep 2009)

Ein guter Tipp: Fang erstmal 5 Nummern kleiner an. Sonst ist der Misserfolg vorprogrammiert.

Dazu passend: http://koti.mbnet.fi/luontola/files/Making a MMORPG.jpg


----------



## MadMax33309 (24. Sep 2009)

Danke für den tipp aber mein bereich wird eh mehr Blender sein^^
Bin nur infosammler^^

Wir wollen auch erst mal klein anfangen und schritt für schritt gehen^^


----------



## MadMax33309 (25. Sep 2009)

Also wenn wir jetzt mit
Blender , JME und Darkstar arbeiten gibt es dann irgenwelsche probleme oder ist die kompi gut?
Wie genau kann man dann mit Blender und JME die grafik bestimmen? (bitte denkt nicht gleich ich will crysis oder so machen aber da es auf unterschiedliche system laufen soll sollte es schon grafik optionen geben)


----------



## Spacerat (25. Sep 2009)

Für OpenGL-Programmierung erwähne ich immer gerne die Neon Helium Tutorials (deutsche Fassung). Die Beispiele dort sind zwar alle in C aber die Quellen sind meist auch für andere Sprachen bzw. Dialekte, (z.B. LWJGL) verfügbar. Dieses hier beschreibt z.B. einen Datei-Importer für Milkshape3D.
LWJGL und JOGL sind zwar unheimlich Low-Level, haben aber den Vorteil, dass man nicht unbedingt auf Quellcode in diesen Sprachen angewiesen ist, da sich z.B. C-Quelltexte relativ einfach konvertieren lassen. Der Umstand, sich den ein oder anderen Datei-Importer selbst schreiben (bzw. konvertieren) zu müssen, wird deswegen auch recht schnell zur Nebensache.
Gegenüber JME und Java3D zeichnet sich in Sachen Datei-Import für LWJGL und JOGL daher auch noch ein weiterer Vorteil ab, nämlich dann, wenn man ein *spezielles* Datenformat importieren will und im Netz nichts (also weder Tut noch Plugin) dafür findet. Bei der Suche ist man unter JME und Java3D nämlich erstens, auf diese APIs beschränkt und zweitens, der Datei-Importer muss eh' neu entwickelt werden.


----------



## Evil-Devil (25. Sep 2009)

Für die NeHe Tutorials gibt es Java Ports sowohl als LWJGL wie auch JOGL Variante.

Allerdings sind beide Varianten je nach Quelle/Autor relativ alt und nicht mit aktuellen LWJGL/JOGL Versionen auf Anhieb ausführbar.


----------



## MadMax33309 (25. Sep 2009)

@Spacerat
Also wenn ich dich richtig verstanden habe sollen wir lieber eine eigne engine machen statts z.b JME zu verwenden?
Ist das für 1 oder 2 programmierer überhaupt machbar?
Das wegen C ist nicht schlimm da ich dieses Jahr C lerne und der andere aus mein Team C schon kann.
Vielen dank auch für die links^^

@E-D
Hm ich weiß nicht wirklich was du mit Ports meinst und hast du vielleich ein link dann kann ich mir ehr ein bild machen.


Kann mir vielleich einer sagen wie genau das mit der Grafik ist?
Ich meine wenn ich ein Model mit Blender erstelle und das ins Spiel tue wie kann ich dann genau die grafik einstellen?


----------



## Lulumann6 (25. Sep 2009)

ich würde auf keinen fall versuchen eine eigene engine zu schreiben, spätestens bei der physik (aber auch bei vielen anderen kleinigkeiten) werdet ihr denken "warum habe ich nicht die fertige engine von jme genutzt". außerdem könnt ihr noch so viel arbeit wie ihr wollt in diese engine stecken, ihr bekommt sie niemals fertig, und das was ihr habt wird nicht halb so gut sein wie etwas fertiges.
mit 1-2 sehr guten programmieren ist es durchaus möglich schon etwas schönes zu zaubern(mit einer richtigen engine)

man kann die grafik nicht einfach irgendwie "einstellen". alles was man braucht z.b. schatteneffekt, muss man in das programm hinein programmieren, und demendsprechend weg lassen wenn der rechner zu alt ist.


----------



## MadMax33309 (25. Sep 2009)

Ok also muss ich dann z.b bei einem Model schlechtere Texturen verwenden also zwei texturen erstellen?

Wenn ich dich richtig verstanden habe würdes du uns jedenfall die JME raten?

Ok dann muss ich wegen den datei halt drauf achten und nur die formate wählen die unterstützt werden.
Blender kann ja zum glück recht viele^^


----------



## Landei (25. Sep 2009)

Spacerat hat gesagt.:


> Für OpenGL-Programmierung erwähne ich immer gerne die Neon Helium Tutorials (deutsche Fassung). Die Beispiele dort sind zwar alle in C aber die Quellen sind meist auch für andere Sprachen bzw. Dialekte, (z.B. LWJGL) verfügbar. Dieses hier beschreibt z.B. einen Datei-Importer für Milkshape3D.
> LWJGL und JOGL sind zwar unheimlich Low-Level, haben aber den Vorteil, dass man nicht unbedingt auf Quellcode in diesen Sprachen angewiesen ist, da sich z.B. C-Quelltexte relativ einfach konvertieren lassen. Der Umstand, sich den ein oder anderen Datei-Importer selbst schreiben (bzw. konvertieren) zu müssen, wird deswegen auch recht schnell zur Nebensache.
> Gegenüber JME und Java3D zeichnet sich in Sachen Datei-Import für LWJGL und JOGL daher auch noch ein weiterer Vorteil ab, nämlich dann, wenn man ein *spezielles* Datenformat importieren will und im Netz nichts (also weder Tut noch Plugin) dafür findet. Bei der Suche ist man unter JME und Java3D nämlich erstens, auf diese APIs beschränkt und zweitens, der Datei-Importer muss eh' neu entwickelt werden.



Was ist denn das für ein Käse? Natürlich bietet JME ein Interface für Importer, was man selber implementieren kann. Nur deswegen auf die "unheimlich Low-Level" OpenGL-Bindungen zu gehen, und auf den ganzen Komfort einer Spiele-Engine (Physik-Einbindung, Partikel-Systeme, fertige Renderer für Schatten, Bloom usw., Eingabe-Unterstützung, Sound-Anbindung usw.) zu verzichten, halte ich für ein ziemlich seltsames Argument.



Lulumann6 hat gesagt.:


> ich würde auf keinen fall versuchen eine eigene engine zu schreiben, spätestens bei der physik (aber auch bei vielen anderen kleinigkeiten) werdet ihr denken "warum habe ich nicht die fertige engine von jme genutzt". außerdem könnt ihr noch so viel arbeit wie ihr wollt in diese engine stecken, ihr bekommt sie niemals fertig, und das was ihr habt wird nicht halb so gut sein wie etwas fertiges.
> mit 1-2 sehr guten programmieren ist es durchaus möglich schon etwas schönes zu zaubern(mit einer richtigen engine)
> 
> man kann die grafik nicht einfach irgendwie "einstellen". alles was man braucht z.b. schatteneffekt, muss man in das programm hinein programmieren, und demendsprechend weg lassen wenn der rechner zu alt ist.


Ganz meine Meinung.


----------



## Spacerat (25. Sep 2009)

Landei hat gesagt.:


> Was ist denn das für ein Käse? Natürlich bietet JME ein Interface für Importer, was man selber implementieren kann. Nur deswegen auf die "unheimlich Low-Level" OpenGL-Bindungen zu gehen, und auf den ganzen Komfort einer Spiele-Engine (Physik-Einbindung, Partikel-Systeme, fertige Renderer für Schatten, Bloom usw., Eingabe-Unterstützung, Sound-Anbindung usw.) zu verzichten, halte ich für ein ziemlich seltsames Argument.


Naja... wer mit diesem "vorgefertigen" Zeugs anfängt zu entwickeln dort an die Grenzen stösst, sucht JME dies, JME das, erfährt, dass man es nicht lösen kann und deswegen dann sowieso wieder beim LL landet, wo man von vorneherein die Suche verallgemeinern kann. Ausserdem hat man bei der Entwicklung einer eigenen Engine für diese stets Quelltext, den man gut lesen und verändern kann. Ferner kann man sich auch über Techniken (Physik, Partikel usw.) in anderen Gefilden (C, C++ usw.) schlau machen und von dort auch Quelltext portieren (Portierung: Umschreiben von Quelltext in eine andere Programmiersprache). Andererseits: Wenn man schnell Ergebnisse haben will, verwendet man das was da ist. Z.B. JME oder Java3D.
@Edit: Weniger Spezifikation bedeutet mehr Freiheit. Bedingungslose Bindung mehr Einschränkung


----------



## MadMax33309 (27. Sep 2009)

Naja
Wir werden uns erst mal die JME angucken und glaube das wir schon genug mit der haben^^
Trozdem danke für dein Vorschlag nur tust du das uns auch wirklich zu trauen?

Kann mir vielleich jemand sagen wie ich den level Editor für die JME auf Vista 64 bit zum laufen bekomme?
Der will nicht richtig funktionieren und im forum dort habe ich nix dazu gefunden


----------

