खेल के विकास में शुरुआत करना: क्या XNA एक अच्छा विकल्प है? [बन्द है]


16

लंबे समय के पाठक; पहली बार पूछने वाला:

मैं कुछ समय के लिए खेल उद्योग का हिस्सा बनना चाहता हूं, लेकिन मेरा फिर से शुरू होना सभी बैकएंड का 100% काम है।

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

चूंकि कोई भी मेरे पास नहीं जा रहा है और मुझे खेल उद्योग में नौकरी देने जा रहा है, इसलिए मैंने अपने खुद के खेल लिखने में अपनी टोपी आज़माने का फैसला किया।

मैं समझता हूं कि खेल के विकास में C और C ++ डिफैक्टो भाषाएं क्यों हैं, लेकिन मुझे वास्तव में XNA के पीछे के दर्शन पसंद हैं। जैसा कि मैंने पहले कहा था, मैं C # और C ++ दोनों में निपुण हूं, लेकिन अगर मुझे सही याद है, तो XNA CLR के अनुरूप भाषाओं में काम करता है (शायद सिर्फ C #)।

क्या C ++ के बजाय XNA और C # का उपयोग करके खेल के विकास पर ध्यान केंद्रित किया जाएगा, जिससे खेल उद्योग में नौकरी पाने की मेरी संभावनाएं प्रभावित होंगी? वीबी की वास्तविक प्रोग्रामिंग भाषा नहीं होने की अनुचित प्रतिष्ठा है, और वीबी प्रोग्रामर उस कलंक में फंस जाते हैं। क्या यह ऐसे समुदाय में C # का उपयोग करने का मामला है जिसमें ज्यादातर C ++ डेवलपर्स शामिल हैं?

या खेल के विकास के मूल सिद्धांतों को जो खेल, पारगमन भाषा और प्रौद्योगिकियों को लिखने से सीखा जा सकता है?

जवाबों:


15

मुझे नहीं लगता कि इससे आपके मौके खराब होंगे। C # अधिक लोकप्रिय हो रहा है, खासकर XNA और SlimDX के साथ। मैंने C # और C ++ दोनों का उपयोग किया है, और मुझे कहना होगा कि मैंने XNA को काफी पसंद किया है। यह काम करने के लिए सिर्फ क्लीनर था, लेकिन इतना नहीं कि ऐसा महसूस हो कि आप कुछ भी नहीं कर रहे थे।

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

और अवधारणाएं वही रहती हैं, बस वाक्य-विन्यास अलग हो जाता है। जब तक आप एक निम्न-स्तरीय ग्राफिक्स नौकरी के लिए नहीं जा रहे हैं, तब तक आपको जो करना है उसका लेआउट उसी के करीब होगा (केवल लोड करने के बजाय shader लोडिंग कोड या मेष कैश नहीं लिखना)।


+1: अच्छा जवाब। क्या आपको लगता है कि एक उम्मीद है कि आपके पोर्टफोलियो के टुकड़े बेहतर होने चाहिए क्योंकि आपने XNA का उपयोग किया है? उदाहरण के लिए, मेरे एक हार्डवेयर वर्ग में हमें HC12 असेंबली में अपने डिजाइन प्रोजेक्ट को लिखने या C का उपयोग करने का विकल्प दिया गया था, लेकिन C के साथ, असेंबली में C की प्रोग्रामिंग में आसानी के कारण हमारे प्रोजेक्ट को और अधिक रोचक बनाना पड़ा।
एलन

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

जब तक आप विशेष रूप से एक ग्राफिक्स नौकरी के लिए नहीं देख रहे हैं, तब तक अधिकांश लोग एक पोर्टफोलियो पीस में बहुत अधिक ग्राफिकल पॉलिश की तलाश नहीं करेंगे। कुछ ऐसा बनाएं जो देखने में सुंदर से आकर्षक लगे। इस संबंध में XNA बनाम C वास्तव में तब तक मायने नहीं रखता है जब तक यह मजेदार है।
कोडरेंजर 17

हालांकि अगर आप इसे सुंदर दिखना चाहते हैं, तो XNA के शीर्ष पर सनबर्न जैसे एक रेंडरिंग इंजन का उपयोग करने से बहुत मदद मिल सकती है!
क्रिस रिडेनउर

10

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

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


मुझे वास्तव में आपका उत्तर पसंद है। समान संरचना वाले सभी प्रोग्रामिंग भाषाओं के साथ (ऑब्जेक्ट्स, कंट्रोल स्ट्रक्चर्स ect ...) मुझे लगता है कि आपको उन अवधारणाओं को सीखना चाहिए जो आप के साथ करना चाहते हैं जो आप के साथ सहज हैं। उस बिंदु पर मुख्य अंतर भाषा से भाषा की ओर बढ़ते हुए वाक्यविन्यास, मुख्य घटक और एपीआई होना चाहिए।
जॉन

3

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

खेल अन्य सॉफ्टवेयर उत्पादों के बहुत सारे हैं जिस तरह से बनाए रखा नहीं कर रहे हैं। विशेष प्रभाव उद्योग की तुलना में कम थ्रो दूर कोड बनाया जाता है, लेकिन हम अभी भी शीघ्रता के लिए बहुत से हैक के साथ दूर हो सकते हैं।

बस काम हो गया। अंत में यही खेल विकास के बारे में है।


3

मुझे बताया गया है कि:

  1. कुछ अपवादों के साथ उपयोग किए गए टूल की तुलना में सामग्री काफी महत्वपूर्ण है।

  2. यद्यपि अधिकांश बड़े खेलों का आधार C ++ है, यह इसलिए है क्योंकि उपकरण C ++ में विकसित किए गए हैं। यदि आप टूल को कोड नहीं कर रहे हैं, तो संभव है कि आप C ++ में प्रोग्रामिंग नहीं करेंगे।

संपादित करें: इसके अलावा, कुछ भी (C #, आदि) में पूर्ण डेमो प्रोजेक्ट होने से अधिक कठिन भाषा (C ++, आदि) में कुछ अधूरा होने से बेहतर है।

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