# Java3D oder JMonkey?



## System.exit(0) (14. Jun 2012)

Hallo,

ich würde gerne einmal ein kleines 3D Spiel schreiben.
Ich habe mir Java3D und JMonkey angeschaut. 

Was ist denn grundseätzlich besser geeignet?

Gruß

System.exit(0)


----------



## Marco13 (14. Jun 2012)

Seltsam, dass die Frage nicht ist, ob Java oder C++ besser geeignet ist  

JME ist speziell auf Spiele ausgelegt, und man findet vermutlich mehr komplexere Bei_spiele_ D ) dazu. Ich habe selbst noch nicht wirklich damit gearbeitet, deswegen ist das keine Empfehlung, nur ein Hinweis.


----------



## Fu3L (14. Jun 2012)

Ich dagegen habe noch nie mit Java3D gearbeitet und kann sagen, dass jME ganz gut ist 
jME bietet viel Raum für unkonventionelles GamePlay (im Gegensatz zu Editor-lastigen Engines wie Unreal Engine oder CryEngine), aber hilft einem vielleicht auch mehr als Java3D, das meines Wissens nach low-leveliger ist^^


----------



## Evil-Devil (15. Jun 2012)

Fu3L hat gesagt.:


> jME bietet viel Raum für unkonventionelles GamePlay (im Gegensatz zu Editor-lastigen Engines wie Unreal Engine oder CryEngine)


Dann würde ich mal behaupten, dass du noch nicht wirklich viel mit beiden gemacht hast. Im direkten Vergleich ist der einzige Vorteil von jME der direkte Zugriff auf die Sourcen, die man bei den anderen beiden nur gegen eine Lizenz erhält.

Denn Gameplay Code schreibt man bei allen drei Engines. Wobei man mit Kismet und Sandbox ganze Mods einfach zusammen klicken kann.


----------



## Landei (15. Jun 2012)

JME ist wie schon gesagt speziell auf Spiele ausgerichtet und unterstützt deshalb Sachen wie Detail-Level, Nebel, Höhenkarten, Partikelsysteme oder Simulation von Textilien, dazu Importer für verschiedene Modell-Formate, Unterstützung von Spielsteuerung und Speichern von Werten sowie Anbindung von Physik-Engines oder Netzwerkunterstützung für Multiplayer via JGN. Es gibt auch eine Art Level-Editor. Java3D ist eine 3D-Engine für ganz unterschiedliche Aufgaben, also auch Visualisierung von Simulationen oder Darstellung von CT-Aufnahmen. Für einfache Spiele mögen die Unterschiede gering sein, aber bei ausgefeilten Sachen lernt man den Komfort von JME schätzen.


----------



## c_sidi90 (15. Jun 2012)

Für Spiele definitiv JME, wozu das Rad neu erfinden und die ganzen Geschichte selbst implementieren wenns dafür ein eine fertige Engine gibt.


----------



## Fu3L (15. Jun 2012)

Evil-Devil hat gesagt.:


> Im direkten Vergleich ist der einzige Vorteil von jME der direkte Zugriff auf die Sourcen, die man bei den anderen beiden nur gegen eine Lizenz erhält.
> 
> Denn Gameplay Code schreibt man bei allen drei Engines. Wobei man mit Kismet und Sandbox ganze Mods einfach zusammen klicken kann.



Das ist schon richtig. jME bietet einem die Möglichkeit tiefer einzusteigen, daher das unkonventionell. Zugeben muss ich schon, dass ich mit den "großen" Engines nocht nicht richtig gearbeitet habe, habe aber einiges gesehen 
Ein Vorteil ist vielleicht zudem die größere Übersichtlichkeit (durch geringeren Umfang) und die Möglichkeit sich erstmal mit der Funktionsweise einer GameEngine vertraut zu machen.
Des Weiteren spielen die AAA-Engines ihren Vorteil auch erst richtig aus, wenn man die passenden Modelle und Texturen hat^^ Aber das driftet von der eigentlichen Frage ab^^


----------



## Kr0e (15. Jun 2012)

ACHTUNG: Ich beantworte hier nicht die Frage jME3 vs. Java3D. Es geht um die allgemeine Wahl.

Ich muss da Evil-Devil Recht geben... Auch die EditorEngines unterstützen unkonventionelles Arbeiten. Ich finde jME3 immer noch fragwürdig. Klar, in Java gibts nichts besseres... Aber vlt sollte man ab so einem Punkt über eine andere Sprache nachdenken. jME3 ist natürlich an und für sich lauffähig, aber ich vermisse einfach sehr viel, was einem eine richtige Engine direkt liefert. Stichwort 3D Sound (im Hinblick hierauf die Soundfilter... Gute Spiele brauchen Filter! ) 

Stichwort Video! Videosequenzen... jME3 bietet eine Videoimpl. an, aber die ist absoluter Murks. Hab damals einen ziemlich brauchbaren (Dank VLCj sehr schnell und alle Formate!) Videorenderer für jME geschrieben.

Habs in deren Foren gepostet und gesagt hier, könnt ihr haben, its for free. Die meinten aber nur, sie würden es sich anschauen  Und offenbar finden sie ihre eigene miese Video Impl. besser. Was mich zum nächsten Kritikpunkt bringt. jME3 ist open source und wird von einer kleinen Gruppe geleitet und ich will mich einfach nicht darauf verlassen, dass die ihr Projekt brav weiter machen... Hier punkten ganz klar kommerzielle Engines... 

Nächster Punkte gegen jME3, der Editor. Der ist ebenfalls Murks. Manche sagen zwar "Hey, ich brauch keinen Editor.". Arbeitet man aber einmal mit Unity oder CryEngine.... Ich sags mal so, Zeit ist Geld und Editoren reduzieren Zeit. Und genau das ist auch der GRund, warum jME3 einen eigenen Editor versucht zu basteln, weil das sehr wichtig ist!



Wenn du meine ehrliche Meinung hören willst:

Es gibt Leute, die schwören auf jME3, dass will ich gar nicht bestreiten. Es gibt auch coole Projekte damit. Aber im Endeffekt muss man das nehmen, womit man am besten klar kommt. Ich schwöre auf Unity3D. Wer Spiele oder einfach nur Multimedia Anwendungen mit aufwendiger Grafik machen will... Der wäre damit schon mal sehr gut beraten. 

Auch UDK bietet eine SEHR Gute Engine mit einem SEHR guten Editor und SEHR guten bereits vorhandenen Ressourcen. Kann ich nur empfehlen, erfordert allerdings sehr viel mehr Einarbeitung als Unity.

ÜBerleg dir gut, was du nimmst. Wenn du einfach nur ein wenig rumtesten willst, sind die großen Engines natürlich nciht unbedingt das Wahre. Aber ich denke, dass jME3 für wirklich aufwendige Spiele und ich rede jetzt nicht von Cs1.6 Clones, sondern wirklich aufwendiger Grafik, mit komplexen Shadern etc. und Szenen die unbedingt Occlusion Culling brauchen um bei 45 FPS zu laufen... Da kannste dann jME3 direkt in die Tonne kloppen. Achja und deren Vorstellung von einer Netzwerkimpl. fand ich damals auch unterhaltsam


----------



## Landei (15. Jun 2012)

JME hat Schwachstellen, keine Frage. Es gibt aber andere Engines wie Ardor3D oder "Wrapper" wie Jirr - fast 3D for Java . Erwähnt werden sollte auch die (meines Wissens nach) erste 3D Engine in Scala sgine


----------



## Evil-Devil (15. Jun 2012)

[ot]
Hat schon jemand hier mit den experimentellen oder eigenen JNI Schnittstellen zu WebM Video gearbeitet, ist das zu gebrauchen oder nur in seiner C/C++ wirklich gut?
Auf #AltDevBlogADay war zu Video Wiedergabe ein sehr interessanter Artikel.
[/ot]


----------



## Marco13 (15. Jun 2012)

Ich "kannte" es vom Namen her zwar schon, aber habe mir gerade mal die Demos von Unity3D angesehen: Das ist schon ein ziemlicher Hammer 

[HIER hat sich windows mit einem Bluescreen verabschiedet... ob das mit dem Unity-Player zusammenhängt? War der erste, den ich auf diesem Rechner hatte ???:L ]

Aber zum eigentlichen Thema wollte ich noch Java und 3D-Grafik - it's engine driven [whoopsie's homepage] posten...


----------



## Kr0e (15. Jun 2012)

Klingt komisch mit dem Web Player... Ist bei mir nirgends bislang abgestürzt, sogar mein Netbook hat es gepackt. Könnte auch evt. ein Treiberproblem sein ? Bluescreens sind ja meistens schon Zeichen für iwas total falsches  Hardware zb..


----------



## Evil-Devil (15. Jun 2012)

Unity ist schon eine tolle Sache ,aber man muss schon aufpassen was man tut sonst wird es langsam und aufgebläht.

Den Editor von Unity empfand ich bisher als etwas kompliziert. Lag vielleicht daran das ich nur einen Tag investiert habe und vom Unreal Editor sehr verwöhnt bin was Komfort angeht.


----------



## Guest2 (15. Jun 2012)

Moin,

imho ist das auch eine Frage, die von den persönlichen Zielen abhängt. Je leistungsfähiger die Engine bzw. deren integrierter Editor ist, je schneller lassen sich visuell beeindruckende Ergebnisse hervorzaubern. Für den einen mag das effizient sein, ein anderer wird jedoch vielleicht nur glücklich, wenn er jedes Dreieck einzeln, genau nach seinen eigenen Vorstellungen darstellen kann.

Und für den späteren Spielspaß ist vielleicht Herzblut wichtiger als die Engine.

Viele Grüße,
Fancy


----------



## Kr0e (15. Jun 2012)

Das stimmt, Fancy. Minecraft könnte man hier wieder als Paradebeispiel hervorheben. Mit wenigen Mitteln ein dennoch geiles Spiel. Wobei man sagen muss... Hätte der Entwickler von Minecraft auf vlt. existierende Lösungen zurückgegriffen, anstatt das alles selbst mit LWJGL von der Picke auf zu machen... Wer weiß, vlt. wäre er schneller seine Idee verwirklichen können und es gäbe vlt. weniger Bugs bzw. vlt wäre das ganze Spiel ruckelfreier  Natürich brauch man ne gute Idee, aber alles selbst zu machen kann schnell auch überfordern, vorallem wenn das Hauptziel nicht ist, eine eigene Engine zu schreiben, denn das ist ja irgendwie immer ein "Nebenprodukt" wenn man ein Spiel mit OpenGL von 0 macht.


----------



## Empire Phoenix (16. Jun 2012)

Also ne funktionierende  schnelle  engine selberschreiben ist so ca. 1-2 Jahre, mit shadern dann nochmal nen jahr mehr und für physic nochmal so 1-2 jahre. Würde daher definitiv ne engine nehmen. 

JME3 hat den vorteil vom opensource, wenn etwas felht oder einem nicht gefällt macht man sich halt einfach nen lokalen branch wo die sachen drinne sind.

Was dein vlcj angeht:
GNU GPL v3!
das ist nicht mit der jme bsd lizenz verträglich, daher kann es schlichtweg nicht innen kern aufgenommen werden.


----------



## Kr0e (16. Jun 2012)

Was ist mit gstreamer-java (LGPL). Ist die auch nicht mit BSD kompatibel ? Hatte eine dual-Impl. einmal in VLCj und einmal in Gstreamer-Java angeboten, weil VLCj ein bisschen wenig Umfang bietet als GStreamer.


----------



## Empire Phoenix (16. Jun 2012)

LGPL darf benutzt werden laut lgpl lizenz in nicht lgpl produkten. Wenn amn sie allerdings modifiziert mus man das ergebnis auch unter lgpl stellen. (lgpl ist ne lizenz for bibliotheken im wesentlichen)

(Ich dneke auch das im wesentlichen einfach der post vergessen wurde (wenn  man das ohne abhängigkeiten zu vlcj kompilieren kann, zudem die frage läuft es auf allen betriebssystemen?), einfach nochmal bumpen)


----------

