libGDX

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
libGDX
Libgdx.png
Entwickler Mario Zechner
Aktuelle Version 1.9.5
(20. Dezember 2016)
Betriebssystem plattformunabhängig
Programmiersprache Java
Lizenz Apache 2.0 Lizenz
libgdx.badlogicgames.com

libGDX ist ein Java-Framework für plattformunabhängige Spieleentwicklung. Die Programmbibliothek erlaubt es, das gleiche Projekt auf Windows, Linux, Mac OS, Android, Blackberry, iOS und Webbrowser auszuführen.[1] libGDX wurde von Mario Zechner erschaffen und auf GitHub als Open-Source-Software unter Verwendung der Apache-2.0-Lizenz freigegeben.[2] Der Name libGDX hat laut Mario Zechner keine bestimmte Bedeutung,[3] wird aber von der Community beispielsweise als "Library for Game Development - Xtreme" bezeichnet.[4]

Geschichte[Bearbeiten | Quelltext bearbeiten]

2009[Bearbeiten | Quelltext bearbeiten]

libGDX[5] 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 Contributors 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-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. 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.

2014[Bearbeiten | Quelltext bearbeiten]

Nach vier Jahren Entwicklung wurde die Version 1.0 veröffentlicht.

Architektur und Projekt Struktur[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 bereitstellt. Somit kann neben dem gemeinsamen Code im Kernprojekt auch plattform-spezifischer Code in den Unterprojekten angelegt und instanziert werden.[6]

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/
  assets/
  res/
  src/../AndroidLauncher.java
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. 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).[8] Außerdem ist das Framework auf Platz #3 unter den Top Spiele-Frameworks für Android Applikationen.[9]

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.

Programme[Bearbeiten | Quelltext bearbeiten]

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.[10]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. http://libgdx.badlogicgames.com/
  2. https://github.com/libgdx/libgdx/wiki
  3. http://libgdx.badlogicgames.com/downloads/interview_mario_zechner.pdf
  4. http://badlogicgames.com/forum/viewtopic.php?f=11&t=11194
  5. http://www.badlogicgames.com/wordpress/?p=3412
  6. https://github.com/libgdx/libgdx/wiki
  7. https://github.com/libgdx/libgdx/wiki/Project-Setup-Gradle
  8. http://www.appbrain.com/stats/libraries/details/libgdx/libgdx
  9. http://www.appbrain.com/stats/libraries/tag/game-framework/android-game-frameworks
  10. https://github.com/libgdx/libgdx/wiki/Introduction