Según su primer requisito, está buscando un marco en lugar de una biblioteca.
jMonkeyEngine es un marco para juegos 3D (es decir, proporciona el bucle principal a medida que lo solicita, similar a XNA), pero no sería una buena opción para 2D.
Sin embargo, un bucle de juego no es algo difícil de escribir , y las bibliotecas Java existentes manejan sus requisitos segundo y tercero, por lo que le sugiero que busque en una biblioteca / motor 3D de gráficos de escenas o cualquier biblioteca 2D, dependiendo de si está haciendo un juego en 2D o 3D.
Aviatrix3D , ardor3d , Java 3D y jMonkeyEngine son mis recomendaciones para los motores 3D del escenario gráfico.
Para las bibliotecas 2D, tiene JGame , o puede elegir usar OpenGL para una velocidad máxima y usar LWJGL o JOGL . También podría ir con la biblioteca Graphics2D incorporada de Java , que sería una opción especialmente buena si planea implementar su juego como un applet.
Para ir a la ruta integrada Graphics2D, mire el código fuente de Metagun (haga clic para reproducir en forma de applet). Es un juego Java 2D pequeño pero muy bien escrito, y creo que es un excelente ejemplo de un juego pequeño; copie su estructura y tendrá su bucle / marco de juego óptimo.