क्या SharpDX अभी तक अपनाने के लिए पर्याप्त परिपक्व है या मुझे अभी स्लिमडएक्स का उपयोग करना शुरू करना चाहिए?


10

मैं XNA में अपने गेम-प्रोजेक्ट को बंद करने वाला हूं क्योंकि मैं जो इकट्ठा कर सकता हूं, उससे विकास खत्म हो रहा है (और यह पहले से ही वर्तमान तकनीक के पीछे है)। इसलिए, मुझे एक नया ढांचा या एपीआई अपनाने की जरूरत है।

मैंने सी ++ को देखने में सिर्फ 2 दिन बिताए हैं और फैसला किया है कि यह वास्तव में मेरे लिए नहीं है - हालांकि मैं डायरेक्टएक्स अपील के लिए कच्ची पहुंच पाता हूं। SharpDX शुरू करने के लिए एक अच्छी जगह की तरह लगता है, लेकिन इसमें कोई दस्तावेज नहीं है और कोई कोड टिप्पणी नहीं है। मुझे लगता है कि यह उपयोग के लिए बिल्कुल तैयार नहीं है।

मुझे उन लोगों की राय में दिलचस्पी है जो या तो या इन दोनों रूपरेखाओं का उपयोग करते हैं, मुझे यह सुनिश्चित करने में मदद करने के लिए कि मुझे कौन सा सीखना चाहिए? किसी भी सलाह के लिए धन्यवाद।


1
बहुत ही संवादी प्रश्न :)। SharpDX शायद SlimDX के रूप में परिपक्व है क्योंकि यह सीधे हेडर से उत्पन्न होता है - जैसे, वह 100% डायरेक्टेड लिपटे तुरंत मिल गया। दोनों पुस्तकालय अनिवार्य रूप से समान हैं; तो आप बस SharpDX के लिए SlimDX नमूनों का उपयोग कर सकते हैं।
जोनाथन डिकिंसन

1
यह संभव है कि उत्तेजना के संदर्भ में सी / सी ++ लेने के लिए आपकी मितव्ययिता वास्तविक समस्या है। जब तक आप प्रबंधित स्तर पर रहते हैं, तब तक आपको असली मांस, IMO नहीं मिलेगा। यह किसी ऐसे व्यक्ति से है जो C ++ में औपचारिक रूप से प्रशिक्षित होने के बावजूद, प्रबंधित भाषाओं द्वारा शपथ लेता है। सिर्फ एक अवलोकन। C ++ बहुत मुश्किल से बचें । यदि आप ऐसा करते हैं, तो यह निश्चित रूप से इस उद्योग में आपके विकल्पों को सीमित करेगा, जबकि रिवर्स निश्चित रूप से सच नहीं है, तथ्य की बात के रूप में यह आपको अन्य उद्योगों (चिकित्सा, वित्तीय, रक्षा) में एक ठोस प्रवेश बिंदु देता है। औसत वेतन वहाँ पर बहुत बेहतर है, FYI करें।
इंजीनियर

मुझे वास्तव में डीएक्स में दिलचस्पी है, और भले ही मैं अपनी परियोजना को या तो स्लिम या तीव्र करने के लिए पोर्ट कर रहा हूं, मैं निश्चित रूप से सुन रहा हूं कि आप क्या कह रहे हैं। और यह संभवतः C ++ सीखने के लिए मेरी अच्छी तरह से सेवा करेगा ताकि मैं उस असुविधा को दूर कर सकूं। मैं यह सोचना चाहता हूं कि अब से 12 महीने बाद अगर मैं ऐसी स्थिति में था जहां मुझे C ++ / Direct X का उपयोग करने की आवश्यकता थी, तो मैं यह करने के लिए चुन सकता था, अगर यह नौकरी के लिए सही उपकरण है।
गेविन विलियम्स

जवाबों:


16

मैं SharpDX का लेखक हूं, इसलिए मेरी सलाह पक्षपातपूर्ण होने वाली है, लेकिन मैं कम से कम आपकी कुछ चिंताओं के बारे में प्रतिक्रिया देना चाहूंगा।

SharpDX प्रलेखन के बारे में, वर्तमान स्थिति बहुत सीमित है, क्योंकि मैं अब तक .NET और नए Win8 OS से पूरे डायरेक्टएक्स एपीआई को सुलभ बनाने के लिए काम कर रहा हूं। जैसा कि मैंने इस तरफ खत्म करने के लिए बंद कर दिया है, मैं एक पूर्ण वेबसाइट और कुछ लेखों पर काम कर रहा हूं ताकि SharpDX की प्रमुख अवधारणाओं को समझाया जा सके, और आप इसे कैसे प्राप्त कर सकते हैं। यह भी ध्यान रखें कि यह परियोजना मुख्य रूप से .NET को .NET लाने के लिए है, इसलिए यह अभी भी निम्न स्तर का एपीआई है। तो आपको यह समझने की आवश्यकता है कि यह कैसे काम कर रहा है, यह समझने के लिए आपको C ++ API के व्यवहार में थोड़ी खुदाई करनी होगी। सौभाग्य से, SharpDX में लगभग हर एक विधि DirectX API में एकल विधि के लिए मैप करती है, इसलिए यह देखना आसान है कि DirectX API की जाँच करके किसी विधि का उपयोग कैसे किया जाए। प्रलेखन प्रणाली जो कि SharpDX 2 के साथ उपलब्ध होगी।

क्या SharpDX एक गेम को विकसित करने के लिए उपयोग करने के लिए तैयार है? संक्षेप में, हाँ।

सबसे पहले, मुझे C # में एक नए 3D इंजन के विकास में भाग लेने के लिए एक जापानी कंपनी द्वारा काम पर रखा गया है, और हम Windows पर प्रतिपादन बैकएंड के लिए SharpDX का उपयोग कर रहे हैं।

दूसरे, मुझे उन कंपनियों के डेवलपर्स से बहुत सारे निजी मेल मिले हैं जो मल्टीमीडिया एप्लिकेशन (गेम, स्तरीय संपादक, ऑनलाइन फोटो प्रकाशन ... आदि से लेकर) को विकसित करने के लिए SharpDX का उपयोग कर रहे हैं। इनमें से कुछ ग्राहक काफी बड़े हैं (दुर्भाग्य से, मैं उन्हें उद्धृत नहीं कर सकता)।

अंत में, कुछ सार्वजनिक ओपन सोर्स प्रोजेक्ट्स अपने मुख्य बैकएंड रेंडरिंग के लिए SharpDX का उपयोग कर रहे हैं (या उपयोग करने जा रहे हैं)। उदाहरण के लिए, डेल्टा इंजन पहले से ही अपने Direct3D11 रेंडरिंग के लिए SharpDX का उपयोग कर रहा है (जो कि Win8 के लिए भी उपलब्ध होगा)। Upcomming ANX प्रोजेक्ट (एक ओपन-सोर्स XNA उत्तराधिकारी) भी प्रतिपादन, गेमपैड और ऑडियो प्रबंधन के लिए SharpDX का उपयोग कर रहा है।

लेकिन SharpDX गेम इंजन बनाने के लिए सड़क पर एक कदम है, और फिर एक गेम है। चूँकि API निम्न-स्तर का है, आप XNA जैसी रूपरेखा के साथ उसी प्रकार की उच्च-स्तरीय सुविधाओं के लिए उपयोग होने की अपेक्षा नहीं कर सकते। लेकिन एक न्यूनतम ढांचे के साथ, आप बहुत सारी चीजें कर सकते हैं।

इसके अलावा, आप C # में पोर्टेबल गेम विकसित करने के लिए एकता जैसे एक अच्छी तरह से स्थापित उत्पाद का उपयोग करने पर विचार कर सकते हैं।


1
ANX के लिए +1। वास्तव में रोमांचक के रूप में मैं वास्तव में XNA की सादगी से प्यार करता हूं (मैं जल्दी से जरूरी कोड की मात्रा के कारण #DX के साथ छोड़ दिया)।
जोनाथन डिकिंसन

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

वास्तव में बहुत पसंद है। मैंने एकता को डाउनलोड किया है। मैंने पहले कभी गेम-इंजन या उस जैसी किसी चीज़ को नहीं देखा है, इसलिए यह देखना दिलचस्प होना चाहिए कि यह क्या कर सकता है, और यह कैसे करता है। मेरे पास मेरे प्रोजेक्ट के फंडामेंटल पहले से ही xna में लिखे गए हैं और यह कोड के 5000-10,000 लाइनों के आसपास के क्षेत्र में कहीं है तो मैं उस कोड का उपयोग करना चाहूंगा यदि मैं कर सकता हूं। लेकिन यह अभी भी पूरी तरह से एक लंबा रास्ता है, इसलिए मुझे लगता है कि अगर मैं एक या दो सप्ताह अलग-अलग ढांचे और इंजनों को देखता हूं तो यह बुरा निवेश नहीं है।
गेविन विलियम्स

इस पोस्ट से पहले ANX के बारे में कभी नहीं सुना था। बहुत दिलचस्पी है कि यह कहाँ जा रहा है। और वैसे भी, आप अपनी पोस्ट के लिंक को अपडेट करना चाह सकते हैं: anxframework.codeplex.com
डेविड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.