Does jMonkey support 2D game development

As there is no getting started tutorial on how can I make a 2D game out of jMonkey, I’m not sure (except reading some unofficial sources) whether jMonkey supports 2D game development or not and how well. If so, please guide me basic workflow and how does it differ from 3D game making.

Sure it does. http://hub.jmonkeyengine.org/forum/topic/zay-es-full-example/

I suppose the basic workflow would depend on the type of game. For Asteroid Panic, I just ignored Z and used quads instead of models. But it is otherwise a 3D game.

1 Like

I hope doing these things will make it easy on android…

There is also that neon shooter demo/tutorial currently being done.

The thing is though jme supports 2d game development (and lets you do some nice things with 2d that would be very hard otherwise such as “fly in” on the board but that is not what it is primarily designed for. You will get more 2d focussed tools (and less functionality that is no use at all for you) with a 2d engine.

Another good example:
http://hub.jmonkeyengine.org/forum/topic/make-750-and-help-jmonkeyengine-at-the-same-time/page/5/#post-241651 (see other pages for images and videos).

@zarch said: There is also that neon shooter demo/tutorial currently being done.

The thing is though jme supports 2d game development (and lets you do some nice things with 2d that would be very hard otherwise such as “fly in” on the board but that is not what it is primarily designed for. You will get more 2d focussed tools (and less functionality that is no use at all for you) with a 2d engine.

I guess jMonkey is good if someone;s scope is 2D and 3D but for only 2D focussed development, there are other better/ lighter engines.

Could you suggest some good 2D java game engines worth exploring, if you have experience with them. I have narrowed down but is facing confusion which should be good in terms of speed, documentation, support etc.

  1. libGDX
  2. AndEngine
  3. Slick 2D

Sorry, I’ve not used any myself.

I’ve already used Slick2D and currently using libgdx.
Slick2D was a really good 2D engine but is no longer maintained.
I think libgdx and slick are equals even if libgdx documentation updated is hard to find out of the wiki.

By my personnal experience, I can suggest you to use libgdx.

@jonesadev said: I've already used Slick2D and currently using libgdx. Slick2D was a really good 2D engine but is no longer maintained. I think libgdx and slick are equals even if libgdx documentation updated is hard to find out of the wiki.

By my personnal experience, I can suggest you to use libgdx.

It’s pretty neat… though, you’ll get better performance from JME just in how rendering is handled. They have a few cool features for animating 2d graphics, but nothing that couldn’t be duplicated in JME with an hours worth of time. There in the process of adding 3d support right now and it is ugly and trampling on their 2d focus (i.e. breaking things).

Still a fun engine to play with, though / shrug

EDIT: Let me explain why you’ll get better performance… They are reusing a single quad (or nine-patch) to render each object… good idea! Unfortunately, all transforms are happening on the CPU instead of GPU. Yeah, I know… 4 verts… big deal. But the more stuff you add, the bigger the issue gets.

So, to override this in libgdx, you either have to implement your own (forget what they call the scene management system) or just live with the limitations.

2 Likes

Actually, just for the sake of arguing with myself… there reason for implementing transforms on the CPU was the ability to set the origin a transform would happen around. Only way to do this (as far as I can figure) would be to adjust the vertex buffer > apply transform directly to the verts > rinse > repeat.

Neat feature… no doubt… just an expensive one.

@t0neg0d said: Actually, just for the sake of arguing with myself... there reason for implementing transforms on the CPU was the ability to set the origin a transform would happen around. Only way to do this (as far as I can figure) would be to adjust the vertex buffer > apply transform directly to the verts > rinse > repeat.

Neat feature… no doubt… just an expensive one.

And I guess all this further alleviates when one runs on android devices…
Nice discussion, thanks a lot all of you for help…

As my purpose is learning so I should try both of engines.
Further down the line I will 2D as well as 3D, so I will give jMonkey a chance first before moving on…