Theo yêu cầu đầu tiên của bạn, bạn đang tìm kiếm một khung chứ không phải là một thư viện.
jMonkeyEngine là một khung cho các trò chơi 3D (nghĩa là nó cung cấp vòng lặp chính như bạn yêu cầu, tương tự như XNA) nhưng nó sẽ không phải là một lựa chọn tốt cho 2D.
Tuy nhiên, một vòng lặp trò chơi không phải là một điều khó viết và các thư viện Java hiện có xử lý các yêu cầu thứ 2 và thứ 3 của bạn, vì vậy tôi khuyên bạn nên xem xét thư viện / công cụ đồ thị 3D hoặc bất kỳ thư viện 2D nào, tùy thuộc vào việc bạn đang thực hiện trò chơi 2D hoặc 3D.
Aviatrix3D , Ardor3D , Java3D và jMonkeyEngine là những đề xuất của tôi cho các công cụ đồ thị 3D.
Đối với các thư viện 2D, bạn có JGame hoặc bạn có thể chọn sử dụng OpenGL để có tốc độ tối đa và sử dụng LWJGL hoặc JOGL . Bạn cũng có thể đi với thư viện Graphics2D tích hợp của Java , đây sẽ là một lựa chọn đặc biệt tốt nếu bạn có kế hoạch triển khai trò chơi của mình dưới dạng một applet.
Để đi theo lộ trình Graphics2D tích hợp, hãy xem mã nguồn tới Metagun (nhấp để chơi ở dạng applet). Đây là một trò chơi Java 2D nhỏ nhưng được viết rất tốt và tôi nghĩ đó là một ví dụ tuyệt vời về một trò chơi nhỏ; sao chép cấu trúc của nó và bạn có vòng lặp / khung trò chơi tối ưu của bạn.