एक अच्छा ओपन सोर्स गेम किससे सीखना है? [बन्द है]


15

मैं एक ओपन सोर्स गेम का सोर्स कोड डाउनलोड करना चाहता हूं, ताकि मैं गेम आर्किटेक्चर से परिचित हो सकूं। क्या स्रोत कोड वाले किसी खेल के बारे में पता है जो सुपाठ्य है, और आसानी से समझ में आता है?

संपादित करें: कुछ सोच के बाद, मैं एक गेम बनाना चाहूंगा जिसे डेस्कटॉप या एंड्रायड फोन पर 2 डी ग्राफिक्स के साथ खेला जा सकता है।


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

@thedaian मुझे java, C ++, C, javascript, और python
जंपनेट

2
संभावित डुप्लिकेट: gamedev.stackexchange.com/questions/1497/...
Tetrad

मैं थैडियन से सहमत हूं, कम से कम मेरे लिए बेहतर काम किया। वहाँ बहुत अच्छे लेख और किताबें और ट्यूटोरियल हैं। आपको सही लोगों को चुनने के लिए समय निकालना होगा लेकिन यह आपको बाद में समय बचाता है क्योंकि आपको पहले से ही पता होगा कि वे कोड क्यों करते हैं और वे स्रोतों की गुणवत्ता (जो अक्सर बदबू आती है) को पहचानने में सक्षम होते हैं। यदि आप पोर्टेबिलिटी चाहते हैं, तो मैं C / C ++ के लिए जाऊंगा, लेकिन उन प्लेटफार्मों के लिए आप जावा के साथ ठीक कर सकते हैं।
पाब्लो एरियल

1
सामुदायिक विकि?
जरी कोम्पा

जवाबों:


2

मुझे यकीन नहीं है कि आप किस प्रकार का खेल पूछ रहे हैं, लेकिन एक ओपन सोर्स गेम है जिसका नाम OpenTTD है, जिसे c ++ में लिखा गया है। मुझे लगता है कि आप इसे एक अच्छे नमूने के रूप में इस्तेमाल कर सकते हैं।

कुछ विशेषताएं जो इस खेल को विशिष्ट बनाती हैं:

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

--Edit--

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

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


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

@thedaian आप ऐसा कह सकते हैं लेकिन अब हर बार मुझे कुछ नया करने की जरूरत है जो मैंने अभी पढ़ा है जो उनके कोड में लिखा है। अब तक मुझे लगता है कि यह सबसे पठनीय ओपनसोर्स गेम है जो पढ़ने लायक है!
अली

यह भी निश्चित नहीं है कि जब आपने आखिरी बार उनके कोड की जाँच की थी, लेकिन उन्होंने संस्करण 1.0.0 के बाद से इसे साफ कर दिया था
Ali1S232

2

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


1

इसमें मुख्य रूप से क्वेक 3 है या यदि आप कुछ सरल (और 2 डी में) चाहते हैं तो इंडी गेम गिश को देखें । वे दोनों ओपनजीएल का उपयोग करते हैं और क्रॉस-प्लेटफॉर्म भी हैं।

गिश गन्दा तरफ है, हालाँकि।


1

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

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

चियर्स


क्या अंतरिक्ष आक्रमणकारियों के लिए gl windows ही है? वर्तमान में मेरे पास मेरे पीसी पर विंडोज़ स्थापित नहीं हैं। ऐसा नहीं है कि मेरे पास इसकी पहुंच नहीं है, बस यह उतना सुविधाजनक नहीं है।
जम्पनेट

1

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

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


1

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

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

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

जब मुझे पहली बार गेम विकसित करने में दिलचस्पी हुई, तो मैं वास्तव में 2 डी ऑनलाइन आरपीजी में था। इसलिए मुझे एक ऑनलाइन के लिए स्रोत मिला और मैंने उस पर निर्माण शुरू किया। अपनी सुविधाओं को जोड़ना और चीजों को जोड़ना, कीड़े को ठीक करना आदि, जो कुछ साल पहले वीबी 6 में था और अब मैं सी # और एक्सएनए का उपयोग कर रहा हूं और खरोंच से अपना गेम लिख रहा हूं। क्योंकि मैंने खेलों का आनंद लिया, इसने मुझे इसे बेहतर बनाने के लिए, इस पर काम करने के लिए प्रेरित किया। संयोग से, यह भी है कि मैंने अपने गैर-gamedev संबंधित दिन की नौकरी में आज बहुत सारी प्रोग्रामिंग, डीबगिंग और समस्या को सुलझाने की तकनीक सीखी।

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


1

स्टैंड आउट ओपन सोर्स एंड्रॉइड 2 डी प्लेटफॉर्म गेम रेप्लिका आइलैंड है

स्रोत Google Code पर है और विकास लेखक का में लिपिबद्ध किया गया था देव ब्लॉग

यहां एंड्रॉइड के लिए 15 ओपन सोर्स गेम्स की सूची दी गई है जो देखने में उपयोगी हो सकते हैं।


शांत, मुझे उन लोगों की जांच करनी होगी।
जंपनेट


0

स्क्रॉल खेल डेवलपमेंट किट 2 आप वास्तव में 2 डी खेल बनाने और कोड लिखने के बिना एक जीयूआई का उपयोग कर उन्हें खेलने के लिए अनुमति देता है। लेकिन यह आपको उस कोड को देखने और संपादित करने की भी अनुमति देता है जो उस प्रोजेक्ट में एम्बेडेड है जो खेल के पीछे फ्रेमवर्क / इंजन का प्रतिनिधित्व करता है। अधिकांश कोड जीयूआई के माध्यम से उजागर होते हैं, हालांकि इसका एक छोटा हिस्सा उत्पन्न कोड के आधार पर होता है जहां आप स्प्राइट करते हैं और आपके द्वारा बनाए गए नक्शे। हालाँकि यह कोड दिखाई भी देता है यदि आप प्रोजेक्ट बनाते हैं और फिर विजुअल C # एक्सप्रेस में परिणामी फाइलें खोलते हैं। पूरा कार्यक्रम (IDE) स्वयं भी खुला स्रोत है। यह OpenTK लाइब्रेरी (जो इसे C # से OpenGL के साथ इंटरफेस करने के लिए उपयोग करता है) पर बना है, जो ओपन सोर्स भी है।


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