Uinty3D का मुख्य "समर्थक" यह है कि यह तेजी से पागल है। मैं यहां प्रदर्शन के बारे में नहीं, बल्कि विकास की गति के बारे में बात कर रहा हूं। आपके पास:
- एकीकृत परिसंपत्ति पाइपलाइन। संसाधन सबसिस्टम पर समय बिताने की कोई आवश्यकता नहीं है, लिखने और ठीक करने के लिए कोई छोटी गाड़ी आयात नहीं है: बस एक फ़ाइल को फ़ोल्डर में छोड़ दें, और यह काम करता है।
- एकीकृत स्तर के संपादक। स्तर के औजारों पर समय बिताने की जरूरत नहीं है: बस सीधे व्यापार में लग जाएं।
- ग्रेट ट्विकिंग और डीबगिंग समर्थन: आपके सभी गेमप्ले वैरिएबल सही दिखाए जाते हैं जैसा कि आप खेलते हैं, और मक्खी पर भी बदला जा सकता है - और यह सब कोड की एक पंक्ति लिखे बिना। खेल को कभी भी रोकें, या एक समय में कोड एक बयान के माध्यम से कदम बढ़ाएं।
- तैयार घटकों की काफी समझदार पुस्तकालय। प्रतिपादन, ध्वनि, भौतिकी, नियंत्रण - बहुत सारे "बॉयलरप्लेट" कोड पहले से ही लिखे गए हैं।
- स्क्रिप्ट होस्ट के रूप में मोनो। जबकि एक भाषा के रूप में सी # के गुणों के बारे में बहस कर सकता है, मोनो की बेस क्लास लाइब्रेरी कार्यों का खजाना प्रदान करती है। कलेक्शन, I / O, मल्टीथ्रेडिंग, और इन्सानली एक्सप्रेसिव LINQ सभी काफी तेजी से विकास को गति देते हैं।
इसके अलावा, Unity3d कई प्लेटफार्मों पर वास्तव में अच्छा है। निश्चित रूप से, आप विंडोज़ पर .exe गेम नहीं बना सकते हैं और फिर इसे iPhone पर जादुई रूप से "बस काम" कर सकते हैं; लेकिन एकता इससे काफी करीब हो जाती है। क्या आवश्यक है "पोर्टिंग" से अधिक "ट्विकिंग"।
बेशक, कुछ मामलों में यूनिटी 3 डी आदर्श नहीं है। एकता में एकीकृत नेटवर्क मल्टीप्लेयर कुछ लैन पीयर-टू-पीयर प्ले के लिए ठीक है, लेकिन कुछ भी जो केंद्रीय सर्वर की बहुत आवश्यकता है, आपको स्क्रैच से सभी नेटवर्क कोड लिखने की आवश्यकता है। एकता का GUI सिस्टम काफी विचित्र और धीमा है, इसलिए जटिल इन-गेम GUI एक दर्द है। हालांकि, अन्य सभी खेल जीयूआई सिस्टम जो मैंने देखा है वे भी दर्दनाक हैं, इसलिए एकता का यह बुरा नहीं है।
और, ज़ाहिर है, यूनिटी 3 डी ओजीआरई जैसे "गेम इंजन" की तुलना में थोड़ा कम लचीला है, जो केवल एक पुस्तकालय / स्रोत कोड प्रदान करता है। इसका प्रदर्शन बिल्कुल शीर्ष पर नहीं है, और चूंकि आपके पास केवल एक स्क्रिप्टिंग सैंडबॉक्स है, आप इसे सुधारने के लिए कुछ चतुर निम्न-स्तर के हैक का उपयोग नहीं कर सकते। उदाहरण के लिए, यदि यूनिटी का बिल्ट-इन ट्री रेंडर आपको किसी कारण से संतुष्ट नहीं करता है, तो आप अपना एक (अच्छा, आप लिख नहीं सकते हैं, लेकिन यह स्क्रिप्ट के माध्यम से काम करेगा और संभवत: बहुत धीमा और बहुत अधिक परेशानी वाला होगा। )। फिर भी, एकता के साथ किसी भी चीज़ के बारे में ऐसा करना संभव है, जब तक कि आपको प्रदर्शन का थोड़ा सा भी नुकसान न हो।
यूनिटी 3 डी का सबसे बड़ा "कोन", हालांकि, स्रोत नियंत्रण है। जैसा कि पहले ही उल्लेख किया गया है, एकता के अपने एसेट सर्वर की लागत एक बहुत पैसा है। और यह बेकार है, वास्तव में, वास्तव में कठिन है। इसमें ब्रांचिंग भी नहीं है। जबकि यूनिटी 3 डी सैद्धांतिक रूप से 3-पार्टी एससीएम सिस्टम का समर्थन करता है, उनका उपयोग करना भी जोखिम के साथ होता है। मैंने एसवीएन कमिटमेंट के बाद इम्पोर्ट सेटिंग्स "जादुई" परिवर्तन देखा है, या सभी वस्तुओं के पैरामीटर पेरफोर्स का उपयोग करने के बाद गायब हो जाते हैं। इन सभी के आसपास काम किया जा सकता है, लेकिन वैसे भी, यूनिटी 3 डी + स्रोत नियंत्रण = दर्द।
इसलिए, वास्तव में अपने प्रश्न का उत्तर दें। मेरा मानना है कि यूनिटी 3 डी सबसे अच्छा में से एक है, अगर "छोटे" गेम के लिए गेम इंजन का सबसे अच्छा विकल्प नहीं है । खासकर प्रोटोटाइप स्टेज में।
अगर हम एक शैक्षिक परियोजना के बारे में बात कर रहे हैं, तो मैंने कहा, मैं इसके खिलाफ सिफारिश करता हूं। यह जानने के लिए कि गेम कैसे काम करता है, एक को जितना संभव हो उतना निचले स्तर पर लिखना बेहतर है। खेल इंजन एक महान उपकरण हैं; लेकिन अधिकतम लाभ के लिए इसका उपयोग करने के लिए, यह समझना आवश्यक है कि वे कैसे काम करते हैं, और वे इस तरह से क्यों काम करते हैं। और इसे सीखने का सबसे अच्छा तरीका आपका अपना गेम इंजन है - भले ही यह अंत में भद्दा हो।