libGDX

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
libGDX

Basisdaten

Entwickler Mario Zechner
Erscheinungsjahr 20. April 2014
Aktuelle Version 1.13.0[1]
(17. Oktober 2024)
Betriebssystem plattformunabhängig
Programmier­sprache 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]

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.

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.

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 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 ist Support für Ouya in libGDX implementiert worden. Auf Kickstarter.com ist die Anwendung Spine vorgestellt worden, welche ebenfalls auf libGDX basiert. 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.

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]

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]

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]

Vertreter für Programme, die libGDX als Framework verwenden, ist beispielsweise Spine.

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]
  1. Release 1.13.0. 17. Oktober 2024 (abgerufen am 21. Oktober 2024).
  2. https://libgdx.com
  3. a b https://libgdx.com/wiki/
  4. (Memento des Originals 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.@1@2Vorlage:Webachiv/IABot/libgdx.badlogicgames.com
  5. https://badlogicgames.com/forum/viewtopic.php?f=11&t=11194
  6. Archivierte Kopie (Memento des Originals 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.@1@2Vorlage:Webachiv/IABot/www.badlogicgames.com
  7. https://libgdx.com/wiki/start/project-generation
  8. Set Up a Dev Env. Abgerufen am 18. Januar 2022 (englisch).
  9. https://www.appbrain.com/stats/libraries/details/libgdx/libgdx
  10. https://www.appbrain.com/stats/libraries/tag/game-framework/android-game-frameworks
  11. Showcase. Abgerufen am 18. Januar 2022 (englisch).
  12. https://github.com/libgdx/libgdx/wiki/Introduction