jMonkeyEngine

Laut Eigenwerbung handelt es sich bei jMonkeyEngine um eine "Cross-Plattform Game-Engine für abenteuerlustige Java-Programmierer" [4]. Die eigentliche Engine erlaubt ausschließlich das Erstellen von 3D-Spielen und ist komplett in Java geschrieben. Diese Programmiersprache steht im Ruf, recht langsame Anwendungen zu produzieren. Die Macher der jMonkeyEngine versprechen jedoch "hoch performante 3D-Spiele, die sich auf Augenhöhe mit jeder anderen Engine befinden." Wer sich davon selbst überzeugen möchte, sollte einen Blick auf die mit der jMonkeyEngine erstellten Spiele wie "Bang! Howdy" [5] oder "Grappling Hook" [6] werfen.

Das von den Machern bereitgestellte Software Development Kit (SDK) enthält neben der eigentlichen Engine auch die leicht angepasste Entwicklungsumgebung NetBeans [7]. Im Kern besteht sie aus einem leistungsfähigen Code-Editor, der unter anderem den Quellcode automatisch einfärbt, eine automatische Quellcode-Vervollständigung bietet und während des Tippens eine kleine Referenz der jeweiligen Funktion einblendet (Abbildung 8). Hinzu kommen Funktionen zum Aufräumen des Quellcodes (Refactoring), ein Debugger, ein Profiler und eine Anbindung an die Versionskontrollsysteme Git, Mercurial und Subversion. Die Entwicklungsumgebung unterstützt zudem das Übersetzen des Spiels in andere Sprachen. Um den Funktionsumfang auszubauen, können Sie sämtliche erhältlichen NetBeans-Plugins weiterverwenden.

Abbildung 8: Ein leicht erweitertes NetBeans stellt die Entwicklungsumgebung der jMonkeyEngine.

Die vollständig in Java zu verfassenden Spiele laufen unter Windows, Mac OS X, Linux, Android und auf der Ouya-Konsole. In der kommenden Version 3.1 soll jMonkeyEngine auch iOS und VR-Brillen wie etwa die Oculus Rift unterstützen. Für Windows, Mac OS X und Linux lässt sich das Spiel als JAR-Archiv oder in Form eines ausführbaren Programms exportieren.

Bei der Spieleentwicklung arbeiten Sie hauptsächlich direkt mit Quellcode. Im Gegensatz zur Konkurrenz bietet die Entwicklungsumgebung nur ein paar einfache Arbeitshilfen an: So importiert ein Assistent in Blender erstellte 3D-Objekte, die sich anschließend in einem sehr rudimentären visuellen Editor zu einer kompletten Szene arrangieren lassen (Abbildung 9). Die jMonkeyEngine-Macher empfehlen Blender als bevorzugtes Modellierwerkzeug, die Entwicklungsumgebung importiert aber auch Ogre- und Wavefront-Objekte.

Abbildung 9: Im jMonkeyEngine SDK ordnen Sie im rudimentären Scene-Composer die 3D-Objekte an. Die Eigenschaften des ausgewählten Objekts erscheinen in einer Tabelle auf der rechten Seite.

Ähnlich wie bei Godot fügen Sie die einzelnen 3D-Objekte über Knoten der Szene hinzu. Die Knoten lassen sich in einer Hierarchie anordnen, was ermöglicht, Beziehungen zwischen den 3D-Objekten zu bilden. Die Materialeigenschaften der 3D-Objekte entstehen wie bei Godot über programmierbare Shader. Eine TerraMonkey genannte Komponente erstellt auf Wunsch aus einem Bild mit einer topografischen Karte (Highmap) eine entsprechende 3D-Landschaft.

Die jMonkeyEngine simuliert verschiedenartige Lichtquellen, Techniken wie Screen Space Ambient Occlusion (SSAO) zaubern realistische Schatten auf den Schirm. Des Weiteren bietet jMonkeyEngine zahlreiche Spezialeffekte, wie ein Partikelsystem, eine Rauch- und Wassersimulation sowie (Licht-)Spiegelungen. Sogenannte Post-Processor-Filter wirken sich auf die angezeigte Szene aus und erlauben etwa am Level-Ende ein sanftes Überblenden auf einen schwarzen Bildschirm (Fade Out). Die jMonkeyEngine unterstützt neben Tastaturen und Joysticks auch Touchscreens als Eingabegeräte.

Menüs und Einstellungsfenster realisieren Sie über die Java-Bibliothek NiftyGUI [8]. Sie liegt jMonkeyEngine bei und erlaubt die Konstruktion der Benutzeroberfläche über XML-Markup oder Java-Code. Physikalisch korrekte Abläufe steuert mit jBullet eine Java-Portierung der beliebten Bullet-Bibliothek [9]. Sie ermöglicht auch eine sogenannte Ragdoll-Physik, die korrekte Bewegungen der Gliedmaßen einer Figur simuliert. Mit dem beigelegten jUnit-Framework testen Sie den Quellcode Ihrer Spiele. Schlaue Computergegner lassen sich mit der in einem separaten Projekt entwickelten MonkeyBrains-Engine umsetzen [10]. Dank der BSD-Lizenz darf jeder Entwickler den Quellcode der jMonkeyEngine nach Belieben verändern und auch in kommerziellen Projekten verwenden.

Die Dokumentation besteht aus einem extrem umfangreichen und vorbildlichen Wiki, das Tutorials für Anfänger und ausführliche Artikel für fortgeschrittene Programmierer bereithält. Zudem existieren mehrere englischsprachige Bücher. Nach der Lektüre noch offene Fragen klärt ein Forum.

Fazit

GDevelop ermöglicht auch Nicht-Programmierern das Erstellen einfacher Spiele. In nicht einmal einer Stunde klicken Sie ein komplettes kleines Action-Spiel zusammen. Damit eignet sich dieses GCS auch zum schnellen Erzeugen von Prototypen. Spieleentwickler bleiben allerdings auf relativ einfache 2D-Spiele beschränkt, zudem fallen die Listen mit den Ereignissen und Aktionen schnell recht unübersichtlich aus.

Godot eignet sich gleichermaßen für 2D- und 3D-Spiele und ähnelt dem beliebten kommerziellen Unity 3D (siehe Kasten "Kommerzielle Konkurrenz"). Hier müssen Sie allerdings eine eigene Skriptsprache erlernen, die aber zumindest für Python-Kenner vertraut wirken sollte. Der Funktionsumfang liegt deutlich über dem von GDevelop, kommt aber an den der jMonkeyEngine nicht heran.

Die wiederum richtet sich an erfahrene Java-Programmierer und setzt auf viele bekannte Standardkomponenten, wie etwa die Bullet-Physiksimulation. Wer noch nicht mit NetBeans gearbeitet hat, muss sich zunächst in die komplexe Entwicklungsumgebung einarbeiten – oder aber auf deren Hilfe verzichten und die Engine direkt in sein Programm einbinden. Punkten kann das Projekt zudem mit einer extrem umfangreichen Dokumentation. 

Kommerzielle Konkurrenz

Unigine gehörte zu den ersten kommerziellen 3D-Engines, die auch offiziell Linux unterstützten [11]. Ihr Leistungsumfang rangiert im Bereich von Unity 3D und Godot. Lizenzen vergibt der Entwickler Unigine Corp nur auf Anfrage, selbst eine Testversion erhält man erst nach einer Registrierung.

Die meisten kommerziellen Linux-Spiele entstehen derzeit mit Unity 3D [12]. Die Engine unterstützt ähnlich wie Godot 2D- und 3D-Umgebungen. Die erzeugten Spiele laufen auf insgesamt 21 Plattformen beziehungsweise Betriebssystemen, unter anderem auch auf der VR-Brille Oculus Rift. Als Programmiersprachen kommen C#, Javascript oder Boo zum Einsatz, die Physiksimulation steuert Box2D bei. Wie bei Godot klicken Sie Szenen und Animationen direkt in der Entwicklungsumgebung zusammen. Einen Anteil am Erfolg von Unity 3D hat der integrierte Asset Store, in dem Sie eigene Grafikobjekte und Werkzeuge an andere Spieleprogrammierer verkaufen können. Die Entwicklungsumgebung läuft allerdings nur unter Windows oder OS X; darüber hinaus müssen Sie viele Funktionen gegen eine Gebühr freischalten, die bei 75 US-Dollar pro Monat beginnt.

Ebenfalls nur für Windows verfügbar ist das GameMaker Studio [13]. Mit ihm entstanden in der Vergangenheit vor allem kleinere Rollen- und Action-Spiele. Linux-Spiele erzeugt das Studio allerdings erst, wenn Sie mindestens 198 US-Dollar an den Hersteller YoYo Games überweisen.

Das Geschäftsmodell von Unity 3D haben mittlerweile Epic Games und Crytek leicht abgewandelt übernommen. Deren Engines markieren derzeit das obere Ende der Leistungsskala, setzen dafür aber auch eine entsprechend lange Einarbeitungszeit voraus. Eine eindrucksvolle Demonstration der Unreal Engine [14] von Epic Games liefert etwa das Video "Building Unreal Paris" [15]. Die Cryengine von Crytek werkelt beispielsweise im Actionspiel "Far Cry" [16].

Bei beiden Engines stehen die zugehörigen Entwicklerwerkzeuge ebenfalls nur für Windows beziehungsweise im Fall der Unreal Engine auch für Mac OS X bereit. Zudem fallen laufende Lizenzgebühren an, bei Crytek mindestens 10 Euro pro Monat, Epic Games verlangt 5 Prozent der beim Verkauf des Spiels erzielten Einnahmen.

Game-Creation-Systeme

Name Gdevelop Godot jMonkeyEngine SDK
URL http://compilgames.net/main-de.html http://www.godotengine.org http://jmonkeyengine.org
Lizenz MIT-Lizenz / GPLv3 MIT-Lizenz BSD-Lizenz
Plattformen Windows, Mac OS X, Linux, HTML5 Windows, Mac OS X, Linux, iOS, Android, PS 3, PS Vita Windows, Mac OS X, Linux, Android, Ouya
Engine 2D 2D und 3D 3D
Programmiersprachen grafisch (ereignisbasiert) GDScript Java
Physiksimulation ja ja ja
Ragdoll-Physik nein nein ja
Nebelsimulation nein ja ja
Partikelsimulation ja ja ja
Künstliche Intelligenz Wegfindung nein ja
Kollisionserkennung ja ja ja
Animationssystem nein ja ja1
Tile-Maps ja ja nein
Bau einer GUI nein ja ja
Netzwerkverbindung ja ja ja2
Lokalisierung nein ja ja
Debugger ja ja ja
Profiler ja ja ja
1 kein visueller Editor; 2 Client/Server-Spiele möglich

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 9 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...