# JMonkey Engine

jMonkey Engine (abreujat jME) és un motor de videojoc lliure orientat al desenvolupament modern de videojocs en tres dimensions. jME és un dels motors 3D més complets escrits en Java.
jME és una API basada en arbre de nodes. La majoria de la inspiració de jME prové de David Eberly i el seu llibre 3D Game Engine Design. Usant una capa d'abstracció permet qualsevol API de renderizado, adosable en forma de plugin. Actualment LWJGL i JOGL ja són compatibles.
jME és de codi obert i es publica sota llicència BSD.
Va ser creat per Mark Powell en 2003 mentre investigava OpenGL. Després de descobrir LWJGL, va decidir que Java (el seu llenguatge preferit) seria perfecte per crear les seves pròpies aplicacions gràfiques. Aquestes eines aviat es convertirien en un motor primitiu. Després de llegir el llibre 3D Game Engine Design de David Eberly, va implementar l'arquitectura de graf d'escenes (arbre de nodes). Va ser llavors quan jME va començar a formar part del repositori de programari Sun en Java.net. jME va captar a desenvolupadors que ampliaven les seves funcions. A poc a poc jME va adquirir moderns efectes gràfics i es va convertir en una plataforma estable per al desenvolupament de videojocs. Joshua va començar a formar part de jME a la fi de 2003 i es va convertir en un dels programadors principals de jMonkey Engine.

## Característiques

jME es basa en una arquitectura d'escenes de tipus arbre. Això permet l'organització de les dades del joc en un graf de nodes, on un node pare pot contenir qualsevol nombre de nodes fills, però un node fill només conté un únic pare. Aquests nodes estan organitzats espacialment per permetre senzillament descartar branques de l'estructura.
Per exemple, si es construeix un graf on tots els objectes en una habitació comparteixen el mateix pare ("habitació") i totes les habitacions comparteixen un pare ("planta"), on totes les plantes comparteixen el pare "edifici". Els personatges estan a l'habitació 1 de la primera planta. Podem fàcilment descartar el node de la planta 2 (i per tant totes les habitacions de la planta 2, i els seus objectes fills). Podem llavors processar la branca del graf: planta 1. Totes les habitacions que no siguin habitació 1 seran descartades, incloent tots els objectes en aquestes habitacions. Processant únicament habitació 1 i els seus objectes fills.
Descartar pot significar un munt de coses, però la més important en el desenvolupament gràfic és fer culling. El sistema de càmeres de jME usa la tècnica culling per saber què està fora de l'escena, i quines branques no són visibles. Això permet que escenes complexes siguin renderitzades ràpidament sense renderitzar tot allò que no és visible.
Els nodes fulles (és a dir, els nodes que es troben en els extrems de les branques de l'arbre i que no tenen nodes fills), són la geometria que es renderitza en pantalla. Poden usar-se molts tipus de geometries, com: línies, punts, models (Milkshape, MD2, AGAFA, OBJ, etc.), terrenys, nivells de detalls i més. També es pot fer ús de molts efectes d'alt nivell com: renderitzat en textura, mapatge de l'entorn, lents, tintat, sistema de partícules, etc.
jME proveeix a l'usuari de classes potents i alhora fàcils d'usar per construir la seva aplicació.

## Referències

* ↑ «Nord, a jME-powered MMOG developed by SLX Games». «See website footer for reference.»
* ↑ «bbgsite.com's review of Poisonville, a browser-based MMOFPS powered by jME.». Arxivat de l'original el 2012-12-18. [Consulta: 26 novembre 2010].
* ↑ «Southern Illinois University Game Development Class». Arxivat de l'original el 2011-08-09. [Consulta: 26 novembre 2010]. «Software Aspects of Game Development»
* ↑ «Press Coverage of Georgia Tech Student Projects». Arxivat de l'original el 2008-01-14. [Consulta: 26 novembre 2010]. «Winter 2007 Demo Day At Georgia Tech»
* ↑ Joshua Slack. «a break». jMonkeyEngine forum, 15-08-2008. Arxivat de l'original el 2011-07-26.
* ↑ Joshua Slack. «At the end of the tour...», 14-08-2008. Arxivat de l'original el 2009-07-03. [Consulta: 26 novembre 2010].

## Enllaços externs

* Lloc web oficial de jMonkey Engine Arxivat 2010-11-25 a Wayback Machine.
* jMonkeyEngine YouTube Channel
* jMonkeyEngine Twitter Stream
* jMonkeyEngine LinkedIn Group