पहला, एक्सएनए एक विकल्प नहीं होगा। यह पीसी और 360 के बीच अंतर को दूर करने के लक्ष्य के साथ बनाया गया है। एक उच्च प्रदर्शन वाला गेम ऐसा नहीं कर सकता है। इसे मतभेदों का फायदा उठाना है। जहां 360 चमकता है, प्रदर्शन को लीवरेज किया जाना चाहिए। जहां यह बेकार है, कामकाज विकसित किया जाना है। और इसके विपरीत पीसी के लिए।
यही कारण है कि अन्य डायरेक्टएक्स रैपर मौजूद हैं (स्लिम डीएक्स को अधिक प्रत्यक्ष डी 3 डी रैपर के रूप में दिमाग में आता है)। सामान्य रूप में प्रबंधित कोड के लिए
के रूप में, कई समस्याएं दिमाग में आते हैं:
- वे पहले से ही एक बड़ी codebase है कि वे का उपयोग कर रखना चाहते हैं। विकास समय पर कटौती का तरीका खिड़की से बाहर सब कुछ फेंकने और दूसरी भाषा में खरोंच से शुरू करने का तरीका है।
- अधिकांश गेम स्टूडियो में अभी भी कुछ स्वायत्तता है, भले ही वे माइक्रोसॉफ्ट के स्वामित्व में हों। यदि वे सी ++ में अपना गेम लिखना पसंद करते हैं, तो क्या माइक्रोसॉफ्ट इसे खत्म कर सकता है? क्या ऐसा करना एक अच्छा विचार होगा? यह निश्चित रूप से डेवलपर्स को बंद कर देगा, और डेवलपर्स को बंद कर दिया आमतौर पर एक अच्छी बात नहीं है।
- प्रदर्शन: हाँ, सी # और .NET पीसी पर बहुत अच्छा प्रदर्शन करता है, लेकिन कंसोल पर, यह एक अलग कहानी है। यह .NET CF का उपयोग करता है, जो कि अन्य चीजों के साथ, एक बहुत ही प्राचीन कचरा कलेक्टर है। इसका जेआईटी कंपाइलर स्पष्ट रूप से बेकार है। .NETCF को अच्छी तरह से ट्यून किए गए देशी कोड को बेहतर प्रदर्शन करने के लिए डिज़ाइन नहीं किया गया है।
- नियंत्रण: जिस तरह से आप आम तौर पर एएए कंसोल गेम लिखते हैं वह कंसोल की पेशकश की जाने वाली सभी चीजों का फायदा उठाना है। प्रत्येक सीपीयू चक्र का इस्तेमाल किया जाने वाला स्मृति के प्रत्येक बाइट को कम से कम माना जाना चाहिए। प्रबंधित कोड बस कम अनुमानित है। जीसी कब चलाता है? किसी भी समय कितनी मेमोरी उपयोग में है? हमें पता नहीं। कंसोल में केवल स्मृति की बहुत सीमित मात्रा होती है। (360 में 512 एमबी आईआईआरसी है। यह आधुनिक गेम के लिए बहुत कुछ नहीं है, और यदि आप बिल्कुल जानते हैं तो उस मेमोरी का कितना उपयोग कर रहा है, तो हेलो 3 जैसे गेम बनाना संभव है)।
- 360 पर अधिकतर सुविधाएं .NET के संपर्क में नहीं आती हैं। कई हार्डवेयर सुविधाओं का उपयोग करने के लिए सी ++ इंटरऑप या असेंबलर की आवश्यकता होती है।
जब ऐसा कहा जाता है, तो उच्च प्रोफ़ाइल पीसी गेम के लिए .NET का उपयोग करना बहुत बेहतर काम करेगा। पूर्ण .NET ढांचे में बहुत बेहतर प्रदर्शन विशेषताएं हैं, और पीसी पर उपलब्ध हार्डवेयर किसी भी तरह से भिन्न होने जा रहा है, इसलिए सटीक स्मृति उपयोग पर कड़े नियंत्रण कम महत्वपूर्ण है।
लेकिन आखिरकार, वे ऐसा क्यों करेंगे? यह एक बड़ा जोखिम होगा, इसके लिए बहुत सारे कोड पुनर्लेखन की आवश्यकता होगी, और वे वास्तव में क्या साबित करने की कोशिश कर रहे हैं? अधिकांश स्टूडियो क्रॉस-प्लेटफ़ॉर्म गेम बनाते हैं, और उनके लिए, .NET कोई विकल्प नहीं है इससे कोई फर्क नहीं पड़ता कि यह कितना शानदार है। वे पीएस 3 पर भी अपना कोड चलाने में सक्षम होना चाहते हैं, या वाईआई, या ....
सी # और एक्सएनए मंच है जो गेम जैसे हेलो के लिए उपयुक्त है? मुझे कोई जानकारी नहीं है, लेकिन यह मेरा पहला सवाल होगा क्योंकि यदि यह उपयुक्त नहीं है तो जवाब है। यदि यह उपयुक्त है तो अच्छा प्रश्न – JoshBerke
मुझे नहीं लगता कि क्यों नहीं। AFAIK XNA प्रबंधित डायरेक्टएक्स के समान है जो अब और नहीं है। –
@ जोश: मैं इसका उत्तर भी जानना चाहता हूं। –