मुख्य मुद्दा, जो मैं देख सकता हूं, वह C ++ या Unity3D नहीं है, बल्कि आपको उच्च-स्तरीय समाधान या निम्न-स्तरीय समाधान की आवश्यकता है ।
एक निम्न-स्तरीय समाधान वह है जो आप इनपुट सौंपने, स्मृति के प्रबंधन या मॉडलों को लोड करने की प्रक्रियाओं के साथ गंदा हो जाते हैं। एक उच्च-स्तरीय समाधान है, जो आपको एक साफ पैकेज मिलता है, जैसे यूनिटी 3 डी।
मेरे लिए, Unity3D (या किसी अन्य गेम इंजन) या C ++ का उपयोग करना है या नहीं, यह आपके गेम और प्रोजेक्ट के लक्ष्यों पर निर्भर करता है।
Unity3D का उपयोग करें, यदि विकास का समय जल्दी होना है और / या आपका खेल प्रदर्शन में गहन नहीं है या ग्राफिकल / कम्प्यूटेशनल प्रदर्शन के उच्च अंत पर नहीं है। यदि आप गेम-प्ले पर ध्यान केंद्रित करना चाहते हैं, और जो डिफ़ॉल्ट उपकरण Unity3D प्रदान करते हैं, वह सब ठीक है, तो आप Unity3D का उपयोग करने पर विचार कर सकते हैं
अन्य पुस्तकालयों के साथ C ++, यदि आपके पास लंबे समय तक विकास का समय है, तो खेल को अधिक कम्प्यूटेशनल / ग्राफिकल पावर की आवश्यकता होती है, या कुछ प्रौद्योगिकी को नियोजित करता है जिसे Unity3D शामिल नहीं कर सकता है।
यूनिटी 3 डी के बारे में अच्छी बात यह है कि यह अभी भी स्क्रिप्टिंग भाषाओं को रोजगार देता है जो वास्तविक विश्व विकास (सी # या जावास्क्रिप्ट) को दर्पण करता है। ओओपी और सॉफ्टवेयर इंजीनियरिंग अवधारणाएं जो आप सीखते हैं (एकल, मुखौटा, राज्य मशीनों, सज्जाकार, रचना) को यूएनआई 3 डी में लागू किया जा सकता है। यह कुकी-कटर प्रक्रियाओं की देखभाल करने में मदद करता है जैसे कि संसाधन प्रबंधन, दृश्य ग्राफ, मॉडल लोडिंग, रेंडरिंग, दृश्यों की बचत और आदि। और भी बेहतर, अगर कोई ऐसी कार्यक्षमता है जिसकी आपको आवश्यकता है जो Unity3D प्रदान नहीं करता है, तो आप कर सकते हैं DLL कोडिंग।
वह C ++ कहां छोड़ता है? C ++ एक भाषा है, और कई प्रोग्रामिंग अवधारणाएं हैं जो आप C ++ में करते हैं आप Unity3D, sans मेमोरी मैनेजमेंट या शायद टेम्प्लेट्स (Unity 3.2 के साथ, भाषा चश्मा ने क्लोजर को कवर करने के लिए सुधार किया है, उदाहरण के लिए)।
इसलिए जैसा कि मैंने कहा है, यह वास्तव में C ++ बनाम Unity3D नहीं है। यह "सी ++ प्लस लाइब्रेरीज़ / एसडीके या अपने स्वयं के इंजन रोल" बनाम यूनिटी 3 डी से अधिक है। यह आपके लक्ष्यों और उद्देश्यों पर निर्भर करता है। हाई-एंड गेम्स या गेम के लिए जहां आपको रेंडरिंग पाइपलाइन या इनपुट पर नियंत्रण की आवश्यकता होती है, आप C ++ प्लस इंजन का उपयोग करना चाह सकते हैं जो आपको हुड के नीचे गड़बड़ करने की अनुमति देता है। यदि नहीं, तो मैं 3 डी गेम के लिए मेरी डिफ़ॉल्ट पसंद के रूप में यूनिटी 3 डी के साथ जाता हूं।
हालांकि, यूनिटी 3 डी के साथ ज्ञान हुड अनुभव के तहत नहीं है, लेकिन यह विकासशील खेलों की समग्र प्रक्रिया सीखने के लिए शुरू करने के लिए एक अच्छी जगह है। उदाहरण के लिए, आपको संभवतः रेंडर लिखने और ओपनजीएल में एक मॉडल को लोड करने के लिए अध्ययन के लायक एक सेमेस्टर की आवश्यकता होगी, साथ ही एक बुनियादी परिदृश्य और इनपुट। आप एक दिन से भी कम समय में यूनिटी 3 डी में काम कर सकते हैं।