मैं 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 # में पोर्टेबल गेम विकसित करने के लिए एकता जैसे एक अच्छी तरह से स्थापित उत्पाद का उपयोग करने पर विचार कर सकते हैं।