क्या माणिक खेल के विकास के लिए एक उपयुक्त भाषा है? [बन्द है]


33

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

जवाबों:


47

रूबी (या पायथन) के प्रति मेरी कोई प्राथमिकता नहीं है, मैं खुद एक जावा व्यक्ति हूं। लेकिन कैसे अज्ञात रूप से रूबी किसी तरह "गेम के लिए वास्तव में नहीं है" और पायथन है, इस बारे में अज्ञात जवाब। मुझे उम्मीद है कि वह स्पष्ट करेंगे।

मुझे पता है कि Pygame मौजूद है और आसपास रहा है, और मैं मानता हूं कि Python के पास Ruby की तुलना में बड़ा उपयोगकर्ताबेस है। लेकिन ईमानदार होने के लिए, उनमें से कोई भी भाषा के लिए "खेल के लिए" जैसा नहीं लगता है। न तो जावा, और यह मेरी पसंद की खेल प्रोग्रामिंग भाषा है। (और जब मैं "पसंद का" कहता हूं, तो मुझे पसंद से मतलब है , इसलिए नहीं कि यह स्कूल में पढ़ाया जाता है या क्योंकि यह ऐसा कुछ है जिसे मैं "जानता हूं")। और वास्तव में, "गेम्स के लिए" एक भाषा क्या है? खैर, गति एक कारक है, और जाहिर है कि इसमें ग्राफिक्स और अन्य गेम सिस्टम (ऑडियो, इनपुट, आदि) के लिए पुस्तकालय होना चाहिए।

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

दूसरा पहलू यह है कि क्या गेम बनाने के लिए तकनीक है; क्या यह स्क्रीन पर ड्राइंग का समर्थन कर सकता है और इनपुट एकत्र कर सकता है और ऑडियो चला सकता है। रूबी ये सब कर सकती है। वास्तव में इस संबंध में अच्छी संख्या में विकल्प हैं। RubyForge पर एक रूबी- ओपेंग्ल पैकेज है जो रूबी को OpenGL समर्थन देगा (या यह डिफ़ॉल्ट रूप से शामिल हो सकता है?)। वैकल्पिक रूप से, चिंगू "लाइटनिंग फास्ट ओपनजीएल त्वरित 2 डी ग्राफिक्स" प्रदान करता है! इसके मुखपृष्ठ के अनुसार; यह गोसु के शीर्ष पर अतिरिक्त सुविधाओं का निर्माण करता है , जिसे आप चुन सकते हैं कि यदि चिंगू आपके लिए बहुत अधिक है। या 3 डी ग्राफिक्स के लिए, यदि आप रूबी- ऑपेंगल का उपयोग नहीं करना चाहते हैं, तो G3DRuby का प्रयास करें , "कई अधिक उन्नत ओपनग्ल फीचर के लिए रैपर कक्षाओं का एक बहुत साफ सेट"। क्या आप वहां मौजूद हैं'Rubygame , जिस पर मुझे अधिक जानकारी नहीं मिल रही है, लेकिन यह "क्रॉस-प्लेटफॉर्म मल्टीमीडिया लाइब्रेरी" होने का दावा करता है और नाम को देखते हुए, खेल के विकास पर जोर देना चाहिए। यदि आप C ++ के लिए लोकप्रिय SDL लाइब्रेरी से परिचित हैं , तो Ruby / SDL या RUDL हैं , दोनों ही SDL के रूबी रैपर हैं। या यदि आप नए, अधिक ऑब्जेक्ट-ओरिएंटेड SFML पसंद करते हैं , तो यह रूबी के लिए भी उपलब्ध है!

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


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

@ मुझे लगता है कि यह कम प्रासंगिक होता जा रहा है, और मैं अगली पीढ़ी या शायद उसके बाद के कंसोल के लिए इस्तेमाल की जाने वाली भाषा को जानना चाहूंगा। यह संभव है कि वे C ++ के साथ विकसित होते रहेंगे, लेकिन मुझे व्यक्तिगत रूप से यह अत्यधिक संभावना है कि वे उच्च-स्तरीय भाषाओं की ओर प्रगति करेंगे। Android विकास, उदाहरण के लिए, जावा में है; ऐसा नहीं है कि एंड्रॉइड गेम कंसोल है। लेकिन शायद गो जैसी हाइब्रिड भाषा कंसोल जनरेशन या दो में नई लोकप्रिय भाषा बन जाएगी।
Ricket

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

वास्तव में मुझे लगता है कि जैसा कि वीडियो-गेम उद्योग वर्तमान मानक C ++ को अपनाने में धीमा है, इससे अच्छे मौके मिलते हैं कि आपको कंसोल पर C ++ के अलावा किसी भी चीज के होने से पहले बहुत साल इंतजार करना होगा। जिस तरह से कंस्ट्रक्टर और डेवलपर्स काम करते हैं उसमें बदलाव हो सकता है लेकिन आज से इसकी कल्पना करना वास्तव में आसान नहीं है।
Klaim

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

9

http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/

URL शायद एक स्पॉइलर का एक सा है।

tl; dr: भोले कचरा कलेक्टर एक वास्तविक समस्या है।


बहुत सूचनाप्रद! क्या कोई रूबी विशेषज्ञ इस पर टिप्पणी कर सकता है कि क्या यह आज भी लागू है? यह लेख जनवरी 2009 का है और मुझे आश्चर्य नहीं होगा यदि तब से बहुत कुछ हुआ है। ठीक है संपादित करें , मुझे सिर्फ 3 सितंबर 2010 को एक लेख मिला, जो संकेत देता है कि वास्तव में यह आज भी मामला है, यह कहते हुए कि "रूबी कचरा संग्रहकर्ता को चलाने के लिए नहीं था" - दिलचस्प है! jabberwocky.eu/2010/09/03/ruby-garbage-collection
Ricket

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

1
इसे पोस्ट किए हुए कुछ समय हो गया है, लेकिन इस दिलचस्प लेख को देखें। patshaughnessy.net/2012/3/23/… रूबी 2.0 में कचरा संग्रहकर्ता के बारे में। यहाँ GC बिल्डर youtube.com/watch?v=4fIdEeM0Fyg द्वारा एक कीनोट दिया गया है , यह वीडियो, जब तक रूबी 2.0 बाहर आता है, तब तक शायद 1.5 - 2 वर्ष का हो जाएगा, इसलिए यह संभव है कि कई और अधिक प्रदर्शन और GC सुधार किए गए हैं । यह रूबी को अधिक ऑब्जेक्ट भारी गेम के लिए उपयोग करने के लिए अधिक व्यवहार्य बना सकता है। मुझे निश्चित रूप से ऐसी उम्मीद है! मेरा मानना ​​है कि 2013 में रूबी 2.0 निकलती है।
माइकल वैन रूइजेन

1
एमआरआई के अलावा अन्य वीएम भी हैं जो अलग-अलग कचरा संग्रह प्रणालियों का समर्थन करते हैं, जिसमें स्वयं मटज़ से नया मृग शामिल है जिसमें एक वृद्धिशील कचरा संग्रह प्रणाली शामिल है। अब तक, मृगी खेलों के लिए एक शानदार विकल्प है। यह भी iOS और Android पर काम करता है!
स्टीफन बेलांगर

5

कोई कारण नहीं है कि आप क्यों नहीं कर सकते। जब तक एक भाषा के लिए मल्टीमीडिया समर्थन है, तब तक यह gamedev सामग्री है। हेक, रोलरकोस्टर टाइकून खेलों में से एक का एक बड़ा अनुपात एएसएम में हाथ से किया गया था।


3
आप खुद का विरोधाभास कर रहे हैं। "गेम को एस्कोम में हैंडकोडिंग करना" रूबी में गेम कोडिंग के बिल्कुल विपरीत है "या कुछ अन्य उच्च स्तरीय भाषा।
बॉबोबोबो

1

जब मैं रूबी के आस-पास बहुत सारे गहरे ऐनक के काम से परिचित नहीं हूं, तो एंटरब्रेन ने गेम बनाने वाले प्रोग्राम आरपीजी मेकर VX और आरपीजी मेकर XP बनाए, जो रूबी के आधार पर गेम स्क्रिप्ट का उपयोग करते हैं: http://www.rpgmakerweb.com/

यह वास्तव में भाषा में मेरा पहला गोता था। जैसा कि ज्यादातर लोगों ने कहा, आपको शायद अन्य भाषाओं का उच्च प्रदर्शन नहीं मिलेगा, लेकिन यदि आप एक 2D आरपीजी (या अन्य 2 डी गेम, वास्तव में) शुरू करना चाहते हैं, तो संभवत: यह सबसे परिष्कृत गेम संपादकों में से एक है। मदद।


0

रूबी एक अच्छी भाषा है, लेकिन यह वास्तव में खेल के लिए ईमानदार नहीं है। यदि आप C ++ का उपयोग नहीं करना चाहते हैं लेकिन रूबी की तरह कुछ चाहते हैं तो पायथन की जाँच करें। एक अच्छे पायथन फ्रेमवर्क के लिए आपको www.cocos2d.org/ जैसा कुछ देखना चाहिए।


3
... या www.pygame.org
इयान श्राइबर

6
यह बकवास है। रूबी पायथन की तुलना में "गेम्स के लिए" भाषा से कम नहीं है।
Ricket

2
... बकवास। आप यह भी कह सकते हैं कि लुआ खेलों के लिए नहीं है।
कोर्नेल किलीविलेज़

2
वहाँ एक माणिक pygame के बराबर है? मैं यह नहीं कहूंगा कि एक भाषा दूसरे की तुलना में अधिक अनुकूल है। लेकिन यह कहना वाजिब हो सकता है कि अजगर के पास बेहतर गेम लाइब्रेरी और गमेदेव समुदाय है।
deft_code

मुझे लगता है कि रूबी के लिए एसएफएमएल पोर्ट है।
कम्युनिस्ट डक

0

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


0

आपका प्रश्न बहुत सामान्य है। क्या आप केवल कुछ कंप्यूटर गेम को एक शौक परियोजना के रूप में लिखना चाहते हैं या आप इंडी / पेशेवर खेल विकास में आना चाहते हैं? क्या इसमें ग्राफिक्स होंगे? इसे किन प्लेटफार्मों पर चलाया जाना है?

सामान्य तौर पर, रूबी शौक परियोजनाओं के लिए उपयुक्त है (BTW मेरा पसंदीदा रूबी गेम रूबी वारियर है ) और फार्मविले जैसे वेब-आधारित खेलों के विकास के लिए। ऐसे प्रोग्रामर के लिए कुछ निश्चित मांग भी है, कुछ इस तरह से करने की कोशिश करें: "रूबी प्रोग्रामर सोशल गेम"।

दूसरी ओर, यदि आप ग्राफिक्स के साथ डेस्कटॉप- या मोबाइल-आधारित गेम विकसित करना चाहते हैं, तो रूबी सबसे अच्छा विकल्प नहीं है। विचार करें:

  • जावास्क्रिप्ट का समर्थन करने वाली जावास्क्रिप्ट लाइब्रेरी (इसका सिंटैक्स रूबी से बहुत मिलता-जुलता है)
  • पाइथन - रूबी के समान, बेहतर गेम लाइब्रेरी

0

रूबी के साथ उच्च-प्रदर्शन वाले, पेशेवर, वाणिज्यिक, 3 डी गेम लिखने की उम्मीद न करें, लेकिन रूबी विकास की अवधारणाओं को सीखने के दौरान उपयोग करने के लिए एक शानदार भाषा है।

रूबी में 2 डी गेम लिखने के लिए गोसु सबसे लोकप्रिय (और सक्रिय रूप से बनाए रखा गया) पुस्तकालय है। इसमें एक अंतर्निहित C ++ लाइब्रेरी है जो प्रदर्शन को बेहतर बनाने और OpenGL जैसे अंतर्निहित प्रदर्शन रेंडरिंग लाइब्रेरी के साथ बातचीत करने के लिए उपयोग करता है।

जहां तक ​​प्रदर्शन जाता है, "डिफ़ॉल्ट" रूबी कार्यान्वयन (एमआरआई) ठीक काम करेगा (मैं सबसे अच्छा प्रदर्शन के लिए नवीनतम रूबी 2.0 का सुझाव देता हूं) लेकिन वैकल्पिक कार्यान्वयन हैं जिनमें देशी धागे और वैकल्पिक कचरा संग्रह एल्गोरिदम जैसे रुबिनियस, जे आरयूबी, आदि हैं। यदि आप थ्रेड्स का उपयोग कर रहे हैं, तो आप रूबिनियस की कोशिश करना चाह सकते हैं, अन्यथा एमआरआई रूबी बस ठीक काम करेगा।


-2

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

जब मैं लुआ के साथ C ++ का उपयोग करता हूं तो मैं अपने खेल को विजुअल बेसिक में नहीं लिखता क्योंकि यह मीडिया का समर्थन है। मुझे यकीन है कि यहां सभी ने किसी को कुछ नौकरियों के लिए कुछ उपकरण कहने के लिए सुना है। मुझे यकीन है कि आप एक जूता के साथ एक कील हथौड़ा कर सकते हैं, लेकिन आप ऐसा क्यों करेंगे जब आप हथौड़ा का उपयोग कर सकते हैं।


2
C ++ एक अच्छी भाषा है, लेकिन यह वास्तव में खेल के लिए ईमानदार नहीं है। यदि आप असेंबली का उपयोग नहीं करना चाहते हैं, लेकिन C ++ की तरह कुछ चाहते हैं। C. एक अच्छे C ढांचे के लिए आपको libsdl.org जैसी किसी चीज़ की जाँच करनी चाहिए । (ठीक है, यह काफी काम नहीं करता है क्योंकि C ++ बैकवर्ड संगत है लेकिन आप इस बिंदु को प्राप्त करते हैं)
Ricket

योग्य नहीं, मुझे आपकी बात नहीं आती। ईमानदारी से, मुझे वास्तव में परवाह नहीं है कि आप क्या कह रहे हैं ताकि मुझे जवाब देना परेशान न करें। मैं सिर्फ किसी की मदद करने की कोशिश कर रहा हूं, न कि किसी प्रोग्रामिंग भाषा की वैधता के बारे में बहस करने की।
अज्ञातदेव

5
उनका कहना है कि आपके मूल उत्तर में पूछे गए प्रश्न के संबंध में कोई सार नहीं था। आप जोर देकर कहते हैं कि रूबी "खेल के लिए वास्तव में नहीं है," लेकिन यह सब आप कहते हैं। इसमें बहुत कम मूल्य है। क्योंकि ओपी रूबी का उपयोग क्यों करना चाहते हैं, यह बिल्कुल स्पष्ट है: यह "एकमात्र भाषा है जिसे वह वास्तव में अच्छी तरह से जानता है।" यह बिल्कुल भी ऐसा नहीं है "क्योंकि यह संभव है।"
Neverender

@Neverender, यह पूरी तरह सच नहीं है। उन्होंने यह तर्क दिया कि पायथन में एक बड़ा उपयोगकर्ताबेस है और खेल के विकास के लिए पहले से ही पूर्ण किए गए अधिक पुस्तकालय हैं। मेरा मानना ​​है कि ये किसी ऐसे व्यक्ति को सलाह देने के लिए हैं जो खेल के विकास में कोई अनुभव नहीं है।
Zach कॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.