Is making a 2.5D game possible with JMonkeyEngine

Hello everyone, New user here.

Quick question though.

Im wanting to make a game in 2.5D

Is this achievable in JMonkeyEngine?

2.5D… Please define.

IE

http://www.youtube.com/watch?v=vtYvNEmmHXE

That’s isometric 3D.

Thank you for the correction.

Is this possible in JMonkeyEngine?

Also is 2D Isometric possable?

Yes to both.



Isometric is a view of 45 degree from the camera, more or less. So all you need to do is lock the camera on that view.



Although it’s possible to do 2D isometric, I don’t see the point. jME is a 3D engine, I’m sure there’s other engines more suited for that kind of graphics.

as @pspeed would say, with jme anythings possible

Thank you both for your time.

Isometric is also orthographic. It can be done. There may be some hard-coding in JME’s concept of orthographic that makes it trickier because it rather arbitrarily flattens all depth. (90% sure this is specific to orthographic and not just the gui node but I haven’t looked at the code recently.)



If you can get away with true 3D from a fixed angle then it is easier (and you potentially get more of a Neverwinter Nights style interface instead of a Baldur’s Gate interface if you choose to unlock the camera). For the most part, this will look almost the same except you will get some perspective foreshortening… and your ability to cheat with flat sprites is therefore much harder.



For a truly isometric view, I only had to hack one class in JME… but it is hacking.

jME3 supports parallel/orthogonal projection natively. See TestParallelProjection example.

@pspeed said:
Isometric is also orthographic. It can be done. There may be some hard-coding in JME's concept of orthographic that makes it trickier because it rather arbitrarily flattens all depth. (90% sure this is specific to orthographic and not just the gui node but I haven't looked at the code recently.)


To follow up on my own hacking comments...

The hacking I did was in RenderManager to give it an ortho matrix with a non 0 scale in Z. I think this is only related to the GUI bucket so regular camera parallel projection is probably fine. In my case, I needed a proper depth buffer in the GUI node and render manager by default flattens depth.
@madjack said:
That's isometric 3D.


as i good know this video its 2d simulated 3d.

@xaeias: but yes, the best way is to use just 3d to make it.
@pspeed said:
The hacking I did was in RenderManager to give it an ortho matrix with a non 0 scale in Z. I think this is only related to the GUI bucket so regular camera parallel projection is probably fine. In my case, I needed a proper depth buffer in the GUI node and render manager by default flattens depth.

Wouldn't that require clearing the depth buffer before the GUI bucket can be used for depth testing?
Did you consider using a orthogonal/parallel camera instead for your purpose?
@Momoko_Fan said:
Wouldn't that require clearing the depth buffer before the GUI bucket can be used for depth testing?


The gui bucket already does this... at least I didn't need to mess with this. It would either have to clear the depth buffer or turn off depth testing. Maybe I did something else to make that happen.

I had to change some things in renderViewportQueues() to set the depth range on the renderer for the gui bucket. The only other thing was tweaking the ortho matrix.

@Momoko_Fan said:
Did you consider using a orthogonal/parallel camera instead for your purpose?


I still wanted to use the guiNode. I suppose I could have made another gui node and viewport myself, but really I just wanted a Z buffer on the regular gui node so that I could use masking to simulate clip rectangles. I render transparent shapes at a nearer Z before I render some other GUI element at a farther Z so that they are clipped.