Mario Zechner
- Forum-Beiträge: 79
21.05.2010, 14:08:32 via Website
21.05.2010 14:08:32 via Website
Hallö,
long time no see. Hab mich in den letzten Monaten vor allem um meinen Blog und um die Entwicklung von libgdx gekümmert daher keine Aktivität hier im Forum. Habe heute libgdx Version 0.5 veröffentlicht. Hier die FAQ auf Deutsch.
Was ist libgdx?
Libgdx ist mein Versuch an einer cross-platform game development library geschrieben in Java mit ein wenig JNI code für performance-hungrige Stellen. Dabei habe ich versucht die Unterschiede zwischen dem Schreiben einer Desktop Applikation mit Jogl und dem Schreiben einer equivalenten Android Applikation so weit wie möglich zu abstrahieren. Ich denke dass das relative gut gelungen ist mit dem Resultat dass man am Desktop Prototypen kann und gleichzeitig die Garantie hat dass es auch auf Android läuft. Der einzige Unterschied zwischen Desktop und Android Applikation sind 6 Zeilen Code die jeweils zum Starten benötigt werden (static main auf Deskop, Ableiten von AndroidApplication und implementieren von onCreateBundle() auf Android). Als Desktopsysteme werden zur Zeit Windows und Linux mit einer 32-bit VM unterstützt. Für einen Mac "Port" würde ich jemanden benötigen der die JNI Teile auf Mac kompiliert.
Nett, welche Features hat das Teil?
Libgdx bietet verschiedene Module zur Grafikprogrammierung mit OpenGL ES, Audio processing, Input processing sowie File I/O. Alle Module abstrahieren Systemspezifika damit der selbe Code auf dem Desktop sowie auf Android ausführbar ist. Das Grafikmodul bietet volle Bindings zu OpenGL ES 1.0, 1.1 und 2.0 (ab Devices mit Android 2.0 sowie einer entsprechenden GPU). Am Desktop wird die OpenGL ES Funktionalität über Jogl emuliert (auch fixed point mit ein paar Einschränkungen). Das Audiomodul bietet einen MP3 sowie einen OGG decoder um an die PCM samples von Audiodateien heran zu kommen, ein Binding zu Kiss-FFT sowie natürlich lightweight classes zum Abspielen von Soundeffekten und streamen von Musik. Das Inputmodule bietet Polling und event-based handling von allen möglichen Inputdevices. Dies inkludiert den Touchscreen, den Accelerometer sowie das Keyboard. Am desktop wird der Touchscreen über die Maus emuliert, der Accelerometer ist natürlich nicht verfügbar und die Keyboardinputs werden entsprechend gemapped. Das File I/O Modul bietet einen unifizierten Ansatz um Applikations-interne Daten die auf Android auf Assets mappen und am Desktop auf Files relative zum Applikationsverzeichnis mappen. Zusätzlich erlaubt das Modul das lesen und schreiben von externen Daten (SD-Karte auf Android, beliebiges Verzeichnis am Desktop). Ab Version 0.5 gibts auch einen Box2D Wrapper der die native Implementierung verwendet um der Garbage Collector von JBox2D zu entkommen.
Alles schön und gut, aber kann ich damit kommerzielle Produkte schreiben?
Klar, libgdx ist LGPL lizensiert.
Wo find ich das Teil?
Du kannst entweder direkt den source aus dem SVN saugen (http://code.google.com/p/libgdx/source/checkout) oder den neuesten Binary Build von der download page saugen (http://code.google.com/p/libgdx/downloads/list). Zum schnellen herumspielen kannst du auch ein hello-world Projekt downloaden welches ein Android und ein Desktop Projekt enthält und zeigt wie eine libgdx Applikation geschrieben wird (http://code.google.com/p/libgdx/downloads/detail?name=gdx-helloworld.zip&can=2&q=).
K, gibts Dokumentation?
Klar! Alle öffentlichen Schnittstellen in libgdx sind voll per Java doc dokumentiert. In der Binary Distribution gibts ein file namens gdx-version-sources.jar. Dieses einfach ins Java Projekt einbinden und schon hast du zu allen Klassen Dokumentation. Du kannst auch das SVN Repository browsen um einen Überblick zu bekommen. Zusätzlich gibts noch eine Unmenge an Test/Beispiel Codes im SVN (http://code.google.com/p/libgdx/source/browse/#svn/trunk/gdx-tests/src/com/badlogic/gdx/tests). Zusätzlich gibts auch eine Reihe an Tutorials die die einzelnen Teile von libgdx beschreiben (wird natürlich noch erweitert). Siehe dazu http://apistudios.com/hosted/marzec/badlogic/wordpress/?cat=17
Kann ich helfen?
Würde mich freuen. Natürlich musst du gute Kenntnisse über Java, Eclipse und Subversion mitbringen. Alles andere kannst du nebenbei lernen. Zur Zeit fehlen noch folgende Dinge:
* eine gute UI Bibliothek speziel auf Spiele zugeschnitten
* kleinere Helferklassen für Dinge wie das Laden von anderen 3D Formaten (Collada zum Beispiel)
* ... was immer dir einfällt!
Alter, dein Code ist verbugged
Ausgezeichnet! Bitte mir eine entsprechende Mail schicken (contact at badlogicgames dot com) oder den bug tracker auf der Google Code Seite verwenden.
Hoffe das hiflt ein paar von euch weiter!
Ciao,
Mario
long time no see. Hab mich in den letzten Monaten vor allem um meinen Blog und um die Entwicklung von libgdx gekümmert daher keine Aktivität hier im Forum. Habe heute libgdx Version 0.5 veröffentlicht. Hier die FAQ auf Deutsch.
Was ist libgdx?
Libgdx ist mein Versuch an einer cross-platform game development library geschrieben in Java mit ein wenig JNI code für performance-hungrige Stellen. Dabei habe ich versucht die Unterschiede zwischen dem Schreiben einer Desktop Applikation mit Jogl und dem Schreiben einer equivalenten Android Applikation so weit wie möglich zu abstrahieren. Ich denke dass das relative gut gelungen ist mit dem Resultat dass man am Desktop Prototypen kann und gleichzeitig die Garantie hat dass es auch auf Android läuft. Der einzige Unterschied zwischen Desktop und Android Applikation sind 6 Zeilen Code die jeweils zum Starten benötigt werden (static main auf Deskop, Ableiten von AndroidApplication und implementieren von onCreateBundle() auf Android). Als Desktopsysteme werden zur Zeit Windows und Linux mit einer 32-bit VM unterstützt. Für einen Mac "Port" würde ich jemanden benötigen der die JNI Teile auf Mac kompiliert.
Nett, welche Features hat das Teil?
Libgdx bietet verschiedene Module zur Grafikprogrammierung mit OpenGL ES, Audio processing, Input processing sowie File I/O. Alle Module abstrahieren Systemspezifika damit der selbe Code auf dem Desktop sowie auf Android ausführbar ist. Das Grafikmodul bietet volle Bindings zu OpenGL ES 1.0, 1.1 und 2.0 (ab Devices mit Android 2.0 sowie einer entsprechenden GPU). Am Desktop wird die OpenGL ES Funktionalität über Jogl emuliert (auch fixed point mit ein paar Einschränkungen). Das Audiomodul bietet einen MP3 sowie einen OGG decoder um an die PCM samples von Audiodateien heran zu kommen, ein Binding zu Kiss-FFT sowie natürlich lightweight classes zum Abspielen von Soundeffekten und streamen von Musik. Das Inputmodule bietet Polling und event-based handling von allen möglichen Inputdevices. Dies inkludiert den Touchscreen, den Accelerometer sowie das Keyboard. Am desktop wird der Touchscreen über die Maus emuliert, der Accelerometer ist natürlich nicht verfügbar und die Keyboardinputs werden entsprechend gemapped. Das File I/O Modul bietet einen unifizierten Ansatz um Applikations-interne Daten die auf Android auf Assets mappen und am Desktop auf Files relative zum Applikationsverzeichnis mappen. Zusätzlich erlaubt das Modul das lesen und schreiben von externen Daten (SD-Karte auf Android, beliebiges Verzeichnis am Desktop). Ab Version 0.5 gibts auch einen Box2D Wrapper der die native Implementierung verwendet um der Garbage Collector von JBox2D zu entkommen.
Alles schön und gut, aber kann ich damit kommerzielle Produkte schreiben?
Klar, libgdx ist LGPL lizensiert.
Wo find ich das Teil?
Du kannst entweder direkt den source aus dem SVN saugen (http://code.google.com/p/libgdx/source/checkout) oder den neuesten Binary Build von der download page saugen (http://code.google.com/p/libgdx/downloads/list). Zum schnellen herumspielen kannst du auch ein hello-world Projekt downloaden welches ein Android und ein Desktop Projekt enthält und zeigt wie eine libgdx Applikation geschrieben wird (http://code.google.com/p/libgdx/downloads/detail?name=gdx-helloworld.zip&can=2&q=).
K, gibts Dokumentation?
Klar! Alle öffentlichen Schnittstellen in libgdx sind voll per Java doc dokumentiert. In der Binary Distribution gibts ein file namens gdx-version-sources.jar. Dieses einfach ins Java Projekt einbinden und schon hast du zu allen Klassen Dokumentation. Du kannst auch das SVN Repository browsen um einen Überblick zu bekommen. Zusätzlich gibts noch eine Unmenge an Test/Beispiel Codes im SVN (http://code.google.com/p/libgdx/source/browse/#svn/trunk/gdx-tests/src/com/badlogic/gdx/tests). Zusätzlich gibts auch eine Reihe an Tutorials die die einzelnen Teile von libgdx beschreiben (wird natürlich noch erweitert). Siehe dazu http://apistudios.com/hosted/marzec/badlogic/wordpress/?cat=17
Kann ich helfen?
Würde mich freuen. Natürlich musst du gute Kenntnisse über Java, Eclipse und Subversion mitbringen. Alles andere kannst du nebenbei lernen. Zur Zeit fehlen noch folgende Dinge:
* eine gute UI Bibliothek speziel auf Spiele zugeschnitten
* kleinere Helferklassen für Dinge wie das Laden von anderen 3D Formaten (Collada zum Beispiel)
* ... was immer dir einfällt!
Alter, dein Code ist verbugged
Ausgezeichnet! Bitte mir eine entsprechende Mail schicken (contact at badlogicgames dot com) oder den bug tracker auf der Google Code Seite verwenden.
Hoffe das hiflt ein paar von euch weiter!
Ciao,
Mario