What are the key technologies to learn to start java game development.

I want to get started with Java game development. I have 6 years of java programming experience, I am mostly in Enterprise java and web development.
Now i want to get into the game development just for hobby.

Where to start
Just like any one who want to start with java web development, I will say… go and learn Servlet API before any thing else… what’s the similar technology for Game development.

Jogl/jmonkey/LWJGL
Do they compliment or compete each other? Which one will you suggest to a beginner. Do I need to learn java 2D/3D if I use any of this?
Are they similar to Java 2D/3D, compliment or compete?

I want some one to show me direction… there are so many technologies like Java 2D, Java 3D, JOGL, LWJGL, Jmonkey and many more…
I want to know what are the most basic things that I should start with and what are the advance things after that.

~SN

[quote]if you want a flash like experience with java applets, then theres no better library to use then PulpCore http://www.interactivepulp.com/pulpcore/ an example game can be seen here http://www.pulpgames.net/milpa/

if you want powerful and fast 2d games with Java then use the Slick2D library http://slick.cokeandcode.com With Slick2D you can create standalone games as well as applet games, it also has a great community.

if you want a light 3d engine which works reasonably easily in the browser, JPCT is the way to go http://www.jpct.net an example JPCT game can be found here http://www.cokeandcode.com/applets/jpct

If you want powerful 3d games with java on the level of modern 3d AAA titles, then jME http://www.jmonkeyengine.com or Ardor3d http://ardor3d.com are the libraries to use.

If you want to go old school and have direct access to low level libraries like OpenGL and OpenAL then LWJGL is the biniding to go for http://www.lwjgl.org

Just my opinion.
[/quote]
as for your question regarding JOGL/Jmonkey/LWJGL:

JOGL is a standalone OpenGL binding.

LWJGL also has its own implementation of an OpenGL binding but in addition to that also has binding to OpenAL and supports joystick/pad input via JInput integration.

Both LWJGL (partially) and JOGL complete slightly on the OpenGL binding bit but both have different api styles where one is more static style like OpenGL the other is more OO.

JMonkey on the other hand is a 3d engine (scene graph) which uses LWJGL or JOGL as a link to render its graphics content.

You do not need to know either java2d or 3d to use any of these 3, however you will need to know some basics of OpenGL to use LWJGL or JOGL.

Thanks for the reply and clarifications…

Now do you think that I should learn OpenGL before i start with any other libraries mentioned above. Do I need to know openGL if I go with engines like jmonkey.

No, learn it at the same time :), grab the Red Book or Nehe tutorials and start applying them in your binding of choice. Another nice tutorials to get you through the whole process is http://www.cokeandcode.com/asteroidstutorial

No you do not need to know OpenGL to use jMonkey engine but you do need to know how to use jME’s API, there are a few tutorials on the jME sites/wiki so that would be a good place to start.

Actually where can an openGL library be downloaded from?