jMonkey Engine
From Wikipedia, the free encyclopedia
jMonkey Engine | |
---|---|
Developed by | The jME Team |
Latest release | 1.0 / October 19, 2007 |
Platform | Cross-platform |
Genre | 3D graphics engine |
License | BSD license |
Website | www.jmonkeyengine.com |
jMonkeyEngine (jME) is a Java scenegraph API. Its primary focus is high-performance 3D gaming. jME itself is written entirely in Java and uses an abstraction layer for communicating natively with the platform's hardware. Currently, OpenGL via LWJGL is supported with plans for JOGL support in the future. For sound, OpenAL and FMOD are supported. Input via the keyboard, mouse, and other controllers is also supported.
jME is a community-driven open source project released under the BSD license. It is currently being used by several commercial game studios as well as by university game classes. [1][2]
Contents |
[edit] History
jME was started in 2003 by Mark Powell (aka MojoMonkey) as a side project to see if a fully featured graphics API could be written in Java. Much of the early work on the API was inspired by David Eberly's C++ book 3D Game Engine Design. Mark was joined by Joshua Slack (aka Renanse) in late January 2004 and together over the following two years, with the help of other community contributors (see external links for full list), a commercially viable API was developed. On August 1, 2005, Three Rings Design announced that Bang! Howdy is built using jME. In February of 2006, NCsoft hired Powell and Slack to continue work on Java 3D gaming technology.
[edit] Features
The most recent version of the api (1.0) was released on Friday, 19 October 2007.
Major new features and systems in this release include:
- All logging calls are now handled by java.util.logging.
- The common xml classes are now split out to a jmex.xml package.
- Multitexturing and other GL13+ features have been changed to use their ARB equivalents in an effort to be more compatible with older drivers.
- GLSL shaders have been revamped to use less memory and work better with uniforms and attributes.
- Texture.anisoLevel - is now a percent (0.0f -> 1.0f) representing a range from no aniso filtering up to the max aniso level supported by the user's card. Additionally, you can now change aniso level after creating your texture if you so choose.
- Texture parameters now use the various unit caps (fixed, fragment texs, fragment coords, etc.) to determine which texture calls are allowed to be called on a given card.
- TextureKeys do not hold filter settings anymore. Filter settings can be changed at any time now, so they are no longer unique texture identifiers.
- com.jme.util.resource - A new set of util classes for making resource locating easier has been added to jme core.
- All previous ways of specifying a texture directory to a model loader are now replaced with the use of ResourceLocatorTool.
- Using lwjgl 1.1.2.
- More complete javadoc.
- Lots of bugs fixes.
New features and systems in 0.11 release include:
- A Skin and Animatable Bone System enabling realistic representation of models and motion.
- Support for importing files in the COLLADA format.
- Support for using jME in a Java Applet.
- New Importer and Exporter System giving a standard framework for loading and saving jME scenegraphs.
- A Binary Format implementation for the new import/export system that is more compact and faster than standard Java serialization.
- Support for rendering to Framebuffer Objects.
- New Pass - Water, with configurable reflection, refraction, wave generation and more.
- New Pass - Bloom, with configurable intensity, blurring, resolution and more.
- Support for simple texture based dot3 bump mapping
- New extension providing the ability to generate 3d meshes from text.
- Control Binding Management
Bug fixes and enhancements in release 0.11:
- Improved rendering system tracking, reducing the number of JNI calls to the underlying native bindings.
- Optimized Collision system, specifically triangle collision and picking that is fast and several times more memory efficient.
- New Sound System revamp (jmex.audio)
- New editor extension package (jmex.editor) providing editor widgets useful for building jME related tools in Swing.
- Improved Particle System and Editor adding Particle layers, Particle Influences (with prebuilt wind, gravity, drag, vortex, swarm and wander influences) and more.
- Enhanced Multi-threaded support including a system for queuing up and executing code in the rendering context thread.
- Enhanced support for using jME inside of Swing/AWT
- Many other bug fixes and memory/performance optimizations
[edit] Projects using jMonkeyEngine
- Bang! Howdy by Three Rings
- Call of the Kings - The Mirror Black
- Simport by Tygron Serious Gaming
[edit] References
- ^ Southern Illinois University Game Development Class. “Software Aspects of Game Development”
- ^ Press Coverage of Georgia Tech Student Projects. “Winter 2007 Demo Day At Georgia Tech”