I agree with the first sentence of tberthel, your question is very subjective.
Your choice should depend on how deep you want to go on the long term. If you only want to focus on the "artistic" (graphics, game design) part of a gaming project, use a WYSIWYG editor (FPSCreator, RPGMaker, etc...) or try to make a mod of an existing game.
If you really want to program, you have several options:
- use high level engines at first and don't "bother" with the underlying technologies they rely on
- use high level engines at first and try to dig a bit deeper in the underlying technologies they rely on later
- use low level APIs at first and don't rely on high level engines
- use low level APIs at first and high level engines later when you feel really comfortable with the underlying technologies they rely on
Understanding low level APIs drives you more autonomous. When something does not work as expected, you can repair it. If you do not understand low level APIs, you require some help of the people who do.
Using high level engines allows to spend less time in reinventing the wheel and to create a game faster... especially when you understand how they work.
Reinventing the wheel can have a pedagogical interest, it can be helpful to understand the low level APIs and how they are used to build 3D engines and WYSIWYG editors.
As some people here know, I chose the last option, I learnt OpenGL in C during my license degree, I used it with C++ but... my hard disk decided to stop working, I lost all the source code of what could have become TUER and I decided to use my favorite language (Java of course) with JOGL. When I felt comfortable with OpenGL in Java with JOGL, I decided to save a lot of time by using an existing engine rather than going on writing my own engine.
In my humble opinion (I won't speak about proprietary solutions), Ardor3D and JMonkeyEngine are the most interesting engines written in Java. 3DzzD can be fine for web projects too. JMonkeyEngine has the largest community, I used it several years, I improved the JOGL renderer of its second version with the help of cylab, I ported the JOGL renderer of its third version before JOGL support had been dropped by its team, this engine is not as reliable as I expected even though the third version is noticeably better (but targets OpenGL 2.0 and later), it has a nice game development environment based on Netbeans RCP. I might be wrong but its Android version is not fully functional.
Ardor3D is more professional, more reliable, it has the best support of all major OpenGL bindings (including AndroidGL), it works fine even with OpenGL 1.3 (only with the JOGL renderer because I fixed the bugs only in this one as I do not use its main competitor (LWJGL)
) but it has a smaller community, less tutorials, no GDE, it uses both the fixed and the programmable pipelines which means it would not support a forward compatible context unlike JMonkeyEngine 3.
I hope my post will be useful for you. Best regards.