#1 Te recomiendo utilizar libgdx, porque exactamente todos los "problemas" relacionados con juegos como el tema de colisiones, sprites, físicas, tweening (animaciones), sonido, entrada/salida (teclado/ratón),... te lo da hecho... y con ello te ahorrarás horas y horas de trabajo...
Otra cosa es que te hubiesen dicho de hacer un motor de juegos 2D en Java, entonces si que te tocaría tirar de 0.
Por si te sirve de algo, en el tema de La biblioteca del Gamedev, en este mismo subforo, comenté un libro genial, en inglés, para hacer juegos 2D en libgdx que es éste:
Título: Learning Libgdx Game Development
Enlace: http://www.amazon.es/Learning-Libgdx-Development-Andreas-Oehlke/dp/1782166041/
Descripción: Para mí éste libro es un must si quieres aprender a usar libGDX. Está genial, de hecho yo empecé a leerlo cuando estuve mirando que frameworks 2D usar y está muy muy bien. Eso sí, sólo explica la parte 2D.
Y que puedes encontrar para "echar un vistazo" antes de comprarlo en PDF.
spoilerBuscas en Google "Learning Libgdx Game Development" y con el primer resultado tendrás de sobra
Un saludo