खेल विकास के साथ कहां शुरू करें? [बन्द है]


65

मैंने पहले इस सूत्र में stackoverflow.com पर पूछा । आरंभिक टिप्पणियों में से एक ने मुझे यहां gamedev.stackexchange.com पर पुनर्निर्देशित किया, इसलिए मैं यहां पुन: पोस्ट कर रहा हूं।

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

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

मेरी पृष्ठभूमि: मैंने कई प्रोग्रामिंग भाषाओं में PHP से लेकर C ++ तक जावा से ASM तक काम किया है। मैं ऐसी किसी भी चुनौती से नहीं डरता, जो नई भाषा में निहित नए वाक्यविन्यास या सीमाओं को सीखने के साथ आती है। हालांकि, मेरे पिछले सभी प्रोग्रामिंग अनुभव, सख्ती से गैर-ग्राफ़िकल हैं और आमतौर पर निष्पादन के दौरान बहुत कम या बेहद सरल बातचीत के साथ। मैंने तार्किक और गणितीय समस्याओं के साथ-साथ रेखांकन समस्याओं को हल करने के लिए व्यापक और शानदार एल्गोरिदम बनाए हैं। हालाँकि हर मामले में इनपुट या तो एक फ़ाइल में परिभाषित किया गया था, एक एचटीएमएल फॉर्म पारित किया, या कंसोल में टाइप किया गया। उपयोगकर्ता के साथ वास्तविक समय की बातचीत कुछ ऐसा है जिसके साथ मुझे कोई अनुभव नहीं है।

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

अवास्तविक एसडीके: ट्यूटोरियल वीडियो यह मानते हैं कि आपको पहले से ही 3 डी मॉडलिंग, ग्राफिक्स इंजन, एनिमेशन इत्यादि का गहन ज्ञान है। "गेटिंग स्टार्टेड" पेज गेम के विकास का कोई औपचारिक विवरण नहीं देता है, लेकिन यह बताता है कि कैसे अवास्तविक इसे कारगर बना सकता है। 'पहले से ही परिचित हैं। एसडीके को डाउनलोड करने और इसे लॉन्च करने के बाद यह देखने के लिए कि क्या उपकरण उतना ही सहज हैं जितना उन्होंने दावा किया था, मुझे लगभग 60 बटन और मेरे 3 डी मॉडलिंग के लिए एक रिक्त शून्य के साथ बधाई दी गई थी। "वॉल्यूम जोड़ें" पर क्लिक करके (मूल क्यूब जोड़ने का प्रयास करने के लिए) मुझे 30 विकल्पों के मेनू के साथ मिला था। पैंटिंग, मैंने संपादक को बंद कर दिया।

क्रिस्टल स्पेस: वेबसाइट यह बताने के बजाय ज्ञानवर्धक लग रही थी कि क्रिस्टल स्पेस ग्राफिक्स के लिए था और साथी सॉफ्टवेयर, सीईएल, ने गेम बनाने के लिए इकाई तर्क प्रदान किया। एक डेमो गेम प्रदान किया गया था, जिसे "CELStart" का उपयोग करके बनाया गया था, गेम प्रोग्रामिंग की जानकारी नहीं रखने वाले लोगों के लिए उनका सरल उपकरण। मैंने यह देखने के लिए गेम लॉन्च किया कि मैं क्या बना सकता हूं। यह कई बार जम गया, मेनू छोटी गाड़ी थी, हजारों ग्राफिकल ग्लिच थे, दुश्मनों ने नुकसान का जवाब नहीं दिया, और जब मैंने खेल को बंद कर दिया तो यह बंद हो गया। उस इंजन पर चढ़ गया।

IrrLicht: ट्यूटोरियल मानता है कि मेरे पास विज़ुअल स्टूडियो 6.0 है (मेरे पास विज़ुअल स्टूडियो 2010 है)। उनके निर्देशों का पालन करते हुए मैं लाइब्रेरी को विजुअल स्टूडियो में ठीक से आयात नहीं कर सका और उन किसी भी फ़ंक्शन को कॉल करने में असमर्थ था जिसका वे उपयोग कर रहे थे। मेरे प्रोजेक्ट के फ़ोल्डर में हेडर फ़ाइलों, क्लास फ़ाइलों और DLL की मैन्युअल रूप से प्रतिलिपि बनाना - प्रोजेक्ट ठीक से संकलित करने में विफल रहा।

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

इसके अलावा- मेरे स्कूल में कक्षाएं लेना एक विकल्प नहीं है। कुछ भी नहीं दिया जाता है।


3
विशिष्ट आवश्यकताओं की तलाश में अच्छा प्रोग्रामिंग पृष्ठभूमि।
विल मार्कॉइलर

6
+1, यह खेल के विकास को शुरू करने के तरीके के बारे में एक सुविचारित और शोधपूर्ण प्रश्न है। इसके अलावा, मैं अवास्तविक एसडीके के बारे में आपके दर्द को महसूस करता हूं।
जेम्स

मैं UDK के लिए Raven67854 के ट्यूटोरियल की जाँच करने की सलाह देता हूँ । वे वीडियो के तहत सूचीबद्ध हैं, लोग उन्हें पसंद करने लगते हैं।
जेसी दोर्से

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

जवाबों:


38

जीडी में शामिल होने पर मैंने ऐसा सवाल पूछा है। यहां कुछ लिंक दिए गए हैं जो आपके लिए रुचि के हो सकते हैं जो मुझे आशा है कि आप अपने उद्देश्य की ओर मार्गदर्शन करेंगे।

संक्षेप में, मैं XNA Game Studioखेल विकास पर पकड़ बनाने के लिए जाऊंगा । फिर, ज्ञान / प्रौद्योगिकी के रूप में आप जो हासिल करना चाहते हैं, उसे आगे बढ़ाना। XNAमुझे स्प्राइट्स के साथ काम करने के बारे में सिखाया, और मुझे अपने सीखने की अवस्था की शुरुआत से ही अपने कुछ ज्ञान को सही तरीके से लागू करने की अनुमति दी, ताकि मैं यह समझने में सक्षम हो सकूं कि मैं अपने खेल को कक्षाओं के उपयोग के लिए कैसे डिजाइन करूं, ताकि मैं काम करते समय कक्षाओं का उपयोग कर सकूं निर्भरता इंजेक्शन और आगे। इसलिए, मैं आपको और इंतजार कर रहा हूं।

  1. खेल, कोई ट्यूटोरियल या लाइक लिखना कहां से शुरू करें?
  2. खेल विकास के मूल सिद्धांत क्या हैं? (दिलचस्प सवाल, IMHO)
  3. UI कोड से भौतिकी और गेम तर्क को अलग करना
  4. वर्गों का उपयोग करके XNA में मेरे स्प्राइट को स्थानांतरित करना

आप क्यों पूछेंगे XNA? बस अपने जावा पृष्ठभूमि के कारण। XNA C # का उपयोग करता है, जो कुछ कई तरीकों पर जावा के समान है, और गेम लूप और सामान को हटाने के लिए एक सरल ढांचा भी है, ताकि आप इस बात पर ध्यान केंद्रित कर सकें कि क्या महत्वपूर्ण है।

मैं वास्तव में आशा करता हूं कि यह आपको आरंभ कर देगा। =)


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

@ सीन: कोई बात नहीं! मैंने एक उत्साही डेवलपर की मदद करने के लिए यह उत्तर पोस्ट किया, जैसे कि मैंने मार्गदर्शन के लिए पूछा था! मैं वास्तव में आशा करता हूं कि आप इसे करने का आनंद लेंगे! मेरी पहली और अभी भी चुनौती एक सरल अर्कानॉइड-जैसे गेम को विकसित करना है जहां मुझे टक्कर का पता लगाने के लिए अपना काम करना है, जबकि प्रत्येक अंतरिक्ष शिल्प, ऊर्जा गेंद और ईंट के लिए मेरी कक्षाएं एक लिखी हैं। फिर, मेरी Game1कक्षा का उपयोग एक गेम कंट्रोलर के रूप में किया जाता है, जो मेरी राय में वह वर्ग है जो अन्य कक्षाओं को नियंत्रित करेगा और बताएगा कि क्या करना है, आदि मैं इस पहलू को थोड़ा समझाता हूं लिंक # 4 और # 5।
विल मार्कॉइलर

मैं बहुत जल्द (कल) xx डाउनलोडेड XNA गेम स्टूडियो 4.0 पर एक और सवाल पूछ सकता हूं, इसे स्थापित किया है .... और आगे क्या करना है, इसके लिए कोई स्पष्ट निर्देश नहीं थे। पूरी आधिकारिक XNA वेबसाइट सिर्फ इतना कहती है कि "विंडोज फोन 7 के लिए गेम बनाएं" - विंडोज के लिए गेम बनाने के बारे में कुछ भी नहीं। मैं सुबह इसका पता लगाऊंगा या यहां पूछूंगा कि क्या मैं नहीं कर सकता। बिस्तर का समय =)
stevendesu

1
Visual Studio का उपयोग करके एक नया प्रोजेक्ट बनाएँ, फिर, XNA चुनें कहीं आप प्रोजेक्ट प्रकार चुन सकते हैं। फिर, विंडोज़ के लिए गेम बनाना शुरू करें! आपका XNA गेम प्रोजेक्ट टेम्प्लेट (नया प्रोजेक्ट) संकलन और विंडोज पर मूल रूप से चलेगा। XNA खेल के विकास के लिए Microsoft पुस्तकालय है, जैसे, आप विंडोज और XBox के लिए गेम विकसित कर सकते हैं।
विल मार्कॉइलर

1
भविष्य के लिए, यह इंगित करने योग्य है कि एक्सएनए अनिवार्य रूप से पदावनत है, लेकिन मोनोगेम पर रहता है। अधिकांश भाग के लिए, एक ही कोड काम करेगा।
मगस

8

आप एकता 3 डी की कोशिश कर सकते हैं , क्योंकि

  • इसे जावास्क्रिप्ट, C # या Boo में प्रोग्राम किया जा सकता है
  • यह यहाँ पर एक अच्छा ट्यूटोरियल है
  • इसकी सीखने की अवस्था उतनी नहीं है
  • वहाँ एकता उत्तर है , जहाँ आपको और भी अधिक संसाधन मिलते हैं।

(डिस्क्लेमर: मैं किसी भी तरह से एकता के निर्माताओं से संबंधित नहीं हूं, मैं सिर्फ इसका उपयोग करता हूं और इसे मूल बातें जानने के लिए एक महान उपकरण पाया गया है)।

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

संपादित करें: एकता के बारे में टिप्पणी की गई है कि उसे "उचित" गेम इंजन के रूप में नहीं देखा जा सकता है, क्योंकि मुझे यह कहते हुए गलत समझा जा सकता है कि - इसलिए नीचे दी गई टिप्पणियों को देखा। यह सुझाव देना मेरा उद्देश्य नहीं था कि एकता को इसके विपरीत, उचित गेम डिज़ाइन करने के लिए इस्तेमाल नहीं किया जा सकता है। मैं इसका उपयोग खुद करता हूं, और मुझे यह पसंद है। ;)


3
इसके बारे में क्या अनुचित है?
lathomas64

मैं भी उत्सुक हूँ।
जेसी दोर्से

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

ठीक है, मैंने लोगों को यह कहते हुए सुना कि "उचित" गेम डिज़ाइन के लिए, एकता को गंभीरता से नहीं लेना है। जैसा कि पहले कहा गया है - मैं इसे स्वयं उपयोग कर रहा हूं, और मैं इससे बहुत खुश हूं। कुछ मामलों में, एकता सिर्फ चीजों को संदिग्ध रूप से आसान बनाती है, मुझे लगता है ...;) मैं केवल हेजिंग कर रहा था, क्योंकि मुझे नहीं पता था कि लोग एकता का उल्लेख करने के लिए यहां कैसे प्रतिक्रिया देंगे। हो सकता है कि यह पतन का कारण बना?
xeophin

@steven_desu: वास्तव में, आपको केवल वेबलेर के लिए एक कंटेनर प्रोग्राम की आवश्यकता है। विंडोज या मैक पर चलने के लिए संकलित गेम्स पूरी तरह से आत्म-निहित हैं।
xeophin

2

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

मैं भी irrlicht के साथ कुछ कठिनाइयों था, ट्यूटोरियल बहुत तारीख तक नहीं हैं, लेकिन आप नमूनों की कोशिश करनी चाहिए थी!

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

और कुछ मैट्रिक गणित को याद करने की कोशिश करें, 3 डी में इसका कुछ उपयोग होगा!


2

मैंने हाल ही में आपके जैसा ही पीछा शुरू किया है। मैं jMonkeyEngine नामक एक शुद्ध जावा इंजन में भाग गया, जिसने मुझे ट्यूटोरियल के शानदार सेट के माध्यम से आगे बढ़ाया है । मुझे नहीं पता कि यह वास्तव में गेम डिज़ाइन को बड़े पैमाने पर समझाता है, लेकिन यह आपको ग्राफिकल मोर्चे पर शुरू करता है।

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

निश्चित रूप से पढ़ने लायक - मुझे इस बात का अच्छा अंदाजा था कि मैं केवल कई घंटों के बाद क्या कर रहा था।


यदि आप इंजन का उपयोग नहीं कर रहे हैं तो भी ट्यूटोरियल एक पढ़ने लायक हैं। कुछ 3 डी मैथ्स पर अच्छे ट्यूटोरियल भी हैं।
DM

2

आपको वास्तव में Flixel का उपयोग करके Flixel http://flixel.org/ मैं अपना पहला "डेमो" गेम बनाना चाहिए। अच्छा समुदाय, अच्छा ट्यूटोरियल।

यह 3 डी नहीं है, लेकिन इसमें कई अच्छी विशेषताएं हैं जो गेम प्रोग्रामिंग वातावरण में आपके पहले कदम को आसान बनाती हैं।

ऐसा है कि: हजारों चलती वस्तुओं को प्रदर्शित करें। वस्तुओं
के बीच बुनियादी टकराव
सरलता के लिए समूह की वस्तुओं को एक साथ
आसानी से उत्पन्न और कणों का उत्सर्जन
करें tilemaps का उपयोग करके गेम स्तर बनाएं
टेक्स्ट प्रदर्शन, गेम को सहेजें,
माउस और कीबोर्ड इनपुट
गणित और रंग उपयोगिताओं को स्क्रॉल करें

और यह वाणिज्यिक उपयोग के लिए मुफ़्त है, जो कि कमाल है।


1

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


1

स्रोत इंजन का प्रयास करें । इस पर गेम विकसित करना आसान है और यदि आप वाल्व कोरपोर्टियन के साथ एक समझौते पर हस्ताक्षर करते हैं तो आप वितरण प्लेटफॉर्म (स्टीम) प्राप्त कर सकते हैं और मुफ्त में अपना गेम बेच सकते हैं।


1

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

मैं FlashDevelop का उपयोग कर रहा हूं, जो विकास के लिए पर्याप्त है।

क्रिस मॉलर का "क्रिएटिंग ए क्षुद्र ग्रह फ्लैश गेम" बिंदु में एक उत्कृष्ट मामला है, जिसमें फ्लैश डेवलपमेंट का उपयोग करके चरण दृष्टिकोण द्वारा एक पूरा कदम है।

टाइल-आधारित खेलों के लिए, आयरनकोडिंग में एक उत्कृष्ट ट्यूटोरियल है ।

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

इसे छोटा रखें ताकि आप इसे समाप्त कर सकें और इसे जारी कर सकें।

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