एक पेशेवर गेम प्रोग्रामर के पास कौन सा बुनियादी कौशल सेट है? [बन्द है]


11

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

कुछ कहेंगे C ++ अच्छा है, जबकि कुछ कहेंगे JAVA बेहतर हो सकता है, जबकि अभी भी कुछ लोग कहेंगे कि कुछ अन्य भाषा उर-भाषा है, जैसे Python, Lua, UnrealScript इत्यादि, यह भी सुझाव दिया जाता है कि किसी को ज्ञान होना चाहिए अवास्तविक, टोक़, ब्लेंडर, पांडा, आदि जैसे इंजन और ओपनजीएल, एआई, टकराव का ज्ञान का ज्ञान आवश्यक है। मैंने एंड्रॉइड एसडीके का उपयोग करके एक गेम भी बनाया है।

जो मैं पूछना चाहता हूं वह है:

  • एक पेशेवर गेम प्रोग्रामर के पास कौन सा बुनियादी कौशल सेट है? क्या यह कोई 1 प्रोग्रामिंग भाषा + 1 स्क्रिप्टिंग भाषा + 1 गेम इंजन ज्ञान + ओपनजीएल है? (ओह !!)
  • अगर मैं गेमप्ले प्रोग्रामर या एआई प्रोग्रामर के रूप में गेम इंडस्ट्री में प्रवेश करना चाहता हूं तो क्या मैं अपने वर्तमान कौशल और पोर्टफोलियो (जैसा कि ऊपर कहा गया है) के साथ मिल सकता हूं?
  • क्या खेल विकास के लिए एक प्रोग्रामिंग भाषा सीखना पर्याप्त है?

कोई भी दिशानिर्देश मददगार होगा।

जवाबों:


6
  1. आपको कम से कम एक प्रोग्रामिंग भाषा के साथ कुशल और सक्षम होना चाहिए। ऐसा करने से आपको अन्य भाषाओं को आसानी से चुनने में मदद मिलेगी। आप जिस प्रकार की नौकरी पर आवेदन कर रहे हैं, वह इस बात पर निर्भर करता है कि आपको किस भाषा को हाथ से पहले जानना चाहिए। पीसी और कंसोल पर जारी अधिकांश ट्रिपल ए खिताब सबसे अधिक संभावना सी ++ में विकसित किए जाएंगे। दूसरी ओर मोबाइल एप्लिकेशन और गेम सबसे अधिक जावा (Google एंड्रॉइड और अन्य फोन) या ऑब्जेक्टिव-सी (आईफोन) का उपयोग करेंगे। यदि आप डेवलपर्स वेबसाइटों पर सॉफ़्टवेयर इंजीनियरों के लिए नौकरी लिस्टिंग पर एक नज़र डालते हैं, तो यह आमतौर पर उल्लेख करेगा कि आपको किस भाषा का अनुभव होना चाहिए। उदाहरण के लिए, "C ++ में प्रवीण और जानकार" या "कम से कम दो साल के लिए C ++ के साथ अनुभव।" स्क्रिप्टिंग भाषा सीखने से आपको कोई नुकसान नहीं होगा। इससे आपको ही फायदा होगा। सीखना हमेशा लाभ देता है, और कभी भी दर्द नहीं होता है। आपको किसी भी गेम इंजन का काम करने का ज्ञान होने की आवश्यकता नहीं है, लेकिन यदि आप उस कंपनी के लिए आवेदन कर रहे हैं जो उस विशिष्ट इंजन का उपयोग करता है, तो यह संभवतः आपको फिर से शुरू करने में मदद करेगा। यदि आप स्रोत इंजन के विशेषज्ञ हैं, लेकिन आप आईडी सॉफ्टवेयर पर लागू होते हैं और आईडी तकनीक इंजन के बारे में कुछ नहीं जानते हैं, तो यह वास्तव में सुपर सहायक नहीं है (लेकिन लाभकारी कारण सीखना हमेशा फायदेमंद होता है)।

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

  3. मुझे लगता है कि किसी एक भाषा को जानना और उसका कुशल और सक्षम रूप से उपयोग करना 5 भाषाओं को जानने से बेहतर है और मुश्किल से ही उनका उपयोग करना जानते हैं।

डिस्क्लेमर: कभी भी उद्योग में काम नहीं किया, ये सिर्फ मेरी राय है जो गेम प्रोग्रामिंग जॉब्स के बारे में कई थ्रेड्स और लेखों को पढ़ने के बाद बनाई गई हैं, जो कि मैंने सोचा था कि सबसे समझदार लेख / राय जो मैंने पढ़ी हैं, के आधार पर बनाई गई हैं।


7
मैं बुलेट पॉइंट 1 को "एक प्रोग्रामिंग भाषा का ज्ञान जो पॉइंटर्स का उपयोग करता है " के साथ बढ़ाना होगा । एक भाषा के साथ क्या हो रहा है, यह समझने के लिए पॉइंटर्स एक ऐसी मूलभूत आवश्यकता है जो कभी भी उनके साथ अनुभव नहीं होने वाली भाषा के लिए एक बहुत बड़ा नुकसान हो सकता है। सी ++ गैर-वेब-गेम के लिए बेहद प्रचलित है, इसलिए आप वहां भी शुरू कर सकते हैं।
तेतरीड

@ShrimpCrackers आप जानते हैं कि आप संपादक का उपयोग करके वास्तविक "बुलेट पॉइंट" बना सकते हैं , है ना? ;)
बेन

आपको कम से कम एक प्रोग्रामिंग भाषा जानने के लिए दिखाना चाहिए जो व्यापक रूप से उद्योग में उपयोग नहीं किया जाता है, लेकिन कुछ दिलचस्प ख़ासियतें हैं: यह संचार करता है कि आप अवसर पर ब्याज के कारण सीखते हैं, कि आप एक बहुभाषाविद हैं जो विभिन्न दर्शन / दृष्टिकोणों को समझते हैं और आप (उम्मीद है कि ) दोनों दुनिया के सर्वश्रेष्ठ विलय।
FxIII

2

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

  • टीम के माहौल में एक साथ काम करने की क्षमता। बिल्डिंग गेम लोगों की एक असाधारण राशि लेता है, बस कुछ एएए गेम्स में आजकल क्रेडिट पढ़ने में 10+ मिनट लगते हैं, अगर आप लोगों के साथ अच्छा काम नहीं कर सकते हैं और आपका लक्ष्य अन्य लोगों के साथ काम करके एक महान गेम बनाना है तो मैं डर यह सही उद्योग नहीं है। यह उन नरम कौशल में से एक है जो आमतौर पर अन्य लोगों के साथ परियोजनाओं पर काम करने से समय के साथ विकसित होता है।
  • आप जो करना चाहते हैं, उसे पाएं। यह एक तरह से ओपन एंडेड है लेकिन यह पता करें कि आपको गेम डेवलपमेंट के बारे में क्या पसंद है और इसे पूरा करने के लिए आपको किन स्किल्स की जरूरत है। मुझे पता है कि यह एक ऐसा उत्तर है जिसकी आप तलाश कर रहे हैं, लेकिन मैं उन सभी कौशलों को तोड़ सकता हूं, जिनके लिए आपको एक इंजन डेवलपर, ग्राफिक्स डेवलपर या एक गेमप्लेयर डेवलपर की आवश्यकता हो सकती है, लेकिन आप बहुत सारी जानकारी बहुत आसानी से ऑनलाइन पा सकते हैं। आपके कौशल में बहुत ही बारीकी से टाई करने की आवश्यकता है जो आप में रुचि रखते हैं। Ex: यदि आप वास्तव में सर्वर साइड विकास और इसके विपरीत में रुचि रखते हैं, तो ओपनजीएल और डायरेक्टएक्स के अंदर और बाहर जानने के बारे में चिंता न करें।
  • निम्न स्तर की भाषा में कुशल बनें हालांकि उपरोक्त कहा जा रहा है, मैं अन्य पोस्टरों से सहमत हूं कि निम्न स्तर की भाषा सीखने के लिए एक अच्छा विचार है। मुझे पता है कि जब मैं C # से C ++ में गया तो मैंने बहुत कुछ सीखा कि C # का जादू कैसे काम करता है, यह वह ज्ञान है जो आपको भाषा की परवाह किए बिना कंप्यूटर के साथ प्रभावी ढंग से संवाद करने की एक अच्छी समझ देता है।
  • कंप्यूटर आर्किटेक्चर को समझें - इससे मेरा मतलब यह नहीं है कि कंप्यूटर आर्किटेक्चर के हर हिस्से को समझने के लिए आपके पास CE या EE की डिग्री होनी चाहिए, लेकिन मेमोरी, सीपीयू और जीपीयू कैसे काम करते हैं, इसकी मूल बातें जान लें। खेल के विकास के क्षेत्र के बावजूद आप इसमें जाते हैं, कम से कम यह काम कैसे होता है, इसकी समझ रखना फायदेमंद होगा। यदि आप ग्राफिक्स प्रोग्रामिंग या इंजन प्रोग्रामिंग में कूदना चाहते हैं तो आपको इस स्थान पर और भी अधिक समझने की आवश्यकता होगी।

5
जब आप लोग C ++ को निम्न स्तर की भाषा कहते हैं, तो आप बहुत बूढ़ा महसूस करते हैं
dreta

@dreta मैं वह बूढ़ा नहीं हूं और मैं इसे निम्न-स्तरीय भाषा के रूप में नहीं देखता। संभवतः C ++ का पहली भाषा होने के नाते मुझे प्रयोग करना है।
पॉल मंटा

2

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

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

तो अपने आप को भविष्य में प्रूफ करने के लिए एक चीज सिर्फ "एक भाषा सीखना" नहीं है, बल्कि नई भाषाओं को सीखने के लिए कैसे सीखना है। एक बार जब आप 3 भाषाओं में कुशल हो जाते हैं, तो आप पाएंगे कि एक नया चुनना इतना बुरा नहीं है। अधिकांश मुख्य घटक समान हैं, वैसे भी - हर भाषा में चर, सरणियाँ, लूप, सशर्त और इसी तरह से हैं, इसलिए यह सिंटैक्स सीखने के बारे में है।

इसका दूसरा भाग प्रोग्रामिंग और कंप्यूटर विज्ञान की मुख्य अवधारणाओं को समझना है। मेमोरी मैनेजमेंट, पॉइंटर्स, रिकर्सन आदि को समझें। यदि आप अवधारणाओं को समझते हैं, तो आप उन्हें किसी भी भाषा में लागू कर सकते हैं।

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


1

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

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

पिछले नहीं बल्कि कम से कम, हार्डवेयर के बारे में थोड़ा जानकर, विशेष रूप से GPU को चोट नहीं पहुंचेगी!


0

सामाजिक खेलों की प्रोग्रामिंग के लिए मुख्य कौशल हैं जो केवल आवश्यक हैं।

  1. प्रोग्राम एक्शन स्क्रिप्ट (आप एक एलिप्सी एनवायरनमेंट और एक svn का उपयोग कर सकते हैं), यह गेम के फ्रंट एंड के लिए उपयोग किया जाता है (वेब ​​पेज)

  2. कार्यक्रम जावा (जो कि एक उपयोग svn ग्रहण पर भी किया जा सकता है), इसका उपयोग वेब पेज के अनुरोधों को लेने के लिए सर्वर साइड क्रियाओं के लिए किया जाता है।

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