क्या मुझे खेल उद्योग में नौकरी करने का बेहतर मौका देने के लिए ओपनजीएल का अध्ययन जारी रखना चाहिए या फिर डायरेक्टएक्स पर स्विच करना चाहिए? [बन्द है]


29

मैं कुछ समय से OpenGL और Linux का उपयोग करके ग्राफिक्स प्रोग्रामिंग सीख रहा हूँ। मैं अधिकांश अवधारणाओं से बहुत परिचित हूं, लेकिन मैं वास्तव में अपने ज्ञान को आगे बढ़ाना चाहूंगा और अंततः खेल विकास, विशेष रूप से खेल इंजन विकास में अपना कैरियर बनाना चाहूंगा।

अब तक यह मुझे लगता है कि अधिकांश खेल स्टूडियो डायरेक्टएक्स का उपयोग करके विंडोज के लिए गेम बनाते हैं।

संपादित करें: मुझे पता है कि OpenGL बनाम DirectX प्रश्न यहां पहले पूछा गया है, लेकिन मुझे उस परिप्रेक्ष्य में उत्तर नहीं मिला है जो मैं चाहता हूं।

संपादित 2: सभी प्रतिक्रियाओं / टिप्पणियों को पढ़ने के बाद मैंने ओपनग्ल / जीएलएसएल के साथ ग्राफिक्स में गहरा गोता लगाने का निर्णय लिया है, लेकिन मैं डीएक्स के साथ खेलने की कोशिश करूंगा, बस एपीआई की एक बुनियादी समझ होनी चाहिए। मैं आपके द्वारा दिए गए उत्तर और जानकारी के लिए सभी को धन्यवाद देना चाहता हूं।


इस सवाल का एक सामान्यीकृत संस्करण programmers.stackexchange.com पर कुछ अच्छे जवाब दे सकता है ...
मैक

1
मुझे मूल रूप से DXGL के ओपनर पॉइंट्स एक OpenGL के लड़के द्वारा सिखाए गए हैं, जिसने कभी भी HLSL नहीं किया है। जब तक आप जानते हैं कि "टुकड़ा shader" का अर्थ "पिक्सेल shader" है, अवधारणाएं बहुत समान हैं; पी
drxzcl

IIRC, DirectX को 8 या 9 के संस्करण में बहुत अधिक OpenGL की तरह बनाया गया था। इससे पहले, DirectX को कभी-कभी अनावश्यक रूप से उपयोग करने में कठिन होने के कारण आलोचना की जाती थी। एपीआई अभी भी अलग हैं, लेकिन सामान्य दृष्टिकोण बहुत समान होना चाहिए। डिस्क्लेमर - मैं कोई विशेषज्ञ नहीं हूं।
स्टीव 314

@ मैके - कैरियर सलाह विषय @ प्रोग्रामर से दूर है। यह शायद बहुत विशिष्ट है, लेकिन सामान्य कैरियर के प्रश्न विषय @ प्रोफेशनल मैटर्स (वर्तमान में 51 क्षेत्र में प्रस्तावित) पर होंगे और कृपया इस एसई का समर्थन करने के लिए प्रतिबद्ध रहें
चाड

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

जवाबों:


28

यह वास्तव में कोई फर्क नहीं पड़ता। दोनों में मुख्य अवधारणाएं समान हैं, खासकर अब जबकि पिक्सेल शेड्स आदर्श हैं। और चूंकि अधिकांश गेम मल्टीप्लायर हैं, वे संभवतः उन विशेषताओं के सबसेट का उपयोग करने जा रहे हैं जो दोनों भाषाओं में समान हैं। जब तक आप glsl या hlsl में shaders लिख सकते हैं, तब तक आप ठीक रहेंगे।

कहा जा रहा है कि, "गेम इंजन डेवलपमेंट" की संख्या बहुत कम है। अधिकांश कंपनियां शेल्फ से कुछ का उपयोग करती हैं। उन पदों के लिए जो मौजूद हैं, उनमें से भी कम प्रवेश स्तर हैं। अधिकांश प्रवेश स्तर के गेम प्रोग्रामर किसी भी ग्राफिक्स-संबंधित कोड (शायद shaders के अलावा) नहीं लिखते हैं क्योंकि यह सब दूर सार है।


1
सबसे अधिक प्रवेश स्तर के प्रोग्रामर क्या करते हैं? बड़े, मध्यम या छोटे स्टूडियो में?
क़ाज़ी इरफ़ान

यह एक अलग सवाल है। gamedev.stackexchange.com/questions/5538/...
Tetrad

1
बस एक और सामान्य उत्तर जोड़ने के लिए, मेरे अनुभव में जूनियर प्रोग्रामर गेमप्ले, ui, hud में शुरू करते हैं और वहां से काम करते हैं, गेमप्ले एक लोकप्रिय प्रवेश बिंदु है।
जूनियरडिवेलपर1208

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

दोस्तों, चलो यहाँ टिप्पणियों में उस विशेष प्रश्न के बारे में एक लंबा धागा शुरू नहीं करते हैं। उन सवालों के पूरी तरह से अच्छे उत्तर हैं जिनसे मैं जुड़ा था।
तेतराड

10

यह सब उस नौकरी पर निर्भर करता है जिसे आप चाहते हैं / प्राप्त करेंगे। आप शायद पीसी बाजार में नौकरी के बारे में सोचते हैं जहां डीएक्स राजा है। बस याद रखें कि अधिकांश एएए कंपनियां कंसोल बाजार के लिए लक्ष्य रखती हैं जहां एपीआई काफी विशिष्ट हैं।

उदाहरण के लिए PS3 में अपने OpenGL ES कार्यान्वयन के लिए मालिकाना एक्सटेंशन है।

ओपन स्पेस मोबाइल स्पेस में बढ़ रहा है। अब यह सभी आधुनिक प्लेटफार्मों पर उपलब्ध है लेकिन विंडोज फोन 7 है।

वर्तमान में केवल OpenGL ES इस स्थान पर उपलब्ध है। लेकिन अधिक शक्तिशाली PowerVR चिप्स OpenGL 4 और DX11 के लिए समर्थन के साथ आ रहे हैं।

आपकी OpenGL स्किल्स गोल्ड हैं। आप एक काम करने के लिए DX को वापस ला सकते हैं जिसकी आवश्यकता है। लेकिन इस बीच याद रखें कि ओपनजीएल उपकरणों और प्लेटफार्मों की मात्रा पर राजा है जहां यह उपलब्ध है।


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


संपादित करें : जैसा कि आप पहले से ही ओपनजीएल से परिचित हैं और शायद शेडर्स आपको ओपनसीएल की कोशिश करनी चाहिए ... इस एपीआई में समानांतर कंप्यूटिंग में अगली बड़ी चीज बनने की क्षमता है।

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


OpenGL एक उद्योग मानक होने के नाते इसने अन्य libs और API को प्रेरित किया। आपको इसके महत्व की उपेक्षा नहीं करनी चाहिए। लेकिन दूसरी तरफ आपको एक चीज पर रोक नहीं लगानी चाहिए और अगर मैं आप थे तो मुझे उच्च स्तर के एपीआई और इंजन पर एक नजर डालनी होगी जो ओपनजीएल और डायरेक्टएक्स को अमूर्त करते हैं।
कोयोट

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

यह एक अच्छी कोशिश का संकेत है;) बुलेट इंजन में कार्यान्वयन पर एक नज़र है। किसी भी तरह, अपनी परियोजनाओं के साथ शुभकामनाएँ।
कोयोट

7

मैं सहमत हूं, कि यह वास्तव में कोई फर्क नहीं पड़ता कि आप कौन सा एपीआई सीखते हैं। बुनियादी अवधारणाओं को जानना महत्वपूर्ण है।

खेल के विकास को देखते हुए, विंडोज एकमात्र लक्ष्य प्लेटफ़ॉर्म नहीं है। जैसा कि मैंने सुना है, Apple एक लक्ष्य मंच के रूप में बढ़ रहा है, लेकिन साथ ही साथ शान्ति भी महत्वपूर्ण है। कंसोल में आमतौर पर अपने स्वयं के विशेष ग्राफिक्स एपीआई होते हैं (मुझे लगता है कि वे ऐसा कर रहे हैं बस हमें परेशान करने के लिए)। जबकि कंसोल API में OpenX के साथ DirectX की तुलना में अधिक है, यह अभी भी बहुत बड़ा अंतर नहीं है।

तुम्हारे लिए जो भी काम करता है, उसके साथ जाओ।


1
XBox शायद DirectX रास्ता सामान करता है ...?
मैकए

हाँ, PS3 PSGL का उपयोग करता है। लेकिन, X360 ने डायरेक्टएक्स का उपयोग किया क्योंकि वे पीसी पर हैं, हालांकि इसके बारे में निश्चित नहीं है, बस एक अनुमान है।
क़ाज़ी इरफ़ान

मुझे एक्सबॉक्स पर अनुभव नहीं है, लेकिन विकिपीडिया के अनुसार इसका एपीआई डायरेक्टएक्स पर आधारित है। PS3 पर, PSGL उपलब्ध API में से केवल एक है।
मृणाल

X360 एक API का उपयोग करता है जो कि DX9 के करीब है, इस तथ्य को समायोजित करने के लिए कुछ क्विर्क है कि इसमें अपेक्षाकृत तेज मेमोरी की मात्रा कम है।
drxzcl

6

एक गेम डेवलपमेंट प्रोफेसर के परिप्रेक्ष्य के बारे में कैसे?

यदि आपके पास OpenGL की मूल बातें हैं, तो हर तरह से DirectX की दुनिया में उद्यम करें (ध्यान दें कि DX में जा रहा है) कि Dx9 अभी भी संगतता कारणों से विकास में उपयोग किया जा रहा है, क्योंकि पुराने प्लेटफॉर्म (विशेष रूप से XP) नए ग्राफिक्स का समर्थन नहीं करते हैं Dx10 और Dx11 में पाइपलाइन। (जो कि Dx9 में शुरू करने की अनुशंसा के रूप में पढ़ना चाहिए और फिर Dx10 में अंतर और फिर 11 के रूप में आप प्रगति करते हैं) जो आपको और अधिक गोल बना देगा।

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

Ogre3D एक ओपन सोर्स रेंडरिंग इंजन है जो ग्राफिक्स सबसिस्टम (OpenGL / DirectX) दोनों को सपोर्ट करता है और कई गेम्स में इस्तेमाल किया जाता है ... क्योंकि सोर्स फ्री में उपलब्ध है आप इसके जरिए खुदाई का आनंद ले सकते हैं और तुलना करके देख सकते हैं कि OpenGL के कॉल्स कॉल के साथ कैसे अलग होते हैं DirectX।

मैं यह भी सिफारिश करूंगा कि क्योंकि आप पहले से ही OpenGL में कुछ समय बिता चुके हैं कि आप WebGL पर प्रहार करते हैं जो ऐसा लगता है जैसे कि यह निकट भविष्य में उड़ाने वाला है।

उम्मीद है की वो मदद करदे!


मैं नहीं कहूंगा कि WebGL भविष्य में कम से कम किसी भी निकट भविष्य में नहीं फूटेगा। बिना किसी प्लगइन के ब्राउज़र पर 3D रेंडर करने का इसका एक और तरीका है।
क़ाज़ी इरफ़ान

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

4

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

http://www.tomshardware.com/news/john-Carmack-DirectX-OpenGL-API-Doom,12372.html

शायद यह विचार करने के लिए एक और विकल्प है कि क्या आप सामान्य रूप से ग्राफिक्स पसंद करते हैं और इसके लिए यह चिंताजनक है कि एम्बेडेड स्पेस में क्या हो रहा है।

मैं लिनक्स और WinCE दोनों का उपयोग करके एम्बेडेड स्पेस में काम करता हूं। मैं पूर्व फोर्ड SYNC वास्तुकार था (6 साल के लिए वहाँ था) और अब मैं जीएम के क्यूई (फोर्ड SYNC के जीएम के जवाब) पर काम करता हूं। Ford SYNC ओपन या डायरेक्टएक्स का उपयोग नहीं करता है। इसके बजाय, फोर्ड ने फ्लैश एंड एक्शन स्क्रिप्ट का विकल्प चुना; फ्लैश हुड के तहत क्या करता है मुझे यकीन नहीं है लेकिन यह नरक के रूप में धीमा है; जेडी पॉवर्स ने इसे खराब रेटिंग दी। GM का CUE सभी लिनक्स और ओपन ES है और हालाँकि GM CUE में एक नया iMX प्रोसेसर है, जो लिनक्स पर ओएनजीसीएल में एनिमेशन का प्रदर्शन चौंका देने वाला है। CUE / ओपनगैल बहुत तेज़ है। फिर से, फोर्ड ने एडोब फ्लैश के साथ अपने सिस्टम को अपंग बना दिया।

इसलिए, यदि आप इसे खेल में बनाना चाहते हैं, लेकिन प्रतिस्पर्धी प्रकृति के बारे में चिंतित हैं, लेकिन फिर भी इस प्रकार के काम से प्यार करते हैं, तो शायद उन विकल्पों को देखें जो आपके फिर से शुरू को व्यापक बनाते हैं। यह मेरा अनुभव रहा है कि, कम से कम एम्बेडेड दुनिया में, WinCE इन सभी चीजों में DirectX का उपयोग नहीं करता है। (WinCE में NT से थोड़ा अलग API है जो उस कारण का हिस्सा हो सकता है)। OpenGL हर जगह एम्बेडेड दुनिया में है और लोग टैबलेट, ऑटोमोबाइल इन्फोटेनमेंट जैसी चीजें अधिक कर रहे हैं, और निश्चित रूप से स्मार्ट फोन ...


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

2

मैं कहूंगा कि शायद यह आपके रेज्यूमे पर अच्छा है कि आप दोनों के साथ काम करने में सक्षम हो सकते हैं, भले ही आप इसमें विशेष हों।

मैं ऐसा इसलिए कहता हूं, क्योंकि किसी भी चीज़ के साथ, यह एपीआई / वाक्यविन्यास ज्ञान से एक निश्चित बिंदु से परे सामान्य तकनीकों के बारे में अधिक है। आपको सामान करने में सक्षम होना चाहिए, और अपना रास्ता पता होना चाहिए, लेकिन आपके पास एपीआई: एस दोनों में सामान के विशाल टुकड़े को लागू करने की आवश्यकता नहीं है। (थॉट्स ओ (एन * एम), जो पैमाने पर नहीं है ...)। एपीआई को थोड़ा जानना, और अलग-अलग tecniques (यानी O (n + m)) को जानना काम करता है, और सहायक होगा।

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

यह वास्तव में किसी भी एपीआई (3 डी या अन्यथा), या किसी भी प्रोग्रामिंग भाषा के साथ समान है।


1

मैंने पाया कि DirectX सीखना कठिन है और इसलिए एक बेहतर कौशल है। Directx को आमतौर पर बोर्ड निर्माताओं से बेहतर समर्थन प्राप्त होता है, हालांकि, Microsoft उन एडवांस का लाभ उठाने के लिए कई अपडेट जारी नहीं करता है (और केवल हार्डकोर गेमर्स के कुछ चुनिंदा उप-समूह वास्तव में उन बोर्ड का उपयोग करते हैं)। खेल के विकास के बारे में, सभी प्रमुख गेम प्लेटफ़ॉर्म अपने स्वयं के मालिकाना ग्राफिक्स इंजन का उपयोग करते हैं ... Xbox -> डायरेक्टएक्स बॉक्स :) 3 डी अवधारणाओं, मेष, प्रकाश, परिवर्तनों आदि को जानना, एक कौशल है जो उन सभी के लिए समान है।


मुझे DX9-ish और "आधुनिक" ओपनग्ल (glBegin का उपयोग किए बिना) के बीच बहुत कम वैचारिक अंतर मिला है। मैं आपके विचारों की सराहना करूंगा कि दोनों में से एक दूसरे की तुलना में "आसान" या "कठिन" क्यों है।
drxzcl

1
मुझे वास्तव में पता चलता है कि ओपनजीएल वास्तव में मूलभूत बुनियादी बातों को उठाना आसान है, लेकिन जैसे ही आप वीबीओ और शेडर्स पर जाते हैं, डी 3 डी बहुत आसान हो जाता है (एक्सटेंशन की कमी इसे व्यापक हार्डवेयर बेस में भी अधिक सुसंगत बनाती है)।
मैक्सिमस मिनिमस

यही मेरा अनुभव भी है, इसलिए प्रश्न।
drxzcl

1

यदि आप एक को जानते हैं तो आप आसानी से दूसरे को उठा सकते हैं।

यदि आप OpenGL जानते हैं तो आप आसानी से स्मार्ट फोन (Android और iPhone) प्लस जीत / लिनक्स / मैक के लिए कार्यक्रम कर सकते हैं।

DirectX केवल Win / Xbox है। इसलिए जब तक आप Xbox को लक्षित नहीं करना चाहते हैं, मैं कहूंगा कि OpenGL के साथ रहें क्योंकि यह अधिक प्लेटफार्मों को लक्षित कर सकता है।


-4

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

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