I'm fairly novice to Java. I started about a month ago and have created (partially) some things to test myself and practice with the language.
My Tower Defense project
So far I've been using the jMonkeyEngine 2 and a bit of 3. I was wondering in the forums' all-knowing mind if using such game engines would gimp my learning of Java programming for games? Should I learn the LWJGL core or the Java 3D libraries from Sun? If my goal is to make a living by programming Java (games or otherwise) should I steer clear of such engines? Could someone more knowledgeable give me a decent pro/con to them perhaps? It would be greatly appreciated.
I don't see why. As far as I know, you're still required to write the game logic yourself. As a matter of fact, it's probably good practice to work with third party software and to build something on top of it.
I played around with the JME2/3 engines, JME2 was awesome, JME3 had a lot of really cool features however pretty much forced you to use their netbeans based IDE to develop, which though cool, is netbeans with a restrictive bulkey UI, which just doesn't blend in anywhere on any platform and I was never fond of it. So I personally dropped JME and started toying with LWJGL and JOGL. Their more stable, and have much better documentation as well as implementations which you can view the source code to. JME is working on improving its documentation it looks like, however its just taking way too long imho.
irc.esper.net - tak, irc.freenode.com - tak11, irc.efnet.org - tak11
I would say why not learn both LWJGL and JMonkey? JMonkey can use either JOGL or LWJGL rendering engines underneath anyway if my recollection is correct but LWJGL seems to be the preferred engine. However, LWJGL is really pretty much just a Java wrapper API around OpenGL. It isn't so much a "game engine." There are lots of common 3D game oriented features that JMonkey provides on top and utilizing LWJGL that you'd need to develop yourself if you were to use just LWJGL. Of course it never hurts to have a deeper understanding of what lies underneath the tool you're using so you can use the tool more efficiently and effectively. So I'd say do a comparison of what's offered by LWJGL vs. JMonkey and then you'll come to appreciate what adding JMonkey on top of the LWJGL library gives you. Also JMonkey is open source so you can look at their implementation and see how its done and customize to suit your needs if necessary.