Menurut persyaratan pertama Anda, Anda mencari kerangka kerja dan bukan perpustakaan.
jMonkeyEngine adalah kerangka kerja untuk game 3D (yaitu memberikan loop utama seperti yang Anda minta, mirip dengan XNA) tetapi itu bukan pilihan yang baik untuk 2D.
Namun, loop permainan bukan hal yang sulit untuk ditulis , dan perpustakaan Java yang ada menangani persyaratan 2 dan 3 Anda, jadi saya sangat menyarankan melihat grafik adegan perpustakaan / mesin 3D atau perpustakaan 2D apa pun, tergantung pada apakah Anda membuat permainan 2D atau 3D.
Aviatrix3D , Ardor3D , Java3D dan jMonkeyEngine adalah rekomendasi saya untuk mesin grafik adegan 3D.
Untuk perpustakaan 2D, Anda memiliki JGame , atau Anda dapat memilih untuk menggunakan OpenGL untuk kecepatan maksimal dan menggunakan LWJGL atau JOGL . Anda juga bisa hanya pergi dengan perpustakaan Graphics2D Java bawaan , yang akan menjadi pilihan yang sangat baik jika Anda berencana untuk menggunakan gim Anda sebagai applet.
Untuk menuju rute Graphics2D bawaan , lihat kode sumber ke Metagun (klik untuk memainkan dalam bentuk applet). Ini adalah game 2D Java kecil tapi sangat baik ditulis, dan saya pikir itu adalah contoh yang sangat baik dari game kecil; salin strukturnya dan Anda memiliki loop / kerangka permainan optimal.