This content has been marked as final. Show 1 reply
seriously, I wouldn't focus on Java in this case. There are some books, but they are hardly current.
I would bite the bullet and get a good game development book using C++; there is a vast amount of choice out there and you shouldn't have too much problems to translate the C++ code to Java as at the syntax level the languages are quite similar; most books use only the very basics of C++ to keep it simple and portable.
Also if you want to get into 3D, you'd need to learn a 3D API. There are few choices and the ones that stand out the most are Direct3D and OpenGL. If you want to do game development in Java I'd stick to OpenGL, so you'd need a good book about that as well.
For your 2D game development efforts; well I'd actually start with that and keep it simple; for example you could try to do a simple game (Pong, tetris, whatever) using nothing but the Java2D API. Learn the basic game development tricks as you go along, it will be the foundation you need when you want to get into 3D game development and you add another dimension of complexity to everything.
For further investigation, I'd recommend you to check out the following websites.
[http://www.javagaming.org|http://www.javagaming.org] - a friendly community focusing on exactly this topic
[http://www.lwjgl.org|http://www.lwjgl.org] - an API I particularly like for 3D game development in Java (using OpenGL). Also provides sound and input support
[http://slick.cokeandcode.com/|http://slick.cokeandcode.com/] - an API for 2D games built on top of LWJGL. Designed to work just like Java2D.
[http://www.gamedev.net|http://www.gamedev.net] - website with a vast amount of resources and very active forums