यूनिटी 3 डी जैसे इंजन को शुरुआती लोगों के लिए ओपनजीएल जैसी मूल लाइब्रेरी पर क्यों जोर दिया गया है? [बन्द है]


25

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


15
दो शब्द: त्वरित संतुष्टि। आप बहुत कुछ जाने बिना एकता के साथ कुछ "उपयोगी" प्राप्त कर सकते हैं, जबकि एक ओपनगेल ऐप प्राप्त करने में काफी कुछ कोड लाइनें और विस्तृत श्रृंखला की अवधारणा समझ में आती है।
जरी कोमप्पा

5
शायद हम इसे केवल इस एक धागे में समझा सकते हैं और सभी "मुझे किस तकनीक का उपयोग करना चाहिए" सवाल हमेशा के लिए दूर हो जाते हैं। भी मैं एक गेंडा चाहते
jhocking

8
"अधिकांश जटिल खेलों के लिए कस्टम इंजन की आवश्यकता होती है" - वास्तव में, अवास्तविक इंजन की तरह स्टॉक इंजनों पर आश्चर्यजनक रूप से बड़ी संख्या में सफल एएए गेम बनाए जाते हैं ।
फिलिप

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

यह सिर्फ गामासूत्र पर दिखाया गया है, और जबकि यह सीधे इस सवाल का जवाब नहीं है, यह प्रासंगिक है: gamasutra.com/blogs/ChrisDeLeon/20140426/215519/… - विशेष रूप से, यह आपके द्वारा बनाई गई परियोजना के लिए बहुत कठिन होगा w / OpenGL को एक 'मामूली' पहली परियोजना होना चाहिए।
स्टीवन स्टैडनिक

जवाबों:


30

मुझे लगता है कि आपने इस प्रश्न का उत्तर पहले ही दे दिया है। आपने कहा "मैं 3D गेम में अभी शुरुआत कर रहा हूं" । आगे आपने कहा "... यूनिटी 3 डी और इसका उपयोग फीचर और टूल्स में बनाया गया है, जो मुझे ओपन कोड का उपयोग करने के लिए खुद को कोड करना होगा"

अनिवार्य रूप से इसका मतलब है कि यदि आप अकेले ओएनजीसीएल का उपयोग कर रहे हैं, तो आप एक गेम इंजन लिखने जा रहे हैं, फिर, संभवतः वर्षों बाद, अपना गेम लिख रहे हैं। यदि आप किसी खेल पर ध्यान केंद्रित करना चाहते हैं, तो अपने पास उपलब्ध संसाधनों का उपयोग करके आपको उस लक्ष्य के जितना संभव हो उतना करीब ला सकते हैं। एक गेम इंजन का उपयोग करना एक खेल बनाने के लिए अपने प्रयासों पर ध्यान केंद्रित करने का सबसे अच्छा तरीका है, एक गेम बनाने के लिए आवश्यक सभी सामान लिखने के बजाय।

इस संबंधित प्रश्न को देखें: लाइब्रेरी और इंजन के बीच क्या अंतर है और यह एक गेम फ्रेमवर्क बनाम गेम इंजन क्या है?


तो OpenGL सिर्फ ग्राफिक्स के लिए है और unity3d एक पूर्ण ढांचा है जिसमें ग्राफिक्स के साथ-साथ मेरे खेल के लिए भौतिकी की आवश्यकता है?
अमन ग्रोवर

1
एकता इससे बहुत अधिक है, लेकिन हां यह बहुत अंतर है।
झिंगिंग

3
@AmanGrover: यह भी महसूस करें कि GL के साथ "बस ग्राफिक्स के लिए" वास्तव में "बस GPU पर कमांड सबमिट करने के लिए है।" ग्राफिक्स के सभी वास्तविक परिश्रम अभी भी प्रोग्रामर द्वारा किए जाने हैं, जबकि एकता में सभी महत्वपूर्ण ग्राफिक्स विशेषताओं और एल्गोरिदम शामिल हैं और उपयोग करने के लिए तैयार हैं।
शॉन मिडिल्डिच

2
इंजन न लिखें, गेम लिखें। यही मुझे बताया गया है। जब आप वास्तविक गेम बना रहे हों, तो मेरा मतलब है कि कोई गेम इंजन बनाएं। तो यह है कि मैं बाइट से असहमत हूं।
LaVolpe

28

क्योंकि शुरुआती, परिभाषा से, पता नहीं कि वे क्या कर रहे हैं

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

यह माना जाता है कि ज्यादातर लोग पूछते हैं "मैं एक खेल बनाना चाहता हूं, मुझे क्या उपयोग करना चाहिए?" प्रश्न वास्तव में एक खेल बनाना चाहते हैं (अन्यथा उन्होंने एक अलग सवाल पूछा होगा, निश्चित रूप से?) तो इसका उत्तर प्रश्न के अनुरूप है, और पहले से मौजूद टूलकिट, फ्रेमवर्क या इंजन का उपयोग करने से उन्हें उस महत्वाकांक्षा को प्राप्त करने में मदद करने का एक तरीका है एक UBO या glUniform कॉल एकल मैट्रिक्स को अद्यतन करने के लिए बेहतर है या नहीं, इस बात से अधिक विचलित हुए बिना।

यह सब एक समय में एक कदम उठाने, सीखने की प्रक्रिया को आसान बनाने और आपको इसके अंत में कुछ पुरस्कृत करने के बारे में है। एक खेल बनाने के लिए सीखने की कोशिश करना और एक ही समय में एक परिपक्व और शक्तिशाली 3 डी एपीआई का सही ढंग से उपयोग कैसे करना है, शायद एक शुरुआत के लिए बहुत अधिक है। यह धनात्मक-क्रुगर प्रभाव ऋणात्मक अनुमानों को घटा देता है। आप नहीं जानते कि आप क्या नहीं जानते हैं, इसलिए आपके पास वास्तव में किसी भी तरह की यथार्थवादी तस्वीर नहीं है जो आप ले रहे हैं।

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


22

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

इस तरह की बात का फैसला करते समय वास्तव में कोई नियम नहीं है। उस तरह के प्रश्न में आपके द्वारा सुनी जाने वाली अधिकांश प्रतिक्रियाएं राय हैं, और उनमें से बहुत कम आपके अपने प्रोजेक्ट और कौशल सेट के लिए पूरी तरह से प्रासंगिक होंगी।


धन्यवाद, और हां, मैं इस क्षेत्र में नौकरी की तलाश कर रहा हूं, और इसलिए मैं ओपनजीएल के साथ जाऊंगा।
अमन ग्रोवर

9
मैं दृढ़ता से असहमत हूं कि 'नंगे' ओपनगेल के साथ काम करने से खेल उद्योग में किसी को तोड़ने के लिए अधिक मूल्यवान होगा। एकता एक आधुनिक, अपेक्षाकृत परिपक्व खेल इंजन का एक उत्कृष्ट उदाहरण प्रदान करता है; कार्यक्षमता को समझना जो इसे प्रदान करता है (सीखने की दिशा में एक आँख के साथ आप खुद को समान कार्यक्षमता कैसे प्रदान कर सकते हैं) खेल के विकास की प्रक्रिया को समझने का एक शानदार तरीका है, जबकि ओपनगेल किसी भी सार्थक अर्थ में खेल-विशिष्ट होने से बहुत दूर है।
स्टीवन स्टडनिक

यह सिर्फ यह दिखाने के लिए जाता है कि वास्तव में इन चीजों के बारे में कोई नियम नहीं है, सिर्फ राय। यह सब निर्भर करता है कि आपको क्या चाहिए / क्या चाहिए।
झॉकिंग

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

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

6

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

एक शुरुआत के रूप में आपका लक्ष्य पहले से मौजूद कैरिज और उनके डिजाइनों का अध्ययन करना चाहिए। खिड़की से बाहर सब कुछ फेंकने और खरोंच से शुरू करने का कोई मतलब नहीं है। पहले जानें कि पहले से मौजूद क्या है और इसका गहन ज्ञान प्राप्त करें। यदि आप नहीं करते हैं, तो आप इसकी सीमाओं के बारे में कैसे जानते हैं और यदि आप सीमाओं को नहीं जानते हैं, तो आप उनके माध्यम से कैसे तोड़ सकते हैं? कुछ ऐसा औसत दर्जे का बनाने में क्या मतलब है जो बेकार है और जो पहले से उपलब्ध सभी जीवंत मौजूदा साधनों से अनभिज्ञ है?

एक खेल खेल देव के कदम imho हैं:

  1. एक आधुनिक रूपरेखा / इंजन में महारत हासिल करें और इसकी गहरी समझ प्राप्त करें (यह आपको गेम डिजाइन, ग्राफिक्स और ओपनजीएल के विभिन्न पहलुओं के बारे में जानने में मदद करेगा, सभी नहीं है)।
  2. इसके साथ एक छोटा खेल बनाएं और इस प्रक्रिया में अधिक जानें।
  3. इंजन में बाधाओं और सीमाओं का सामना करें।
  4. विषय के बारे में अधिक जानें।
  5. उन क्षेत्रों को बेहतर बनाने के लिए काम करें जिन्हें आपको सुधारने की आवश्यकता है।

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

सबसे बुरी बात यह है कि इस तरह का दृष्टिकोण रखना आसान नहीं है क्योंकि इसमें संतुष्टि नहीं है इसलिए आप कच्ची इच्छा शक्ति पर चल रहे हैं जो वैज्ञानिक रूप से मानव के लिए सीमित संसाधन साबित हुआ है। आपको कुछ ऐसा करने की आवश्यकता है जो दैनिक संतुष्टि प्रदान करता है या शायद आप इसे बनाए रखने में सक्षम नहीं होंगे।

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


4

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

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

बेशक, अभी भी ग़लतफ़हमी है, क्योंकि बहुत सारे फीचर्स मौजूदा इंजनों में आउट-ऑफ-द-बॉक्स मौजूद नहीं हैं, कि उन्हें उस इंजन में बिल्कुल भी लागू नहीं किया जा सकता है, लेकिन यह आमतौर पर गलत है।

ध्यान रखें कि कुछ सबसे नवीन आधुनिक खेल, जैसे पोर्टल और एंटिचम्बर, मौजूदा इंजनों का उपयोग करके बनाए गए थे। कुछ बल्कि जटिल ऑनलाइन गेम, जैसे Aion और TERA को मौजूदा इंजनों का उपयोग करके बनाया गया था। Bioshock Infinite और Thief जैसे कुछ सबसे सुंदर गेम मौजूदा इंजनों का उपयोग करके बनाए गए थे। और, बेशक, कुछ नहीं थे। लेकिन बात यह है: कुछ भी नहीं मैंने कभी भी एक कस्टम इंजन की आवश्यकता देखी है ।

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


1
-1। खेल उद्योग के बारे में बहुत बड़ा दावा है। उनमें से ज्यादातर गलत हैं। काश मैं के लगभग एक दर्जन के साथ अपनी पोस्ट छिड़क कर सकता citation neededरों
पांडा पजामा

1
@PandaPajama मेरे जवाब में खेल उद्योग के बारे में केवल एक ही दावा है। यदि यह आपको बहुत परेशान करता है, तो आप इसे सही करने के लिए स्वागत करते हैं या इसे पूरी तरह से हटा भी सकते हैं।
टीसी

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

@PandaPajama दीक्षित, मेरा संपादन देखें मैंने केवल यह कहा है कि यह उनके लिए सामान्य रूप से अधिक व्यवसायिक समझ पैदा कर सकता है, जिसमें बजट का कारक भी शामिल है और जो कुछ भी उनके निर्णय को आकार देने में मदद करता है, वह बताता है कि यह मौजूदा इंजनों की तकनीकी सीमा नहीं हो सकती है।
TC
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.