2012-03-11 2 views
7

पर एक्सएनए के समान ढांचा कहां खोजें, मैं अभी एक सी #/जावा डेवलपर हूं, और मुझे सी # .NET के साथ एक्सएनए पर एक अच्छा समय रहा है।
लेकिन मैं जावा पर 3 डी विकसित करने की कोशिश करना चाहता हूं, क्योंकि यह पोर्टेबल है और मैंने अभी तक ओपनजीएल को अभी तक कोशिश नहीं की है।जावा

मैं एक समस्या जहां कई संभावनाएं यहाँ थे में भाग:

  • jMonkeyEngine
  • Avatrix3D
  • Ardor3D
  • Java3D - मैं वास्तव में भारी में देखा नहीं किया है, यह दिलचस्प लगता है, लेकिन मैं यह देखना पसंद करूंगा कि लोग वास्तव में पहले क्या कहते हैं। यदि यह वास्तव में मैं जो खोज रहा हूं वह बहुत ही अच्छा होगा। नकारात्मकता यह है कि मेरा मानना ​​है कि समर्थन स्तर बहुत कम है।

मैं मुख्य रूप से जेएमई में देखता हूं, जो इंजन के अधिक होने के बाद एक ढांचा (जो नाम के माध्यम से मेरे पास हुआ, हालांकि मुझे बताया गया था कि यह नहीं था)।

असल में मैं क्या एक विशेष रूप से framerwork से चाहेगा:

  • सुंदर स्वत: प्रतिपादन
  • शामिल वेक्टर गणित, उन्होंने क्या किया (XNA, हो सकता है थोड़ा अधिक तो वे करते हैं लेकिन यह है कि चारों ओर देखें) जेएमई में नोड्स के साथ
  • अधिमानतः आवेदन के साथ बंदरगाह करने के लिए आसान ठीक है (XNA, जहां अंत उपयोगकर्ता नेट और XNA स्थापित करने के लिए है के विपरीत)
  • नहीं unnecessa आरई कार्यान्वयन जो सामान्य रूप से सामान्य नहीं होंगे: इसके लिए शायद एक स्पष्टीकरण की आवश्यकता है, मेरा मतलब यह है कि, जेएमई में मुझे जो नफरत है वह यह है कि उनके पास पहले से ही भारी भौतिकी कार्यान्वयन का एक समूह है, जैसे कि उनके बुलेट क्लास और सरल भौतिकी अद्यतन। वे हमेशा ऐसा नहीं करते हैं जो आप चाहते हैं, और अपने आप को लागू करना बहुत आसान नहीं है। एक्सएनए में, वे उस विषय को पूरी तरह से खुले छोड़ देते हैं।
  • ट्रू ओओपी दृष्टिकोण। वास्तव में। एक्सएनए में मैं इसे एक वास्तविक ओओपी दृष्टिकोण मानता हूं क्योंकि आपके पास एक नियंत्रक वर्ग है, जिसमें गेमकंपोनेंट एस शामिल हैं। यह भी व्यक्तिगत इनपुट प्रबंधन और इस तरह के लिए अपनी पुस्तकालय बनाने के लिए इतना आसान बनाता है। भौतिकी भी संभालने के लिए बहुत आसान हो जाता है।

कृपया ध्यान दें कि मैं लंबे समय से जेएमई नहीं देख रहा हूं, इसलिए मुझे इसके बारे में गलत पता चल सकता है। यदि मैं हूं, तो कृपया ऐसा कहें, और शायद उदाहरण प्रदान करें कि मैं उन चीज़ों को कैसे कार्यान्वित कर सकता हूं जिन पर मैं शीर्ष पर पूछता हूं।

अन्यथा मुझे इतना की तरह हो सकता है क्या पर्यत विचारों दे कृपया, कि एक ढांचे, न कि किसी इंजन कहने के लिए है।

इसके अलावा, यह ध्यान देने योग्य है कि मैंने पहले ही एक ही प्रश्न पूछा है here। इस तरह मैं जेएमई में देखकर घायल हो गया। मैं अपनी todo सूची पर Java3D भी देख रहा हूं।
यह प्रश्न अलग है क्योंकि मैं विशेष रूप से ढांचे के लिए पूछता हूं, फिर इंजन।(मेरे लिए अंतर यह है कि एक इंजन गेम-तैयार सब कुछ करने का प्रयास करेगा, जबकि एक ढांचा केवल आपकी आवश्यकताओं के अनुरूप वास्तविक इंजन बनाने में आसान बनाता है)।

संपादित करें: 2 उत्तरों पढ़ने के बाद, मैं जावा 3 डी में देखने जा रहा हूं, भले ही ऐसा बहुत कम समर्थन हो, क्योंकि मैं जेएमई की भारीता नहीं चाहता अगर मैं उपयोग नहीं कर रहा हूं यह, और कुछ हद तक गलत होने के लिए किसी उत्पाद के टुकड़ों को हैकिंग पर विचार करें (मेरा मतलब है कि यदि आवश्यक हो तो इसे करना ठीक है, लेकिन मैं पहले अन्य समाधानों को देखना पसंद करूंगा)। यदि यह या तो काम नहीं करता है, तो मैं जोगैम्प और एलडब्लूजेजीएल में देखूंगा, संभवतः उनसे अपना खुद का ढांचा बनाना (ऐसा करने के लिए एक दिलचस्प परियोजना की तरह लगता है)। अगर मैं इसे नहीं बनाऊंगा, तो मैं सिर्फ एक्सएनए से चिपक जाऊंगा (हालांकि मैं लिनक्स मशीन के नीचे मेरी किसी भी रचना को स्थापित करने की संभावना खो दूंगा :()

उत्तर

2

कुछ विचार, लेकिन पीछा करने के लिए छोड़ना: जावा के लिए ऐसा कोई ढांचा नहीं है, आप दिखना बंद कर सकते हैं - या बहुत निराश हो सकते हैं।

एक्सएनए माइक्रोसॉफ्ट से एक बड़ा निवेश है, इसका दायरा और टूलींग अद्भुत है। और कोई आश्चर्य नहीं: एक्सएनए माइक्रोसॉफ्ट की एक्सबॉक्स रणनीति और एक ही समय में उनकी मोबाइल रणनीति का हिस्सा है। इसके पीछे बहुत सारे संसाधन हैं। जावा पक्ष पर किसी ने कभी भी समान निवेश नहीं किया है, क्योंकि कोई भी प्रमुख खिलाड़ी जावा को गेमिंग प्लेटफार्म के रूप में धक्का देने में रूचि नहीं रखता है (यह एंड्रॉइड और जावाएफएक्स के साथ बदल सकता है, लेकिन मैं अपनी सांस नहीं पकड़ूंगा)।

हमारे पास जवालैंड में क्या है - बहुत सी छोटी पुस्तकालयों, समुदायों और परियोजनाओं में है। अधिक उत्तेजना और विचार, कम परिपक्वता। कम टूलींग, अधिक पार परागण। मेरा वर्तमान पसंदीदा PlayN है, जो वास्तव में एक अच्छा, क्रॉस प्लेटफ़ॉर्म लाइब्रेरी है जो आपको एंड्रॉइड और डेस्कटॉप के लिए गेम बनाने देता है, और उसके बाद इसे जावास्क्रिप्ट में संकलित करता है और किसी भी प्लगइन के बिना किसी भी आधुनिक ब्राउज़र पर चलाता है।

तकनीकी पक्ष, दो नोट्स के लिए के रूप में:

  • मैं बुला पर आपत्ति एक सच्चे OO दृष्टिकोण "एक नियंत्रक उन सब को शासन करने के लिए" (और शायद कुछ भी बुला "सच OO दृष्टिकोण" के खिलाफ); यह निश्चित रूप से एक डिजाइन विकल्प है जिसमें अच्छे पक्ष हैं, लेकिन इसके व्यापार-बंद हैं। कुछ केंद्रीय वस्तुओं में चिपकने के अलावा निर्भरताओं की आपूर्ति के अन्य तरीके भी हैं।

  • जेएमई नहीं है - AFAIR - किसी भी विशिष्ट भौतिकी इंजन के लिए कठिन तार, यह धारणा के साथ बनाया गया है कि सब कुछ swappable होना चाहिए। यह एक्सएनए की तुलना में एक अलग तरीके से किया जा सकता है, लेकिन यह अच्छा है।

+0

कृपया ध्यान दें कि वास्तव में जेएमई वास्तविक प्रतिपादन के संदर्भ में एक ही चीज (उन सभी पर शासन करने के लिए एक नियंत्रक) करता है: rootNode। क्या वास्तव में कोई ढांचा नहीं है जो मैंने 5 सुविधाओं का समर्थन किया है? मेरा मानना ​​है कि कुछ उत्पाद से विशाल हिस्सों की हैकिंग करना एक भयानक चीज है, इसलिए मैं जावा 3 डी में देखने जा रहा हूं और यदि ऐसा नहीं करता है तो यह शायद एलडब्ल्यूजेजीएल/जॉगएल के साथ अपना खुद का बना सकता है या बस मेरे अंदर रह सकता है।नेट दुनिया एक्सडी –

+2

मेरे पास एकल नियंत्रकों के खिलाफ कुछ भी नहीं है, वास्तव में; मेरे कई अच्छे दोस्त सिंगलेट हैं। मैं केवल उन पर विचार करने के खिलाफ था (या उस मामले के लिए और कुछ भी) "एकमात्र सच्ची ओओपी तकनीक" :) अपने संदेहों के लिए, अच्छी तरह से - अपने लिए देखें। एक्सएनए आपकी औसत ओपन सोर्स प्रोजेक्ट नहीं है। यह एक बड़ा मंच है जिसे बड़े संसाधनों के साथ एक बड़े विक्रेता द्वारा ही पहुंचाया जा सकता है। कोई जावा विक्रेता को जावा गेमिंग प्लेटफ़ॉर्म बनाने के लिए निवेश के लिए एक अच्छा विचार नहीं मिला, इसलिए हमारे पास बहुत अच्छी खुली स्रोत सामग्री है, केवल कोई परिपक्वता नहीं है जिसका उपयोग आप करते हैं। बीटीडब्ल्यू, जावा 3 डी इतना कम स्तर है कि यह आपको रोएगा। – fdreger

+0

और हाँ, मेरे पीछे तथ्यों की जांच करने से पहले आपके कुछ अन्य उत्तर देने से, चोट पहुंची :-) – fdreger

1

मुझे लगता है कि jMonkeyEngine शायद आपकी सबसे अच्छी शर्त है।

इसे एक काफी फीचर-पूर्ण गेम इंजन के रूप में डिज़ाइन किया गया है, लेकिन इसे फ्रेमवर्क के रूप में उपयोग करने और बस आपको आवश्यक बिट्स चुनने और चुनने के लिए कुछ भी नहीं है। यह भी ओपन सोर्स है इसलिए यदि आप कुछ अलग करना चाहते हैं तो इसे हमेशा जिस तरह से आप चाहते हैं उसे हैक करना हमेशा संभव है :-)

उदाहरण के लिए, यदि आपको उच्च स्तर jMonkeyEngine दृश्य ग्राफ सुविधाओं को पसंद नहीं है, तो आप केवल LWJGL (जो जेएमई उपयोग का उपयोग कर सकते हैं आंतरिक रूप से प्रतिपादन के लिए) और ओपनजीएल का उपयोग सीधे खींचें।