अपनी पहली आवश्यकता के अनुसार, आप एक पुस्तकालय के बजाय एक रूपरेखा की तलाश कर रहे हैं ।
jMonkeyEngine 3 डी गेम्स के लिए एक फ्रेमवर्क है (यानी यह मुख्य लूप प्रदान करता है जैसा कि आप पूछते हैं, XNA के समान) लेकिन यह 2D के लिए अच्छा विकल्प नहीं होगा।
हालाँकि, एक गेम लूप लिखने के लिए कोई कठिन बात नहीं है , और मौजूदा जावा लाइब्रेरी आपकी 2 और 3 की आवश्यकताओं को संभालती है, इसलिए मैं अत्यधिक एक दृश्य ग्राफ 3 डी लाइब्रेरी / इंजन या किसी 2 डी लाइब्रेरी में देखने का सुझाव देता हूं, यदि आप बना रहे हैं, तो इस पर निर्भर करता है एक 2 डी या एक 3 डी खेल।
Aviatrix3D , Ardor3D , Java3D और jMonkeyEngine दृश्य ग्राफ 3 डी इंजन के लिए मेरी सिफारिशें हैं।
2D पुस्तकालयों के लिए, आपके पास JGame है , या आप अधिकतम गति के लिए OpenGL का उपयोग करना और LWJGL या JOGL का उपयोग करना चुन सकते हैं । आप सिर्फ जावा की अंतर्निहित ग्राफिक्स 2 डी लाइब्रेरी के साथ भी जा सकते हैं , जो एक विशेष रूप से अच्छा विकल्प होगा यदि आप अपने गेम को एप्लेट के रूप में तैनात करने की योजना बनाते हैं।
अंतर्निहित ग्राफिक्स 2 डी मार्ग पर जाने के लिए, मेटागुन के स्रोत कोड को देखें (एप्लेट फॉर्म में खेलने के लिए क्लिक करें)। यह एक छोटा लेकिन बहुत अच्छा लिखा गया 2 डी जावा गेम है, और मुझे लगता है कि यह एक छोटे खेल का एक उत्कृष्ट उदाहरण है; इसकी संरचना को कॉपी करें और आपके पास अपना इष्टतम गेम लूप / ढांचा है।