यूनिटी 3 डी, आप कितना कोड लिखते हैं? [बन्द है]


16

मैं यूनिटी 3 डी में गेम बनाते समय वर्कफ़्लो को जानने के लिए उत्सुक हूं?

क्या यह आपके लिए बहुत सारे कोड उत्पन्न करता है?

मेरी समझ यह है कि आप एकता में खेल का वर्णन करते हैं और तर्क करने के लिए बैक एंड पर स्क्रिप्टिंग करते हैं। जैसे आप कठपुतलियों का वर्णन करने के लिए एकता का उपयोग करते हैं और आप कठपुतली मास्टर के रूप में एक पटकथा भाषा का उपयोग करते हैं।


इसी प्रकार के प्रश्न: gamedev.stackexchange.com/questions/2659/...
Tetrad

2
आप इस प्रश्न को UnityAnswers पर पोस्ट करना चाह सकते हैं । आपको अधिक बेहतर प्रतिक्रियाएँ मिलेंगी क्योंकि यह अधिक एकता-केंद्रित है
जो व्यक्ति

जवाबों:


18

यूनिटी 3 डी में एक गेम इंजन प्लस (काफी अल्पविकसित) 3 डी एडिटर होता है। यह मेष, बनावट, शेड्स, इलाके, कैमरे, एनिमेशन, कण प्रणाली, ऑडियो नमूने और अन्य प्रकार की वस्तुएं प्रदान करता है जो वीडियो गेम में उपयोगी हैं। इसमें PHYSX (Nvidia के स्वामित्व वाला एक स्वामित्व भौतिकी इंजन), और मोनो (सामान्य भाषा रनटाइम, उर्फ ​​.NET का खुला स्रोत कार्यान्वयन) शामिल है।

आप इसका कितना उपयोग करते हैं, यह आपके ऊपर है। आप यूनिटी ऑब्जेक्ट के रूप में अपनी सभी डेटा संरचनाओं का प्रतिनिधित्व कर सकते हैं, यूनिटी के संपादक में अपनी दुनिया का निर्माण कर सकते हैं, भौतिकी को चालू कर सकते हैं, और घटनाओं को कम से कम स्क्रिप्टिंग के साथ अपना पाठ्यक्रम ले सकते हैं। वैकल्पिक रूप से, आप भौतिकी इंजन को बंद कर सकते हैं, अपनी दुनिया का एल्गोरिदम बना सकते हैं, और वस्तुओं के सभी व्यवहार और भौतिकी को स्पष्ट रूप से प्रोग्राम कर सकते हैं।

आप पूरी तरह से मोनो में प्रोग्राम व्यवहार का चयन कर सकते हैं (किसी एक भाषा C #, जावास्क्रिप्ट, या बू का उपयोग करके), या आप इसे किसी अन्य भाषा में लिख सकते हैं और इसे अपनी एकता परियोजना के साथ जोड़ सकते हैं। (खेल वस्तुओं के साथ वास्तविक एकीकरण मोनो के माध्यम से होना चाहिए, लेकिन यदि आप चाहें तो यह काफी पतली परत हो सकती है।)

किसी भी गेम इंजन के साथ वर्कफ़्लो उतना ही होता है। कलाकार मॉडल और बनावट और एनिमेशन बनाते हैं, ऑडियो विशेषज्ञ आवाज़ बनाते हैं, प्रोग्रामर शेड और व्यवहार लिखते हैं।

एकता प्रोग्रामर के समुदाय दोनों पर, बहुत उपयोगी है answers.unity3d.com और forum.unity3d.com । (और शायद स्टैक एक्सचेंज में यहां?)

इसका पता लगाने का सबसे अच्छा तरीका यह है कि इसे आज़माया जाए : मूल संस्करण मुफ्त है, और आपको "प्रो" संस्करण के लिए 30-दिवसीय परीक्षण अवधि मिलती है।


6

यूनिटी 3 डी एक 'ड्रैग एंड ड्रॉप' गेम इंजन की तुलना में रैपर / लाइब्रेरी से अधिक है। यह कोड उत्पन्न नहीं करता है और न ही यह 'ऑफ-द-शेल्फ' लिपियों के साथ आता है।

उदाहरण के लिए, असत्य में एक डिफ़ॉल्ट पहला व्यक्ति कैमरा, चरित्र नियंत्रक, टकराव का पता लगाने और एआई है।

यूनिटी 3 डी में आपका कोई नहीं है। यूनिटी 3 डी से आपको जो मिलता है वह गेम लूप, कंपोनेंट-बेस्ड एंटिटी सिस्टम, एक व्यापक गणित लाइब्रेरी, मीडिया को लोड करने का मतलब है, मेश, कैमरा, तत्काल मोड GUI, शेड्स, रेंडरिंग पाइपलाइन और अन्य निम्न स्तर की कार्यक्षमता को संभालना है। प्लस एक अच्छा संपादक। आपको बस उच्च स्तरीय कार्यक्षमता के बारे में चिंता करनी होगी। उदाहरण के लिए, आपको अभी भी अपना पहला व्यक्ति कैमरा कोड करना होगा (यदि आप डिफ़ॉल्ट का उपयोग नहीं कर रहे हैं)। हालांकि, आपको लुक-ऑन वैक्टर और इस तरह की गणना से निपटने की आवश्यकता नहीं है।

Unity3D आपके गेम के लिए कोई भी कोड उत्पन्न नहीं करता है, सख्ती से (यह आपके गेम को चलाने के लिए कोड उत्पन्न करता है, अधिक सटीक होने के लिए, लेकिन आपके गेमप्ले के लिए कोई भी)

आपको अपने गेम को परिभाषित करने के लिए एपीआई का उपयोग करना होगा। आप उन उदाहरणों को देख सकते हैं जो यूनिटी 3 डी के साथ आते हैं और उन कोड का फिर से उपयोग करते हैं; कुछ पूर्व-परिभाषित स्क्रिप्ट हैं, लेकिन आमतौर पर आपको अपनी आवश्यकताओं को पूरा करने के लिए उन्हें अनुकूलित करना होगा।

आप स्क्रिप्टिंग के माध्यम से गेम बनाते हैं; आप व्यवहार के लिए स्क्रिप्ट लिखते हैं, यूनिटी 3 डी में स्तर को डिज़ाइन करते हैं, और उन व्यवहारों को संस्थाओं (या गेम-ऑब्जेक्ट्स) को सौंपते हैं। यह बहुत लचीला है, लेकिन इसके लिए अभी भी एक खेल लिखने के प्रयास की आवश्यकता है। मैं इसे 3 डी के लिए फ्लैश से तुलना करूंगा।


1
यह कथन गलत है: "असत्य में एक डिफ़ॉल्ट प्रथम व्यक्ति कैमरा, चरित्र नियंत्रक, टक्कर का पता लगाने और AI है। आपके पास
यूनिटी

8
वास्तव में, एकता में इन सभी कार्यात्मकताओं के लिए घटक शामिल हैं, और डाउनलोड करने योग्य प्लगइन्स के रूप में कई और अधिक। विशिष्ट कार्यक्षमता प्राप्त करने के लिए आपको अनुकूलित और कोड करना होगा, लेकिन आप इन घटकों के संयोजन के साथ पूरी तरह कार्यात्मक के करीब आ सकते हैं। यह अवास्तविक के रूप में बाहर fleshed के रूप में काफी नहीं है, क्योंकि आप एक कार्यात्मक बंदूक के साथ शुरू नहीं करते हैं, लेकिन मुझे व्यक्तिगत रूप से लगता है कि सामान्य रूप से (गैर एफपीएस) एकता में एक खेल प्राप्त करना आसान है। इसका एक बहुत शब्दार्थ है - आपको कुछ भी प्राप्त करने के लिए वास्तव में कार्यक्रम करने की आवश्यकता है।
jcurrie33

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

3

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

आपके पास अधिकांश कोड अपने आप हैं। मैंने अनुभव किया कि 2 विभिन्न परियोजनाओं में।


2

फ्लैश के साथ सादृश्य काफी सही है, लेकिन मैं वास्तव में कठपुतलियों के साथ आपके सादृश्य को नहीं समझता हूं।

एकता के बारे में अच्छी बातें हैं:

  • क्रॉस-प्लेटफॉर्म: यह एक बहुत बड़ा प्लस है, मैं इसका बड़ा कारण कहूंगा।
  • उच्च गुणवत्ता वाले इंजन और कार्यान्वयन, मेरा मतलब है एकता गेमबजेक्ट्स आदि का उपयोग करना।
  • खरोंच से एक सरल खेल बनाने के लिए बहुत आसान है, इसलिए यह प्रोटोटाइप बनाने के लिए एक प्लस है।

बुरी बातें:

  • C ++ या C के साथ लिंक नहीं किया जा सकता है, इसलिए आपकी परियोजना केवल एकता पर काम कर सकती है। C # के साथ एक तर्क दे सकता है कि यह XNA पर काम करेगा, लेकिन C ++ अच्छा रहा होगा। इस टिप्पणी के साथ मेरा मतलब है कि यह एक ऐसा उपकरण नहीं है जो अनुभवी पेशेवरों या ऑटोडिडैक्ट्स का उपयोग करेगा, क्योंकि आपके पास अपने आवेदन पर कुल नियंत्रण नहीं है, लेकिन इसका मतलब यह नहीं है कि आप एकता के साथ ऐसा नहीं कर सकते हैं। दूसरी ओर, एक महान विचार और प्रतिभाशाली कलाकारों के साथ एक टीम अनुभवी प्रोग्रामर की आवश्यकता के बिना भयानक सामान कर सकती है।
  • यह काफी नया है, इसलिए स्पष्ट रूप से कोई नहीं जानता कि यह उपकरण कहां ले जाएगा।

मुझे एकता के साथ जो चीज पसंद नहीं है, वह यह है कि ऐसा लगता है कि पूरी मेहनत की गई है, इसलिए प्रोग्रामर बहुत कम मूल्यवान हैं। दूसरी ओर यह लोगों को जल्दी सिखाने के लिए बहुत अच्छा है कि चीजों को तेजी से कैसे बनाया जाए।

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

प्रोग्रामिंग मॉडल एक समाधान का प्रस्ताव करने की अनुमति देता है जो विकास उपकरणों के 3/4 को सूट करता है ताकि यह उन "स्वतंत्र" गेम निर्माताओं के लिए फिट हो। यह एक विशेष टूल को महत्व देता है और यह कलाकारों को भी महत्व देता है, लेकिन प्रोग्रामर (एकता टीम के लोगों को छोड़कर) को नहीं।

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

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


1
खुद को कमेंट करना: प्रो प्लगइन्स भी हैं जो सी ++ में प्रोग्राम करने की अनुमति देते हैं, इसलिए सैद्धांतिक रूप से, यह सी ++ इंजन भी है ...
जोकुन डे

1

एकता के लिए आपको स्क्रिप्ट की आवश्यकता होती है, लेकिन सभी बॉयलरप्लेट्स के बिना। एक ठेठ ओपनगेल गेम में, आपको मैट्रिसेस और कैमरों को पागलों की तरह इनिशियलाइज़ करना होगा। एकता में, आप किसी चीज़ के व्यवहार को बताने के लिए एक स्क्रिप्ट बनाते हैं, फिर इसे व्यवहार करने के लिए किसी वस्तु से जोड़ते हैं।


1

यदि आप के लिए बहुत सारे कोड उत्पन्न करते हैं, तो आप पूर्व-निर्मित कार्यों को शामिल करेंगे, जिनका उपयोग आप टकराव का पता लगाने और रोटेशन की गणना (लाइब्रेरी) के बारे में अपने जीवन को आसान बनाने के लिए कर सकते हैं, हाँ, यह तस्वीर से बहुत कोडिंग लेता है और देता है आपने हाथों में संस्करणों को अनुकूलित किया और जाने के लिए तैयार किया। ज्यादातर कार्य जो आपको सभी बिल्ड में गेम डेवलपमेंट के लिए विशेष रूप से करने की आवश्यकता होगी।

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

यह आपके लिए कुछ भी नहीं लिखेगा, बल्कि आपको उस तरीके से बाहर निकालने में मदद करेगा, जैसा वह सोचता है कि वह सबसे अच्छा है और आप जो चाहते हैं, उसे लिखें।

एक शब्द में, लचीला

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.