क्या अजगर में गैर-तुच्छ 2d गेम विकसित करना एक अच्छा विचार है? [बन्द है]


10

मैं 2D स्पेस आरपीजी विकसित करने की योजना बना रहा हूं और मैं इस विकल्प का सामना कर रहा हूं: इसे लिखने के लिए सबसे अच्छी भाषा क्या है? मेरे उम्मीदवार C ++, जावा और पायथन हैं। जाहिर है, मैं इसकी अभिव्यक्ति, विकास की गति और पटकथा समर्थन को जोड़ने की सादगी के कारण अजगर में खेल लिखना चाहता हूं। लेकिन मैं चिंतित हूं:

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

आपके दूसरे प्रश्न के लिए, मुझे पूरा यकीन है कि एक py2app भी है जिसका उपयोग आप तैनाती को काफी आसान बनाने के लिए कर सकते हैं।
थेडियन

1
यदि आप पायथन में ऐसा करने का निर्णय लेते हैं, तो आप यह देखना चाहते हैं कि क्या आप "धीमी" भागों में से किसी का उपयोग कर सकते हैं (लेकिन यह संभव नहीं है)।
ब्रेंडन लोंग

जवाबों:


8

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

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

विंडोज उपयोगकर्ताओं के पास शायद ही कभी पायथन है (सौभाग्य से हमारे पास py2exe है)। मैक ओएस एक्स पर अजगर पुराना हो सकता है और गेम अस्पष्ट अपवाद के साथ क्रैश हो सकता है। क्या पायथन में खेल को लागू करना मुश्किल नहीं होगा?

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

पायथन 3 के लिए पुस्तकालयों की कमी के कारण मुझे पाइथन 2 में खेल लिखना होगा। क्या कुछ वर्षों में पायथन 3 में संक्रमण नहीं होगा जो बहुत दर्दनाक और समय लेने वाला है?

इस बारे में मुझे ज्यादा जानकारी नहीं है, कभी भी पाइथन का इस्तेमाल नहीं किया है। 3. मुझे उम्मीद नहीं है कि पायथन 2.X जल्द ही गायब हो जाएगा, हालाँकि, मुझे भी शक नहीं है कि आपके खेल का जीवनकाल ऐसा होगा कि आप 'घ की जरूरत है अगर तुम नहीं था से अधिक संक्रमण के लिए है जो एक गैर मुद्दा के इस चिंता कुछ बना देता है, करना चाहते हैं।

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


अजगर 2.7 बहुत व्यापक रूप से इस्तेमाल करने के बाद, आप अजगर 3.2 के साथ बहुत कुछ नहीं कर सकते हैं जो आप 2.7 के साथ नहीं कर सकते हैं। यह समय के साथ बदल जाएगा, लेकिन यह भी पुस्तकालय समर्थन करेगा। =)
केन

14

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

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


0

# 3 फिर से, पायथन 2.x कम से कम 5-10 वर्षों के लिए वितरक समर्थन को देखेगा। यदि आप एक हालिया संस्करण (2.7, या संभवतः 2.6) का उपयोग करते हैं तो माइग्रेशन पथ काफी आसान है यदि आप भविष्य-प्रूफ कोड (नई शैली की वस्तु, हर जगह यूनिकोड, आदि) लिखते हैं। दर्द ज्यादातर उन चीजों के लिए है जो पुराने, टूटे हुए व्यवहारों पर निर्भर थे।


पुराने व्यवहारों को पहचानने में मदद करने के लिए जो आपको काटेंगे, अपना गेम चलाएंगे python -3 filename.py, जो उन चीजों के लिए चेतावनी को प्रिंट करेगा जो अब पायथन 3 में समर्थित नहीं हैं
spiffytech
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.