jME: What's the Catch?

Right, so I was browsing around the forumz as I do and I came across the jMonkeyEngine child board. I subsequently visited their site and thought I hit the jackpot! Lighting! Great shader support! PHYSICS! And then I though, “Wait. What’s the catch. Something like this is too good to be true.”. So guys, what’s the catch??

It’s just higher level. Could say the same thing about Unity.

But Unity is a drag and drop to some extent, correct? I know there is coding involved, but I prefer it to be all coding, no easy drag drop functionality. jME is all code from what I know.(?)

My point. Drag and drop is easier than coding in the same way using jME’s physics libraries is easier than writing physics libs yourself.

gotcha. Would you recommend using it?

The only thing I think it lacks are tutorials.

They have good documentation, but what normally gets people going is an example of a basic game featuring all things involving physics.

Hi

There are tutorials and working code examples for JMonkeyEngine 3 here:
http://hub.jmonkeyengine.org/wiki/doku.php/jme3
http://hub.jmonkeyengine.org/wiki/doku.php/jme3#code_samples

The samples of the book explain step by step how to create a game involving physics, look at the chapter n°7.

Actually, in my humble opinion, JMonkeyEngine 3 is probably the most documented 3D engine written in Java.

JMonkeyEngine 3 has its own integrated game development environment based on Netbeans Platform but you can code everything if you want.

I wouldn’t recommend it until you’ve actually learned more of the OpenGL language. JME is basically just dragging and dropping things. I personally hate engines like JME because its someone else’s code and I like coding my whole project so I know exactly how everything works, and I learn more. Sure, its easier and probably faster, but you wont learn as much.

Depends if you want to learn programming of gfx, sound, controls, entity management, physics, game mechanics etc. or to actually learn to finish programming a game… :stuck_out_tongue:

I would argue that learning programming is far better than finishing a game. If you just make a game where a ball bounces, you’re not going to learn very much at all. Sure, you’ll have finished a game, but what did you actually learn? Programming is about learning, not trying to spit out programs as fast as you can. You want to become a better programmer, make better programs. This is why I have a problem with JME. You don’t actually learn much.

Programming is not about learning. What are you talking about? Programming is about developing software that enhances/automates different aspects of life, or in the case of video games, to create something entertaining. Honestly, your words can be interpreted as “I don’t like game engines because it makes the project easier”. THAT’S THE POINT. That’s why engines and libraries and frameworks are built. So, people can create their software without having to write what’s been written a thousand times.

If you are so bent on not using “someone else’s code”, then you better get started writing your own wrapper for OpenGL. And to that extent, you may as well write your own implementation of the OpenGL standard for your graphics card. I wouldn’t use the C language for that, though, because then you wouldn’t be learning about the assembly language that it is compiled into. You are probably better off starting by building your own CPU with it’s own instruction set.

You took that the wrong way, and I’m sorry I should’ve been more clear.

I was trying to say when learning programming, using engines doesn’t help because you are just dragging things into place. Actually coding something makes you learn. When you’re a newbie, You need to actually learn the code so you can use it later on. I’m all for using an engine when you actually know what its doing for you.

Some people want to write their own scenegraph. Some people would rather just use one.
If jME is “just drag and drop”, then its toolchain must have gone through some amazing new changes, because last I looked, it wasn’t anywhere close to being that simple.

They have a whole new UI I believe

@Troncoso: Big corporations are making boatloads of money off people that think like you are.
Make someone rely on your technologies enough, and they’ll be helpless when you take it away from them.

“You might as well crawl your whole life, because otherwise you have to learn how to walk on your hands”
Well, we can walk with our feet can’t we? Can we?

Don’t start throwing ‘programming’ and ‘business’ and ‘learning’ into a blender and argue what it is you get out - because none of that non-sense means anything.

Programming is about programming. Learning is about learning. Making money is about making money.

To be a good programmer, you must always learn.

You can’t always be hell-bent on writing every little thing yourself when you begin larger projects because the fact is you won’t get much done very quickly unless you either:

A ) Find a team
B ) Find a Library
C ) Do both. (Any major game development organization does THIS)

In none of those cases do you get to be the master-mind behind every last line of code. Being a good programmer is also about being a good team member and a fast learner. I.e. being equip to optimally pick up different libraries and frameworks as your projects need them. Don’t write everything yourself just because you are too lazy to learn your way around the available frameworks.

When getting a Computer Science degree you must take some ASM classes. Now most people out of college will never touch ASM again for practical purposes, but what you get out of it is increased knowledge of what goes on in the computer when you press compile and run which can then be used to optimize a higher language code.

This can translate back to choosing between writing a game engine or using someone elses. Chance are any engine you write wont be as powerful as one like jMe, much as a beginners assembly code wont be nearly as fast and efficient as that created by the compiler, but it will be a good learning experience that may help you understand the underlying processes of the game engine you are using, and help you use them better.

Understanding you tools, though not necessary, can help you implement them better.

I actually buried my point in sarcasm.

I just wanted to say, that making a game involves much more then gfx, sound, physics etc. programming. These tasks are actually so demanding on their own, that most people trying to write something non-simplistic won’t ever finish a game because of the huge amount of work. And even if you come to the point where you mastered the low-level stuff, you still need to master game mechanics and maybe AI. And now comes the real catch - you need to make the game fun to play, too.

So if you are interested in low level programming, it’s fine to not use an engine, but if you want to finish a game with limited resources (or limited attention span), taking as much shortcuts as possible is sensible.

And you also WILL learn a lot of programming, too, because you still need to programm the game! Also you might learn a lot of game engine design as well as managing complexity & resources.

Btw. even in Unity, creating a game is not drag and drop, but still has a good amount of programming involved.

Oh why did you have to necro this thread, of all threads…

Never write code you don’t need to write.

Never deploy code you don’t understand.

:slight_smile:

I completely customized an open 3d game engine because all of the others where slow and or complex.

So while I use other peoples Hardware and VM I don’t use anything outside of the of the JDK that I don’t have the source code and don’t understand that is deployed.

The catch with jME for me was performance and platform support. It was to slow (that is not an issue on PCs) and does not support enough platforms (wanted Flash, HTML5, and J2ME as a possibility).