Just a small interesting comparison of jME and Xith features :
(from jME’s website) :
Sample applications
* Game system allows for maintence of the main game loop
* SimpleGame provides a quick entry point for proof of concepts
* GameState provides ability to change game states (menu, game, credits, etc)
We don’t have them but I don’t find it useful
Bounding System
* All geometry can be enclosed in a bounding system.
* Boxes and Spheres.
We have it
Curves
* Bezier curves can be used for node controlling.
Being implemented by Croft
Bezier Mesh
* For smooth curved surfaces.
Being implemented by Croft
Effects
* Transition from on scene to another.
Easy to do
* Lens Flare.
Easy to do
* Particle System.
Done by jcd
* Screen tinting.
Huh ? Do they mean having a colored semi-transparent quad in foregroud node ?
* Vertex and Fragment Program Support.
We have it
* Cloth Simulation.
Done by jcd.
Image Loading
* Support BMP, uncompressed TGA, JPG, PNG, GIF.
Not really surprising as a feature
Texture System
* Supports mipmapping, environmental mapping, multitexturing.
It’s been a long time since we have these features
Input System
* Robust system allows for easy creation of input actions.
HIAL is just good for abstraction, do your input system yourself…
Collision and Picking
* Bounding volume and triangle accuracy.
We have it.
Lighting System
* Handles up to eight lights at a time with utilities for optimal light selection.
We have it.
* Supports directional light, spot light and point light.
We have it.
Shadow System
* Z-Pass Shadow Volumes.
Hmm not sure we have it
Math Library
* Provides faster system for linear algebra
* Use of look up tables.
Useful ? Maybe switching to alternate vecmath would be a good idea.
Level of Detail
* Discrete Level of Detail using a switching mechanism for fast model switching.
* Continuous Level of Detail dynamically collapses triangles of a single model.
TODO
Model Loading
* 3DS, Obj, MD2, MD3, Milkshape, ASE support.
No Milkshape
Shapes
* Box, Cylinder, Disk, Hexagon, Octahedron, PQTorus, Pyramid, Quad, Sphere and Torus support.
We have it.
State System
* Minimizes OpenGL state changes.
* Allows merging of Texture and Light states in the tree.
TODO
Camera System
* Maintains camera as a seperate object or a node in the scene.
Why ?
* Frustum culling for efficiency.
Done. And occlusion culling, too
Renderer Abstraction
* Allows for any rendering API to be implemented.
* Currently LWJGL implemented.
We have JSR-231 also
Render Queue
* Sorts scene elements based on Opacity. Opaque are sorted front to back and rendered first, then transparent is sorted back to front, last screen elements are sorted by z depth.
Done.
Render to Texture
* Render any scene to a texture object.
Done by I-dont-remember-who
Imposters
* Render to texture used to display a single model to a texture, can be animated as slow as needed to increase frame rate.
Easy to do
Billboard Node
* Keeps a node facing the camera
We have it.
Shader Support
* GLSL
* Vertex and Fragment Shaders (GL ARB)
We have it.
Sound
* Supports OpenAL with sounds organized in a tree, similar to the Graphics.
We have it.
Terrain
* Terrain blocks act as single geometry.
* Terrain Pages implements a Quad tree of Terrain blocks.
Easy to do
User Interface
* JMEDesktop System allows rendering of Swing components in jME scenes.
We have it. Long before them.