# Suche 2D Engine



## Veraenderer (25. Jun 2015)

Hi,
ich wollte fragen ob ihr mir ein kostenloses, gutes 2D Engine empfehlen könnt. Optimalerweise sollte es sich auch kostenlos (bzw. sehr wenig kosten) in kommerziellen Projekten nutzen lassen.
MfG veraenderer


----------



## InfectedBytes (26. Jun 2015)

libgdx ist sowohl für 2D, als auch für 3D geeignet. Das Beste an dem Framework ist, dass man damit direkt für Windows/Linux/Max/Android/iPhone und html5 entwickeln kann.


----------



## Major_Sauce (30. Jun 2015)

Oder einfach selber eine schreiben ?
Ist nicht all zu viel Aufwand, was kleines könnte zum Bleistift so aussehen:

https://bitbucket.org/indieversestudios/indieengine-ii/src

Ist so die Engine die ich mir früher mal zusammengeschustert hatte, ist alles from scratch.
Der Umfang ist dann natürlich moderat, aber wir wissen ja nicht wie "groß" dein Projekt ist.


----------



## theo_retiker (16. Jul 2015)

ich arbeite selbst mit LibGdx und finde es - wie InfectedBytes schon sagte - ziemlich gut, da man sich eben keine Gedanken um Plattform Unabhängigkeit machen muss. Von der Performance ist es auch ziemlich gut (3D Sachen habe ich jedoch noch nicht ausgetestet).

Etwas kompliziert(er) wird es mit primitives, also einfachen Rechtecken, Linien, Kreisen, etc. aber wenn man sich eine eigene Zeichen-Klasse erstellt, sieht der Code auch ziemlich aufgeräumt auf.

Generell aber eine super Sache: Gute Doku, einfach JARs einbinden und los gehts.


----------



## Java20134 (29. Jul 2015)

Ich denke, dass LWJGL eine gute Alternative bildet. Diese Bibliothek ermöglicht die Arbeit mit OpenGL Befehlen und es ist leicht zu verstehen. Es gibt sehr gute Tutorials, die dir diese Bibliothek näher erläutern. Vor allem ist es möglich einfach eine 3D Figur, etc. zu zeichnen und zu verstehen. Ich kann sie also nur empfehlen!


----------



## BRoll (29. Jul 2015)

Hmm also LWJGL kann man nicht wirkich als Game Egninge bezeichnen. LWGJL gibt dir eher die Möglichkeit OpenGL und OpenAL zu verwenden, es heißt nicht umsonst Lightweight.
Ich habe auch schon sowohl mit LWJGL, Slick2d, was eigenes sowie Libgdx gearbeitet.
Bisher gefällt mir Libgdx am besten. Slick2d ist auch besonders für den Anfang einfach und schnell zu lernen. Der Nachteil von slick2d ist, das es nicht mehr weiterentwickelt wird und daher ziemlich veraltet ist (die meisten entwickler davon helfen jetzt bei libgdx mit). Also wäre mein Tip auch libgdx.


----------



## Major_Sauce (29. Jul 2015)

Wieso will man jetzt noch mit openGl arbeiten ? Gibt doch JavaFX, übernimmt das rendering komplett, sodass man sich nur noch auf die logik konzentrieren muss (leider)


----------



## BRoll (29. Jul 2015)

Weil das Rendering von einem Spiel komplett andere Anforderungen hat wie das für eine GUI?
Für was brauchst du einen LKW wenn du Waren transportieren willst? Kannst ja auch hundert mal mit
deinem Auto von A nach B fahren. Das wäre die Logik Java Fx zu benutzen.


----------



## jeegeek (5. Aug 2015)

Slick2D kannst du dir auch einmal ansehen http://slick.ninjacave.com/ da bekommst du eine Sammlung von vielen 2D Funktionen, auch hilfreiche Dinge wie Kollisionserkennung und Audio Funktionen sind vorhanden. Der Nachteil hier ist aber das es nicht wirklich Plattform unabhängig ist da es Native Libs benötigt. Jedoch läuft das ganze unter Windows, Linux, Mac und mit etwas Handarbeit auch unter *BSD sowie Solaris. Weiterer Nachteil ist das die Dokumentation wirklich sehr knapp ist und man nicht viel im Netz findet.

Einen Blick ist es aber wert.


----------



## Major_Sauce (6. Aug 2015)

Naja, ich sehe das so:
JavaFX ist nicht nur um ne GUI zu basteln, für simple 2D spiele, reicht es alle mal. Man mag es vielleicht nicht glauben, aber es gibt Leute die Spiele ohne Engine Programmieren, früher hat da Swing oder AWT vollkommen gereicht.
Natürlich werden wir weder mit JavaFX noch mit Swing das nächste Crysis bauen können, aber wieso muss man sich mit Zeug wie OpenGL rumplagen, wenn es auch wesentliche einfacher geht.


----------



## BRoll (6. Aug 2015)

Ich hab auch ohne Engine nur mit Swing lange Zeit Spiele programmiert. Natürlich ging das. Aber ich wäre im Nachhinein schon ein bisschen
schneller vorangekommen wenn ich direkt mit einer Spiele Engine angefangen hätte. Und wenn man Sachen umsetzen möchte, die man auch
in Swing ohne weiteres hinbekommt, kann man das mit ner Spiel Engine halt auch - ohne Opengl kennen zu müssen. Die meisten Technologien
werden dort genauso vor dem Programmierer versteckt, man hat bloß die Möglichkeit wenn man sich damit auskennt noch viel mehr rauszuholen -
oder Sachen einfacher zu machen. Hierbei gehts um die Luft nach oben, mit Swing / JavaFx ist man schnell eingezwängt und merkt es nicht weil man sich
daran anpasst. Das schlimmste ist aber nicht das AWT sondern Musik und Sounds in Java. Wer das schonmal machen musste und danach mit einer
Spielengine das Laden und Abspielen als Einzeiler schreiben darf, der wird sicher innerlich weinen. Ich denke wenn man es sich bewusst komplizierter machen will
um mehr zu Lernen, dann besser nicht an solchen Stellen sondern am Modell und der Logik. Das ist zumindest meine Meinung momentan, vor ein paar Jahren hätte ich 
das Gegenteil gesagt  (Hier gabs schonmal eine Diskussion zu diesem Thema http://www.java-forum.org/thema/spielevorstellung-snailrail.139053/#post-920111)


----------



## Major_Sauce (7. Aug 2015)

Klar, eine gute Engine ist das non-plus-ultra, aber da ich nur die Information habe, dass er es verkaufen will, und dass es einfach/gut sein soll, sehe ich da keine Probleme bei FX.
Sounds, muss man sich halt mal ne Klasse schreiben, dann geht das auch, klar ist das nicht so einfach wie bei einer Engine, ist klar, da die Engine einfach dafür gemacht ist.
Und wir kennen seinen Java-Wissensstand nicht.
Wenn er Anfänger ist, und gleiche LWJGL oder die JMoneyEngine nimmt, bringt das ihn auch nicht weiter.
Der Vorteil an kleinen Projekten ohne libs oder Engines ist dass man wahnsinnig viel lernt.
Ich würde mal behaupten dass sich jeder Entwickler selbst auch weiterentwickelt, wenn ich meinen Code von 2014 sehe, frage ich mich immer welcher Idiot das programmiert hat, damals konnte ich Java aber auch schon "genau so" gut wie jetzt. Im laufe von Projekten ändert sich aber der Stil sehr oft, dies ist, wenn man "from scratch" programmiert meiner Meiung nach stärker ausgeprägt.

mfg major


----------

