libGDX
libGDX
| |
---|---|
Basisdaten
| |
Entwickler | Mario Zechner |
Erscheinungsjahr | 20. April 2014 |
Aktuelle Version | 1.13.0[1] (17. Oktober 2024) |
Betriebssystem | plattformunabhängig |
Programmiersprache | Java |
Lizenz | Apache 2.0 Lizenz |
libgdx.com |
libGDX ist ein Java-Framework für plattformunabhängige Spieleentwicklung. Die Programmbibliothek erlaubt es, das gleiche Projekt auf Windows, Linux, macOS, Android, iOS und im Webbrowser auszuführen.[2] libGDX wurde von Mario Zechner erschaffen und auf GitHub als Open-Source-Software unter Verwendung der Apache-2.0-Lizenz freigegeben.[3] Der Name libGDX hat laut Mario Zechner keine bestimmte Bedeutung,[4] wird aber von der Community beispielsweise als „Library for Game Development - Xtreme“ bezeichnet.[5]
Geschichte
[Bearbeiten | Quelltext bearbeiten]2009
[Bearbeiten | Quelltext bearbeiten]libGDX[6] entstand im Jahr 2009 als privates Android-Framework-Projekt von Mario Zechner unter dem Namen AFX (Android Effects). Der erste Schritt zur Plattformunabhängigkeit ist auf die Art und Weise zurückzuführen, wie Android-Applikationen entwickelt werden. Im Normalfall wird ein Android-Endgerät für Debugging verwendet. Ist solch ein Tablet oder Smartphone nicht verfügbar, wird ein Emulator verwendet. Um die Applikationen nativ auf Desktop testen zu können, wurde der Kern in ein eigenständiges Projekt ohne Android-Bezug abstrahiert.
2010
[Bearbeiten | Quelltext bearbeiten]Am 6. März 2010 wurde libGDX auf Google Code als Open-Source-Projekt veröffentlicht. In dieser Zeit wurde der bestehende Code versioniert, Tutorials verfasst, das Forum eröffnet, die Lizenz auf Apache 2.0 geändert, das Buch „Beginning Android Games“ begonnen, und das erste Spiel, welches auf libGDX basiert, veröffentlicht. Ende des Jahres 2010 ist die Version 0.9 der Library fast fertig geworden.
2011
[Bearbeiten | Quelltext bearbeiten]In diesem Jahr haben viele weitere Unterstützer begonnen, bei libGDX mitzuarbeiten. Mario Zechner hat im Februar sein Buch „Beginning Android Games“ veröffentlicht und hat die ersten Präsentationen über sein Spieleentwicklungs-Framework gehalten. Im September wurde Version 0.9.2 veröffentlicht.
2012
[Bearbeiten | Quelltext bearbeiten]2012 wurde libGDX von Google Code auf GitHub migriert und Maven integriert. Außerdem, inspiriert von Googles PlayN, wurde der Web-Support in libGDX eingebaut, damit die Applikation auch im Webbrowser verfügbar ist. Durch Michael Bayne wurde mittels IKVM der Java-Code in .Net-Framework-Byte-Code übersetzt und dieser schließlich in nativen Code für iOS. Ende des Jahres wurden die ersten libGDX Spiele Tropical Stormfront und Desert Stormfront von Noblemaster Games im iOS-App-Store veröffentlicht. libGDX erreichte die Version 0.9.7 in diesem Jahr.
2013
[Bearbeiten | Quelltext bearbeiten]2013 ist Support für Ouya in libGDX implementiert worden. In diesem Jahr ist die Unterstützung für iOS auf RoboVM umgestellt worden. Außerdem wurde die 3D-Programmierschnittstelle von Xoppa und Bach komplett überarbeitet und mit Autodesk FBX Datei-Unterstützung erweitert. Die Entwicklung der Java-Projekte wurde auf das Build-Management-Automatisierungs-Tool Gradle umgestellt und libGDX in der Maven Zentrale veröffentlicht. Im November wurde die Version 0.9.9 von libGDX freigegeben.
2014
[Bearbeiten | Quelltext bearbeiten]Nach vier Jahren Entwicklung wurde die Version 1.0 veröffentlicht.
Architektur und Projektstruktur
[Bearbeiten | Quelltext bearbeiten]libGDX erlaubt ein Projekt mit demselben Code auf unterschiedlichen Plattformen als plattformunabhängiges Programm auszuführen. Die Abstraktion ermöglicht, dass Plattform-spezifischer Code außerhalb des Entwicklungskernes bleibt. Die Struktur trennt das Kernprojekt in den Ordner „core“ und erstellt für jede Plattform ein eigenes Unterprojekt wie beispielsweise „desktop“, „android“, oder „html“. In den Unterprojekten werden einzelne Starter-Klassen angelegt, welche eine neue Instanz des Kernprojektes erstellen und die notwendigen Unterstützungen für die jeweiligen Plattformen bereitstellen. Somit kann neben dem gemeinsamen Code im Kernprojekt auch plattformspezifischer Code in den Unterprojekten angelegt und instanziiert werden.[3]
Leeres Projekt
[Bearbeiten | Quelltext bearbeiten]Ein neues Projekt wird anhand eines Java-Programmes erzeugt. Dieses bietet ein Benutzerinterface, in welchem die gewünschten Plattformen und zusätzliche Programmbibliotheken ausgewählt werden können.[7] Als Beispiel sieht die Ordnerstruktur eines leeren Projektes mit Desktop- und Android-Plattform wie folgt aus:
android/ res/ src/../AndroidLauncher.java assets/ core/ src/../Game.java desktop/ src/../DesktopLauncher.java gradle
Das Projekt kann mit einer beliebigen Entwicklungsumgebung verwaltet werden, wie beispielsweise Eclipse, IntelliJ, oder NetBeans mit etwaigen Plugins für Gradle-Unterstützung.[8] Die Applikation wird dann über die plattformspezifischen Unterprojekte ausgeführt.
Anwendungen mit libGDX
[Bearbeiten | Quelltext bearbeiten]Im Android-Bereich hat libGDX einen gesamten Marktanteil von 1,69 %, unter Top-Apps einen von 3,26 %, und unter neuen Apps einen von 1,95 % (Stand: 5. Juni 2015).[9] Außerdem ist das Framework auf Platz #3 unter den Top-Spiele-Frameworks für Android-Apps.[10]
Spiele
[Bearbeiten | Quelltext bearbeiten]Vertreter für Spiele, die libGDX als Framework verwenden, sind beispielsweise Ingress, Halfway, Alchemist's Awakening, Delver, Grandpa's Table, Gunslugs 2 und Nubs' Adventure.[11]
Third-party-libraries
[Bearbeiten | Quelltext bearbeiten]libGDX benutzt mehrere Programmbibliotheken um die benötigte Funktionalität anzubieten. Dazu gehören nothings.org, OpenGL, FreeType, Mpg123, xiph.org, soundtouch, box2d, LWJGL, OpenAL, und KissFFT.[12]
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Release 1.13.0. 17. Oktober 2024 (abgerufen am 21. Oktober 2024).
- ↑ https://libgdx.com
- ↑ a b https://libgdx.com/wiki/
- ↑ — ( des vom 2. November 2013 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ https://badlogicgames.com/forum/viewtopic.php?f=11&t=11194
- ↑ Archivierte Kopie ( des vom 13. Februar 2021 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ https://libgdx.com/wiki/start/project-generation
- ↑ Set Up a Dev Env. Abgerufen am 18. Januar 2022 (englisch).
- ↑ https://www.appbrain.com/stats/libraries/details/libgdx/libgdx
- ↑ https://www.appbrain.com/stats/libraries/tag/game-framework/android-game-frameworks
- ↑ Showcase. Abgerufen am 18. Januar 2022 (englisch).
- ↑ https://github.com/libgdx/libgdx/wiki/Introduction