Jemge - Open Source Game Engine

Hallo,

Nachdem ich lange Zeit an verschiedenen Projekten (von eigenen Hobbyprojekten bis hin zu Terasology) mitarbeitete, hatte ich den Wunsch, ein Projekt für Android zu erstellen. Nach langer Suche nach einer geeigneten Engine bin ich auf LibGDX gestoßen. Trotz des Funktionsumfanges war es für mich relativ einfach zu verstehen.

Da kam ich auf die Idee, eine Engine auf Basis des Frameworks zu erstellen. Dadurch entstand ein Java-Projekt namens “JEMGE” bzw. “JemgEngine”. Dies steht für Java Easy Multi-Platform Game Engine. Ziel des Projektes ist es, eine “Game Engine” zu erstellen, welche:
[ul][li]Möglichst viele Plattformen erreicht,[]Dem Entwickler vieles erleichtert / viel Arbeit abnimmt,[]Hohen Funktionsumfang bietet,[*]Und trotzdem einfach zu verstehen ist.[/ul]
[/li]Die **LibGDX Framework **bietet eine perfekte Basis für diese Ziele, da es viele Plattformen bietet und einen großen Funktionsumfang hat.

Gesucht für das Projekt werden mehrere Entwickler für ein “Core Team”, welches das Projekt verwaltet. Wir werden dann auf Basis des aktuell noch eher kleinen Projektes die JemgEngine weiterentwickeln & dieses dann Open Source unter der Apache 2.0 Lizenz veröffentlichen. (Über die Lizenz könnte man jedoch noch diskutieren)

**Was wird gebraucht? **
[ul]li Kenntnisse in Java,* Kenntnisse mit LibGDX und/oder Game Engines / Frameworks an sich.* Kenntnisse in C++[/ul]
[/li]Was ist vorhanden?

[ul][li]Domain/Forum/Webseite etc. zur Verwaltung,* Projekt als Basis,[]Wissen über LibGDX/OpenGL,[]Ein Team von 3 Personen[/ul]
[/li]Ich hoffe, ich kann jemanden für das Projekt überzeugen.

Gruß, MrBarsack

push

Ich erlaube mir das mal und pushe den Thread. :smiley: Ich hab mich für die Idee interessiert und bin deshalb mal in die Anfangsdiskussionen eingestiegen. Ich bin mir sicher, dass es einige Bereiche in diesem Projekt gibt, für die man sich als Entwickler begeistern kann. :slight_smile:

Huch, kann ich nicht den Startbeitrag bearbeiten?
Dann mal so ein kleines Update: Wir bestehen nun schon aus 4 Personen, und suchen weiterhin nach neuen Mitarbeitern. Aktuell wird über die Basis und Aufgaben der Engine diskutiert, auch wenn es aktuell leider eher langsam vorankommt. :frowning:
Würden uns freuen, wenn jemand Interesse an der Teilnahme hat. :slight_smile:

Wo findet man denn mehr Infos? Sind multiplayer features angedacht? Also connection layer implementation?

Hey,

Normalerweise klären wir Fragen in einem Art Bewerbungsgespräch als private Nachrichten. :smiley: Über genauen Funktionsumfang et cetera kann man zum aktuellen Zeitpunkt nun mal keine genaue Aussagen geben, da dies noch diskutiert werden muss. :slight_smile:

Über Funktionen der Engine wird unter anderem gerade im Forum der Engine diskutiert. Sowas wäre im späteren Verlauf der Engine evtl. wichtig, muss jedoch noch diskutiert werden. :slight_smile:

Gruß, MrBarsack

Ich bin ja auch Teil des Teams und kann vielleicht noch sagen, dass es momentan um Grundlagen-Diskussionen geht. Wie soll die Struktur aussehen? Was genau wollen wir nutzen und was müssen wir beachten? Das hat sich in den letzten Wochen schon sehr geändert und da wurde viel konstruktiv diskutiert. :slight_smile: Dass es etwas langsam geht liegt wohl einfach daran, dass man noch keine konkreten Dinge machen kann und ja auch jeder andere Dinge in seiner Freizeit machen möchte als nur an diesem Projekt mitzuwirken.

Dass es etwas langsam geht liegt wohl einfach daran, dass man noch keine konkreten Dinge machen kann und ja auch jeder andere Dinge in seiner Freizeit machen möchte als nur an diesem Projekt mitzuwirken.

Sollte nicht wirklich eine Kritik sein, natürlich haben alle Mitglieder des Teams andere Projekte/Hobbys/Interessen als dieses, war eher als eine allgemeine Aussage zu verstehen. :smiley:

So hatte ich das auch verstanden. :slight_smile: Wollte es nur erwähnen, weil es ja immer recht negativ klingt, wenn man sagt „In Projekt XXX geht es gerade nicht voran“ - das motiviert ja potentieller Neueinsteiger nicht so arg. Ich sehe das im Moment aber noch recht entspannt. Wir wollten uns ja jetzt, wo du wieder aus dem Urlaub zurück bist, ohnehin mal zusammensetzen. Den Termin können wir ja, wenn er steht, hier ankündigen und diejenigen, die daran teilnehmen wollen, die bekommen von uns entsprechende Infos. :slight_smile:

Ah, okay. :slight_smile:

Ja, das ist eine gute Idee. Ich werde im Verlauf des Abends ein Thread dazu erstellen & eine Email an alle Mitglieder des Teams verschicken, sodass hoffentlich diesmal auch alle teilnehmen können. :slight_smile:

Für das Projekt wäre eine Zielbeschreibung hilfreich :slight_smile:

Ich kann mir im Moment noch nicht ganz vorstellen, wo für mich der Unterschied in der Verwendung liegen würde.

Im Moment stelle ich mir das Projekt als eine Art Fassade für libgdx vor, die einige Elemente vereinfacht oder wegkapselt und ggf. weitere Funktionen hinzufügt.

An libgdx selber bin ich bis jetzt immer vorbeisgestolpert, da das Setup der Arbeitsumgebung für eine schnelle Entwicklung einfach abartig viel ist, bzw nach viel aussieht
(Slick mit den Natives war teilweise schon nervig, aber 2-3 Frameworks/Plugins und 4 Projekte per Hand erstellen nur für ein kleines Spielefenster als Desktop-Anwendung war mir dann doch zuviel Arbeit).

Gruß

Hallo,

[QUOTE=Firephoenix]Für das Projekt wäre eine Zielbeschreibung hilfreich :slight_smile:

Ich kann mir im Moment noch nicht ganz vorstellen, wo für mich der Unterschied in der Verwendung liegen würde.

Im Moment stelle ich mir das Projekt als eine Art Fassade für libgdx vor, die einige Elemente vereinfacht oder wegkapselt und ggf. weitere Funktionen hinzufügt.
Gruß[/QUOTE]

Wie schon erwähnt, Funktionsumfang und solche Sachen werden aktuell innerhalb des Teams diskutiert. Aktuell wird sogar besprochen, ob LibGDX denn die richtige Basis für unsere Vorhaben ist, es kann sich also einiges ändern.
Sollten wir am Ende zu LibGDX greifen, wäre das Ziel, die Nutzung von LibGDX zu vereinfachen und den Funktionsumfang zu erweitern. Beispiele wären ein Renderer, welcher dem Entwickler beim Optimieren hilft, Systeme wie zum Beispiel für das Pathfinding (…).
Aber wie gesagt, kann sich vieles ändern! :slight_smile:

An libgdx selber bin ich bis jetzt immer vorbeisgestolpert, da das Setup der Arbeitsumgebung für eine schnelle Entwicklung einfach abartig viel ist, bzw nach viel aussieht
(Slick mit den Natives war teilweise schon nervig, aber 2-3 Frameworks/Plugins und 4 Projekte per Hand erstellen nur für ein kleines Spielefenster als Desktop-Anwendung war mir dann doch zuviel Arbeit).

Kann ich nicht ganz nachvollziehen. Wenn man beispielsweise erstmal nur eine Plattform erreichen will, erstellt man 2 Projekte, eins mit den Libs von LibGDX, welches dann den Code des Spiels enthält, und eins mit dem LibGDX Desktop Backend, wo dann nur die Starterklasse ist. Wenn man es dann beispielsweise um Android erweitern will, erstellt man ein Projekt mit der Android Starterklasse. Aber das wäre eher ein Thema für einen eigenen Thread. :slight_smile:

Gruß, MrBarsack

Dann KANN das ja nix werden!!!111einseinselfausrufezeichen :o)

Naja, schon klar :slight_smile: Ich hatte ja schonmal nachgefragt, was das genauere Ziel sein würde. Es könnte schon interessant sein (genau wie libGDX interessant ist, und ich es mir schon eine Weile mal genauer ansehen wollte, aber … das ist so vieles…), aber irgendwas zu machen, wo nicht jeder sagt „Das ist doch das gleiche wie X“ oder „Nimm dafür doch einfach Y“ ist schon schwierig…

[QUOTE=Firephoenix]Für das Projekt wäre eine Zielbeschreibung hilfreich :slight_smile:

Ich kann mir im Moment noch nicht ganz vorstellen, wo für mich der Unterschied in der Verwendung liegen würde.[/QUOTE]

Das ist so ein bisschen das „Problem“, das wir momentan haben. Wir haben eine Idee und verschiedene Lösungsansätze. Die Idee ist grob gesagt „Plattformunabhängige Game-Engine“, die ursprüngliche Idee war libGDX als Basis zu verwenden. Wir hatten eine weitere Idee (eingebracht von Bizarrus), die ohne libGDX arbeiten würde. Es ist die Frage der Machbarkeit und ob der Use Case stimmt. Wenn ich es genauer erklären wollen würde, dann wäre das zu viel Detail und genau diese Diskussion wollen wir ja im Team führen.

Aber natürlich ist es schon so, dass wir natürlich die klassischen Themen einer Game-Engine abdecken wollen. Und da wird so ziemlich alles mal auftauchen, was man sich in diesem Bereich vorstellen kann. Geht vom Design des API über Bereitstellung von Tools/Algorithmen über 2D/3D-Unterstützung bis hin zu Packaging der Game-Engine & Tutorials zu deren Verwendung.

Heute Abend wird ein Treffen im IRC zu der Engine stattfinden. Thema wird die Basis der Engine sein, es wird über LibGDX und LWJGL diskutiert.

Falls jemand Interesse hat, bitte bei mir mit einer PN für weitere Infos melden. :slight_smile:

(So, 15 Jahre nachdem ich mich das erste mal ins Internet eingewählt habe, habe ich dann auch mal geschaut, was ein “IRC” ist, und wie das denn so funktioniert :o )

Ohne das wirklich auf Basis des bisher geschriebenen einordnen zu können, klingt “Eine Diskussion über LibGDX und LWJGL” schon ziemlich low-level. Vielleicht sind aber auch viele andere Punkte schon SO klar, dass eine konkrete Diskussion über diese Frage angebracht ist. Schade, dass so wenig Information wirklich öffentlich verfügbar zu sein scheint…

[QUOTE=Marco13](So, 15 Jahre nachdem ich mich das erste mal ins Internet eingewählt habe, habe ich dann auch mal geschaut, was ein “IRC” ist, und wie das denn so funktioniert :o )

Ohne das wirklich auf Basis des bisher geschriebenen einordnen zu können, klingt “Eine Diskussion über LibGDX und LWJGL” schon ziemlich low-level. Vielleicht sind aber auch viele andere Punkte schon SO klar, dass eine konkrete Diskussion über diese Frage angebracht ist. Schade, dass so wenig Information wirklich öffentlich verfügbar zu sein scheint…[/QUOTE]

Hey,

Ok, ich gebe zu, wir haben bisher recht wenig zu diesem Projekt veröffentlicht. Ich werde mir Mühe geben, zukünftig besonders bei solchen Treffen etwas mehr Informationen zu veröffentlichen.

Also, ursprünglich war geplant, LibGDX als Basis zu nehmen. Jedoch kam von Bizarrus der Vorschlag, diese Basis selber zu schreiben, also unter Desktop LWJGL und auf mobilen Geräten die vorhandenen OpenGL Klassen zu verwenden. Ziel dieser Diskussion soll sein, nach längerem Schreiben im Engine Forum zu einem Ergebnis zu kommen, welche Basis denn nun verwendet werden soll, bzw. diese Diskussion weiterzuführen.

Zukünftig wird die Webseite (Blog) bzw. das Forum für Veröffentlichungen verwendet, diese sind jedoch leider noch nicht bereit für die Öffentlichkeit.

Gruß, MrBarsack

Ja wie gesagt, es sind jetzt erstmal Grundsatz-Diskussionen. Was ist möglich und wie wollen wir es umsetzen? Deswegen kann es eben auch sein, dass wir entscheiden LibGDX nicht zu nehmen, wenn wir sehen, dass ein anderer Weg besser wäre. Aber dafür muss man diese Wege erstmal diskutieren. :slight_smile:

Ja, es ist schwierig da irgendwas dazu zu sagen, solange man nicht die Ziele kennt und weiß, was schon besprochen wurde etc.

Wenn es konkret um Spiele geht, klingt diese Frage nach libGDX vs. LWJGL jetzt, als wäre bei letzterem schon das Ziel, von OpenGL so weit zu abstrahieren, dass man verschiedene Implementierungen als Backend verwenden kann. Das mag in vielerlei Hinsicht recht “straightforward” möglich sein, und vermeintliche Details (wie etwa die Frage, ob - bezüglich ihrer Funktionen im bezug auf “modernes” OpenGL schon SEHR eingeschränkte - “legacy”-Backends wie OpenGL ES 1.x und 2.x unterstützt werden sollen) könnten dann ja entweder ALS Basis oder AUF Basis so einer Entscheidung diskutiert werden.

Aber auch dann stellt sich die Frage, an welchen Stellen dort mehr gemacht werden soll, als das, was libGDX schon bietet. Oder anders gesagt: Wenn man das gleiche machen wollte, was libGDX schon kann, (warum sollte man das dann machen? und) erhöht man damit nicht den Aufwand in bezug auf “low-level”-Dinge wie die OpenGL-Anbindung in einem Maße, die es schwierig bis unmöglich macht, dort noch etwas “draufzusetzen”?

Ich habe libGDX bisher nur überflogen, aber es sah so interessant aus, dass ich es auf jeden Fall mal ausprobieren will (… “wenn ich Zeit habe” ;)), und es scheint, als sei schon eine nicht unerhebliche Infrastruktur notwendig, um das zu erreichen, was jetzt von libGDX gemacht wird. Aus dem Stand etwas zu machen, was (in welcher Hinsicht auch immer) “das gleiche, nur besser (und ‘mehr’)” ist, könnte schwierig werden.

Hey,

Nach dem gestrigen Treffen sind wir leider bei der Wahl zwischen LibGDX und einer eigenen Basis nicht zu einer Einigung gekommen. Jedoch konnten wir gut konstruktiv diskutieren & unser Wissen über die jeweiligen Methoden erweitern.

Habe mal die Vor- und Nachteile in einer kleinen PDF zusammengefasst:
http://download.jemgengine.com/treffen/Treffen31.08Ergebnis.pdf

Wir werden nun uns in den nächsten Wochen weiter zu diesem Thema informieren & hoffentlich beim nächsten Treffen einigen.

Gruß, MrBarsack

Das pdf ist nicht mehr verfügbar.
Wie ist denn der aktuelle Stand bei euch?

Gruß