# JMonkeyEngine

jMonkeyEngine (auch Java Monkey Engine oder jME) ist eine Szenengraph-basierte und komplett in Java geschriebene Spiel-Engine. Viele der Ideen, die in jME verwirklicht wurden, stammen aus dem Buch „3D Game Engine Design“ von David Eberly.
jME wurde entwickelt, um Java-Entwicklern eine voll funktionsfähige Grafikengine zur Verfügung zu stellen. Eine Abstraktionsschicht ermöglicht es (theoretisch) jede beliebige Rendering-Engine zu benutzen. Zurzeit werden LWJGL und JOGL für OpenGL unterstützt.
Die jMonkeyEngine ist ein communityzentriertes Open-Source-Projekt, das unter einer BSD-Lizenz steht, dadurch eignet sie sich sowohl für kommerzielle Gamestudios als auch für Privatleute und Universitäten.

## Merkmale

jME 3.0: Die Kernfunktionen umfassen einen Szenengraph für 3D-Objekte, Unterstützung von professionellen Shader-basierten Materialien, zahlreiche Partikeleffekte und Postprocessing-Filter, 3D Audio, jBullet Physics-Integration, Assets-Verwaltung, und Netzwerkkommunikation. Beleuchtung, Schatten und Wasser werden in Echtzeit simuliert, ein Terrain-Editor ist in Entwicklung. Zusätzlich können Nifty GUI-Benutzerschnittstellen, Video und Cinematische Szenen eingebunden werden. Komplettiert wird die jME SDK durch die jMonkeyPlatform, eine Entwicklungsumgebung, die auf Java 3D-Entwicklung spezialisiert ist und neben einem Quelltexteditor schnelle Dateikonvertierung und 3D-Szenenbearbeitung bietet.
jME 2.0: Zu den festen integrierten Funktionen gehören unter anderem Szenengraph-basierte Organisation der 3D-Objekten und schnelles Frustum Culling durch Nutzung von Bounding Volumes entlang des Szenengraphen. Weiterhin existiert ein (einfaches) Partikelsystem, eine Terrainengine, 3D-Sound-Unterstützung, Echtzeit-Wassersimulationen sowie weitere Funktionen.

## Geschichte

jMonkeyEngine 1.0 – 2.0
jME wurde 2003 von Mark Powell, während er sich mit OpenGL rendering beschäftigte, erstellt. Er entdeckte LWJGL und wählte die Programmiersprache Java für seine eigenen Grafik-Tools. Aus diesen Tools entstand eine einfache Grafikengine. Nach der Lektüre des von David Ebery's geschriebene Buches „3D Game Engine Design“ implementierte er einen Szenengraph und veröffentlichte jME Teil auf Suns Softwarerepository Java.net. Es beteiligten sich weitere Entwickler an jME, um seine Funktionen zu erweitern. Ende 2003 trat Joshua Slack jME bei und wurde ein Kernmitglied des jME-Teams. jME entwickelte sich zu einer modernen Grafikengine und einer der funktionsreichsten für Java. Sie wurde dadurch zu einer stabilen Plattform für die Spieleentwicklung. Ende 2008 traten die Kernmitglieder von der aktiven Entwicklung von jME 2 zurück.
jMonkeyEngine 3.0
Anfang 2009 begannen Community-Mitglieder eine Neuauflage der Engine zu entwerfen. Aus dieser Zusammenarbeit entstand die erste Version von jME 3.0, die von der Mehrheit als offizieller Nachfolger von jME 2 akzeptiert wurde. Im Sommer 2009 übertragen die früheren Kernmitglieder die Leitung des Projektes auf ein Nachfolgerteam, das sich seither dem jME 2-Support und der Entwicklung von jME 3 widmet. Das aktuelle Team wird geleitet von Erlend Sogge Heggen, zusammen mit Webmaster Skye Book. Die aktualisierte Architektur des Frameworks wurde von Kirill Vainer entworfen und implementiert. Normen Hansen entwickelt zeitgleich die jMonkeyPlatform, eine auf der NetBeans-Platform basierende Entwicklungsumgebung für jME 3.0-Projekte. Am 17. Mai 2010 wurde die erste Alpha von jME 3.0 der Öffentlichkeit vorgestellt.

## jME basierte Projekte

* 3089 von Phr00t's Software
* 4089: Ghost Within von Phr00t's Software
* Adventures – Le voleur de vent von RamPaGe games
* Avian von RustyCognition
* Attack of the Gelatinous Blob von Paper Machete Games
* Bang! Howdy von Three Rings
* Bonsai von Rooted Concepts LLC
* Boardtastic von PerBlue
* Call of the Kings von Gamalocus Studios
* Carpe Diem von ATRcade
* CHAOS: In the Darkness von 4Realms
* Copod von Ben Perry
* Crush It von Dyps
* deBlock3 von deblockgame
* Drohtin – Tales of an Old Kingdom von DrohtinDev
* Exclave Online von MattC4
* Falling Stars: War of Empires von Riveted Games
* Flesh Snatcher von Nicolas Devere
* Forging Life von ForgingLifeGame
* Gentrieve 2 von Phr00t's Software
* Grappling Hook von SpeedRunGames
* Green Alien Bits von GamesByD&K
* Haywire on Fuel Station Zeta von rrmccorm
* HeroDex von ZeroSeparation
* Hostile Sector von mindemia
* Into Dragosan's Cave von ahmadahmadsayed
* Just Tactics von Hit the Sticks, LLC
* Lightspeed Frontier von MoffKalast
* Lost World von Delusion Entertainment
* Mad Skills Motocross von Turborilla
* Maker’s Tale von thetoucher
* Marble Mania von Creativ
* Multitasking Minigame Madness 6D von Blurine Studios
* Mythruna von Paul Speed
* Nordgame von SLX Games
* Outlier: Open Skies von masternerdguy
* OpenDS von OpenDS
* Open Wonderland (ursprünglich Project Wonderland) (jME ab 0.5, davor Java 3D) von Sun Microsystems
* PirateHell von Sascha Hartleb
* Poisonville von Bigpoint
* Rising World von JIW-Games
* Seizon von RamPaGe
* Skullstone von PGR
* Skylimit Tycoon von Kendanware
* Spacemen von fbucur
* SpaceStation 133D von SpaceStation 133D Developers
* Spermination von Phr00t's Software
* Spoxel von Jedic
* StarFire von b5cully
* System Recovery von PoshDan
* Temple Outrun: Lava von tehleo
* The Cove von thetoucher
* Tygron Engine von TYGRON
* Urban Galaxy von Urban Galaxy Online
* Waste Land von WhiteIbex