libGDX Alternative gesucht

Hallo, ich habe letztens auf Android libGDX ausprobiert, und war begeistert. Denn libGDX bringt mir ein Framework, mit dem ich schnell starten und zu sichtbaren Ergebnissen kommen kann, ohne dass es mir die Arbeit mit OpenGL abnimmt.
Daher würde ich libGDX gerne für meine nächsten Versuche auf dem Desktop nutzen. Doch leider nutzt libGDX auch auf dem Desktop OpenGL ES, was bedeutet, dass ich z.B. weder geometry shader noch tesseleration shader verwenden kann.
Daher währe ich auf der Suche nach einem Framework, dass ähnlich wie libGDX, aber Desktop-Exclusiv ist, und deshalb normales OpenGL nutzt.
Ich hoffe jemand kennt was in diese Richtung.
mfg codestuek.

Außer der jMonkeyEngine fällt mir da nichts ein.

Die habe ich schon genutzt. War nicht so meins. Ich will schon selbst rendern

Ich würde dir empfehlen einfach mal selbst da einzusteigen, und zB Lwjgl zu lernen.
Das ist eigentlich gar nicht mal soo schwer, aber vor allem würde es dir helfen auch die
hintergründe (ja die existieren ^^) von libgdx zu verstehen…

ich beschäftige mich da auch seit einer ganzen weile mit… und es macht einfach spaß,
da man immer wieder neue sachen lernt, kompett aleine bestimmten kann was man wie haben
kann und nicht von irgendeinem framework hier und da gelimited wird, und alles unter kontrolle hat.
Man hat nicht dieses Framework.GameFactory.createBattlefieldLikeGame("my game").getNetworkSupportedInstance().run() ^^

Ich denke wenn du libgdx soweit verstanden hast, ist es nicht sehr schwer “das eigentliche” opengl
zu lernen, zumal du nach den ersten paar experimenten sowieso eine art eines “standardcodehaufen” hast,
und diesen auch wiederverwendest.

Ich würde ja noch Java3D einwerfen, aber das ist mMn für Spiele kaum geeignet, eher nur für 3D-Visualisierungen (Virtuelle Konferenzräume und 3D-Desktops). Mit OpenGL hat man dort auch nichtsmehr zu tun.
Was man noch machen könnte, wäre sich tätsächlich mit JOGL (ich sag gleich mal JogAmp dazu, falls es nicht bei Grafik bleibt ;)) oder LWJGL zu beschäftigen. Damit man LWJGL auch mit Swing verwenden kann, habe ich mal einen GLJPanel entwickelt, welcher, statt mit der Klasse Desktop zu arbeiten, in ein Swingfenster integriert werden kann. Da hat man dann alles was man braucht. Ein GLPanel, in welchem man OpenGL (LWJGL) programmiert und die Möglichkeit Swing-Buttons der Anwendung hinzuzufügen.

Wie gesagt, ich liebe es das rendern über OpenGL zu programmieren, weshalb JME oder Java3D rausfallen. Und bei libGDX geht es mir vor allem um die Sachen wie Texturen loader oder Model loader eventuell auch Mathe Klassen. Ich habe jetzt halt mal angefangen selbst die entsprechenden loader zu schreiben. Bis jetzt habe ich halt nur OBJ, alle Java2D Bild Formate und GLSL. Es ist halt nervig sich mit den Spezifikationen auseinanderzusetzen.

Ich finds spannend.

Außerdem, soo schwer ist das ja jetzt nicht. Und wenn du irgendwo nicht weiterkommst, gehste halt hin
und schreibst bei libgdx ab oder fragst hier :slight_smile:

*** Edit ***

OT:

Außerdem, soo schwer ist das ja jetzt nicht.

Ich weiß, sagt der richtige XD

Du findes es spanend dich damit auseinander zu setzen wie du z.B das Collada format lädst? Kann ich mir kaum vorstellen.

Sachen wie z.B normal-mapping zu implementieren finde ich spanend.

also erstens… was ist das? xD
zweitens… es würde mir tatsächlich spaß machen, mich hinzusetzen und versuchen
das teil zu laden, wenn ichs wirklich brauche… :slight_smile:

Na ja, ich finde es manchmal auch interessant, aber meistens finde ich es nervig, weil es mich vom lustigen Teil abhält.

Das Collada-Format dürfte eine recht einfache Übung sein, zumal es ein XML-Format ist.

Ich fände es immer noch spannend, wenn es mir endlich gelingen würde, meinen Allzweckloader tatsächlich allzweckkonform zu machen. Aber irgendwie beis ich mir da immer wieder erneut und immer wieder an anderen Stellen die Zähne dran aus.
Entweder ich kann beliebige Dateien laden, dann kann ich sie aber nicht beliebig verwenden (z.B. unterstützt Java2D schon mal mein auf DirectBuffern basierendes Imageformat nicht usw.) oder oder oder… immer wieder Fettnäpfe, wohin man sieht. grrrrr!!!

Dabei klingt es doch so simpel und funktioniert im Großen und Ganzen auch schon:

  protected DataType() {
  }

  public static <T> T load(String filename) {
    // Dateityp feststellen
    // Ladevorgeng
    return (T) loadedFileObject;
  }
}```

lol, das ich versuche auch gerade mir einen resourceloader zu schreiben, der möglichst unabhängig von Libarys und Dateien ist.
Mein Hauptproblem ist, dass OpenGL in Sachen Texturen so “viel” features hat (komprimierte Texturen, über 6 verschiedene Arten, usw.) das macht es nicht leicht.

Poste doch mal „ein paar Stellen“, die nicht funktionieren… vielleicht hat ja jemand lust sich das anzuschauen

Kleiner Tipp: Denk nochmal drüber nach, ob du (oder überhaupt irgend jemand) in OpenGL diese vielen Texturformate (insbesondere komprimierte) überhaupt noch brauchst bzw. ob man sie überhaupt jemals brauchte. Zu Zeiten wo man sie brauchte, waren sie in OpenGL afaik noch gar nicht vorhanden und jetzt, wo sie da sind, ist Speicherplatz das geringere Problem geworden.
Ich bin ehrlich gesagt schon viel weiter. Ich kann diverse Sounddateien inkl. MP3, diverse Bilddateien (nur kein JPG :(, dafür aber animierte GIFs), Truetype- und Amiga-Bitmap-Fonts sowie Egosofts X²- und DirectX-ACII-Objekte laden. Das Problem stellen aber die Environments dar, in denen man diese Dateitypen verwenden kann. Ich werde mal versuchen, ein oder mehrere Demovideos zu erstellen.
@mymaksimus :
Folgendes Problem… Ich möchte nicht, dass sich auch nur einer hier durch etliche Tonnen undokumentierten Code durchfriemelt, deswegen ertappe ich mich in letzter Zeit immer dabei, meinen Code zu dokumentieren. Dabei fällt mir auch immer wieder etwas ein und ich probiers aus. Dadurch ändert sich immer eine Menge Code in der Lib und der Spaß mit der Dokumentation geht von vorne los.
Was konkret nicht funktioniert… der Support verschiedenster Platformen wie z.B. Java2D/3D, LWJGL, JogAmp oder gar Android. Ich hab zwar bereits erfolgreich “java.awt.Graphics”-Ähnliche Kontexte für LWJGL hinbekommen, aber irgend etwas passt da noch nicht, weil das Teil immer langsamer wird je öfter man zwischen Java2D und LWJGL hin und her schaltet. Hin und herschalten ist zwar keine Hauptdirektive der Lib, aber das es dadurch langsamer wird ist definitiv ein Hinweis auf ein MemLeak.

Ich glaube ich kann das Thema als gelöst markieren, da ich jetzt so viel Arbeit in eigene Libs gesteckt habe, dass ich wahrscheinlich eh nicht mehr wechseln würde.
Danke an alle die geantwortet haben.