Is JMonkey a good engine to use for my project?

Hey, sorry if this is in the wrong forum!



I’m quite new to game development but have been a java programmer for a few years :). Please excuse the newbie questions!



I’m currently trying to decide between Panda 3D as an engine or JMonkey.



I’m looking at creating a 3D game where the user plays in first person, navigating a home and interacting with objects - sounds will be used.



As I am fairly new to game development and this is a school related project I have some basic questions:


  • How much of a learning curve do you think there is to create this(and do you think 3 months is a suitable time to create this)? I have minimal game experience but lots of programming experience - currently in my 4th year at University doing CS.


  • Is this a suitable project for JMonkey? I’ve seen examples and it looks more than capable - but i’m unsure how hard/complicated it was to create such examples.


  • Would JMonkey make a better engine over panda 3d? I know Java well but not python - however with pythons quick coding i guess I could create it in panda 3d far quicker.


  • How much harder is it to create a first person over a 3rd person game?



    Any answers would be really appreciated :).
@avpeacock said:- How much of a learning curve do you think there is to create this(and do you think 3 months is a suitable time to create this)? I have minimal game experience but lots of programming experience - currently in my 4th year at University doing CS.


Yes, if you allocate the time this is more than doable. Of course, there is no button for "Create Game with Zero Effort" so you must be willing to write some code. The SDK will be invaluable for creating the scene, however.

@avpeacock said:- Is this a suitable project for JMonkey? I've seen examples and it looks more than capable - but i'm unsure how hard/complicated it was to create such examples.


You can see the code for the examples, they're very straightforward and include understandable examples of advanced functionality.

@avpeacock said:- Would JMonkey make a better engine over panda 3d? I know Java well but not python - however with pythons quick coding i guess I could create it in panda 3d far quicker.


If you're comfortable with Java, use jME. If you're comfortable with Python, use Panda. The time you'll spend learning about another language is time you could've spent making a game ;)

@avpeacock said:- How much harder is it to create a first person over a 3rd person game?
This is all opinion, but I'd say creating a first-person is easier as you don't need to worry about modeling and rigging a full avatar model. Camera configurations for both are included in the engine.
@sbook said:
Yes, if you allocate the time this is more than doable. Of course, there is no button for "Create Game with Zero Effort" so you must be willing to write some code.

Great, thankyou so much for your response!

The part i'm most worried about being time consuming tbh is the modelling of objects in the house and the house environment itself - I have very minimal experience with blender and looking around at models I could use/import I couldn't find too much - but perhaps i've not been looking hard enough. Would the modelling aspect/learning be quite difficult/time consuming?
@avpeacock said:
Great, thankyou so much for your response!

The part i'm most worried about being time consuming tbh is the modelling of objects in the house and the house environment itself - I have very minimal experience with blender and looking around at models I could use/import I couldn't find too much - but perhaps i've not been looking hard enough. Would the modelling aspect/learning be quite difficult/time consuming?


Yeah, that will take a pretty significant amount of time, probably. Find as much as you can on the free blender sites. JME's scene editor will let you put it all together in one scene once you have the parts and models, though.

I don't have much advice for modeling, though, as I'm still a blender noob also.
@pspeed said:
Yeah, that will take a pretty significant amount of time, probably. Find as much as you can on the free blender sites. JME's scene editor will let you put it all together in one scene once you have the parts and models, though.

I don't have much advice for modeling, though, as I'm still a blender noob also.


This. If you're looking for blender tutorials, there are better places than here for that :)

That said, start with some [close] placeholder objects. Since you're up against a timeline, build the basic functionality so that you know you have something working that fits the objective and then keep improving the quality of the scenery. Picking objects, for example, should work the same for most objects, GUI elements will still need to come in and out.. things like this.

Is this a solo project?



If you are planning to design/build your own models and textures, three months is only enough for a fairly simple first or third person game. I have only tinkered with Panda 3D a few years ago. At that time I was comparing the performance of the physics engines and found jmonkey to perform much better. The coding should be equally if not more time efficient with JME3, particularly if you design with “Use Case”, “Class”, and “Sequence” diagrams and incorporate basic game states.



IMHO simple first person games are quite easier and faster to develop than simple third person games.

@fizx said:
Is this a solo project?

If you are planning to design/build your own models and textures, three months is only enough for a fairly simple first or third person game. I have only tinkered with Panda 3D a few years ago. At that time I was comparing the performance of the physics engines and found jmonkey to perform much better. The coding should be equally if not more time efficient with JME3, particularly if you design with "Use Case", "Class", and "Sequence" diagrams and incorporate basic game states.

IMHO simple first person games are quite easier and faster to develop than simple third person games.


Yes solo project :). However I have 3 months for the first version and a year after that to improve it! :). Thankyou for your feedback on panda 3d!
@pspeed said:
Yeah, that will take a pretty significant amount of time, probably. Find as much as you can on the free blender sites. JME's scene editor will let you put it all together in one scene once you have the parts and models, though.

I don't have much advice for modeling, though, as I'm still a blender noob also.

Hmm, would it be possible to use something like autocad instead do you think? Just I know someone who has experience with autocad and may be able to help with it.
@avpeacock said:
Hmm, would it be possible to use something like autocad instead do you think? Just I know someone who has experience with autocad and may be able to help with it.


Others would be more familiar than I am, but I think it's possible to at least export something from AutoCAD that can be read into Blender and then exported as something for JME. I don't know if it's possible or desirable to go straight from AutoCAD to JME.

AutoCAD on its own is a non-starter… What you can do, though, is import your AutoCAD file into 3ds and get it out to Blender or jME from there. (You can use FBX, the Autodesk COLLADA plugin, OBJ, etc)

Hi, first of all, forgive my english, this is not my first language and I’m new to JME. You’ve talk about making your own model with blender, if you want to create “humanoid” model with blender and you’re new to the universe of modeling, it will be a lot of work! I don’t know if it work with JME, but I’ve worked with Ogre3D and I’ve found a open source software that making easier to create a “huamnoid” model, in fact, the software names “MakeHuman” generate for you a complete model from some parameters you’ve enter before. I think it could be a solution for you, and all the model you’ve generated are exportable directly to blender 3D or 3dsmax for adjusting the “definition” of your model (because all the models are generate very high definition and if you want your game to have a good fps rate you have to reduce the definition of the model before including it in the game). I know I’m not in the right topic for my question, but I take a chance to ask my question here… I’m really new to JME and I’m trying to start a beguinner example just to see how it work, I’ve follow the beguinner tutorial on how installing correctly JME3 (lastest version on date 2012-11-16) in eclipse. I’ve included in my project all the jar library of the /lib folder and when I try to run the first example from the beguinner tutorial, I got this error : Exception in thread “main” java.lang.NoClassDefFoundError: de/lessvoid/nifty/renderer/lwjgl/input/LwjglInputSystem and later in the log I got: Caused by: java.lang.ClassNotFoundException: de.lessvoid.nifty.renderer.lwjgl.input.LwjglInputSystem. I know it’s probaly a very noob error, but I don’t find this class in the included jar… I don’t know if this is a missing file of the release or if I just forgot to link a jar file in my projet? If you have an idea thanks in advance!

@kennybg said:
Hi, first of all, forgive my english, this is not my first language and I'm new to JME. You've talk about making your own model with blender, if you want to create "humanoid" model with blender and you're new to the universe of modeling, it will be a lot of work! I don't know if it work with JME, but I've worked with Ogre3D and I've found a open source software that making easier to create a "huamnoid" model, in fact, the software names "MakeHuman" generate for you a complete model from some parameters you've enter before. I think it could be a solution for you, and all the model you've generated are exportable directly to blender 3D or 3dsmax for adjusting the "definition" of your model (because all the models are generate very high definition and if you want your game to have a good fps rate you have to reduce the definition of the model before including it in the game). I know I'm not in the right topic for my question, but I take a chance to ask my question here... I'm really new to JME and I'm trying to start a beguinner example just to see how it work, I've follow the beguinner tutorial on how installing correctly JME3 (lastest version on date 2012-11-16) in eclipse. I've included in my project all the jar library of the /lib folder and when I try to run the first example from the beguinner tutorial, I got this error : Exception in thread "main" java.lang.NoClassDefFoundError: de/lessvoid/nifty/renderer/lwjgl/input/LwjglInputSystem and later in the log I got: Caused by: java.lang.ClassNotFoundException: de.lessvoid.nifty.renderer.lwjgl.input.LwjglInputSystem. I know it's probaly a very noob error, but I don't find this class in the included jar... I don't know if this is a missing file of the release or if I just forgot to link a jar file in my projet? If you have an idea thanks in advance!


You forgot to include the nifty jars in your project libraries. It looks like this step is not included in the tutorial but something related to "nifty-gui" should be an option as one of the libraries you can add.

Next time start a new thread for your problem instead of hijacking someone elses.